【K8S】Kubernetes从入门到实战:全面指南

发布于:2025-06-10 ⋅ 阅读:(27) ⋅ 点赞:(0)

Kubernetes从入门到实战:全面指南

一、Kubernetes概述

1.1 什么是Kubernetes

Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由Google开发,现在由Cloud Native Computing Foundation(CNCF)维护。

1.2 Kubernetes的核心特性

  • 服务发现与负载均衡:自动分配IP地址和DNS名称,并能在多个容器间分配流量
  • 存储编排:自动挂载选择的存储系统(本地、公有云等)
  • 自动部署与回滚:可以定义期望状态,K8s会逐步调整实际状态
  • 自动装箱:根据资源需求和其他约束自动放置容器
  • 自我修复:重启失败容器,替换和重新调度节点失效的容器
  • 密钥与配置管理:存储和管理敏感信息

1.3 Kubernetes架构

Kubernetes集群由两部分组成:

  • 控制平面(Control Plane):管理集群
    • kube-apiserver:API入口
    • etcd:键值存储
    • kube-scheduler:调度决策
    • kube-controller-manager:运行控制器
  • 节点(Nodes):运行容器
    • kubelet:与Control Plane通信
    • kube-proxy:网络代理
    • 容器运行时:如Docker、containerd

二、Kubernetes核心概念

2.1 Pod

Pod是Kubernetes中最小的可部署单元,代表集群中运行的一个或多个容器。Pod中的容器共享网络和存储资源。

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
  - name: nginx-container
    image: nginx:1.14.2
    ports:
    - containerPort: 80

2.2 Deployment

Deployment为Pod和ReplicaSet提供声明式更新,可以方便地实现滚动更新和回滚。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2