Kubernetes 入门教程

186 阅读3分钟

一、核心要点

Kubernetes(简称 K8s) 是一个开源的容器编排平台,用于部署、扩展和管理容器化应用。入门重点:

  1. 理解容器与编排的关系
  2. 掌握 Kubernetes 的核心概念与架构
  3. 学会在本地或云上搭建环境
  4. 熟悉常用命令与实战示例

二、背景与动机

随着微服务和容器化的发展,单一服务器运行多个应用时,需要一种自动化、弹性伸缩、故障自愈的管理平台。Kubernetes 正是 Google 十多年运行大规模容器集群经验的开源结晶,现已成为行业标准。

三、核心概念解读

  1. Pod

    • 最小部署单元,一个 Pod 中可包含一个或多个紧密耦合的容器,共享网络与存储。
  2. Node(节点)

    • 集群中的工作机器,可为物理机或虚拟机,托管 Pod。
  3. Cluster(集群)

    • 由多个 Node 组成,统一由 Master 节点控制管理。
  4. Deployment(部署)

    • 声明式管理 Pod 副本,负责升级、回滚。
  5. Service(服务)

    • 稳定访问入口,负载均衡 Pod。
  6. ConfigMap & Secret

    • 配置管理与敏感信息(如密码、证书)的存储与注入。
  7. Volume(卷)

    • 持久化存储,可挂载到 Pod 中供容器读写。

四、Kubernetes 架构概览

  • Control Plane(控制平面)

    • kube-apiserver:统一 API 接口
    • etcd:分布式键值存储,保存集群状态
    • kube-scheduler:调度器,将新创建的 Pod 分配到合适 Node
    • kube-controller-manager:负责副本、节点等控制器
  • Worker Node(节点代理)

    • kube-let:与 Control Plane 通信,维护 Pod
    • kube-proxy:实现 Service 的网络转发
    • 容器运行时(如 containerd、Docker)

五、环境准备与安装

  1. 本地快速体验

    • 使用 MinikubeKind
      安装后一条命令即可启动单节点集群。
  2. 生产级部署

    • kubeadm:官方推荐工具,分步骤初始化 Control Plane 与添加 Node。
    • 云服务商 Kubernetes 托管服务(如阿里云 ACK、腾讯云 TKE):省去运维繁琐。

六、实战示例:部署 Nginx 服务

  1. 编写 Deployment 文件 nginx-deployment.yaml

    text
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deploy
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            ports:
            - containerPort: 80
    
  2. 应用部署

    bash
    kubectl apply -f nginx-deployment.yaml
    
  3. 暴露服务

    bash
    kubectl expose deployment nginx-deploy --port=80 --type=NodePort
    
  4. 查看结果

    bash
    kubectl get pods
    kubectl get svc
    

七、常用命令速查

  • kubectl get [资源类型]:查看资源列表
  • kubectl describe [资源类型] [名称]:查看详情
  • kubectl logs [Pod 名称]:查看日志
  • kubectl exec -it [Pod 名称] -- /bin/bash:进入容器
  • kubectl scale deployment [名称] --replicas=[副本数]:扩缩容

八、进阶与最佳实践

  • 使用 Helm 管理复杂应用的发布与升级
  • 利用 Horizontal Pod Autoscaler 实现自动扩缩容
  • 配置 NetworkPolicy 控制网络安全
  • 结合 Prometheus + Grafana 做监控与告警
  • 定期备份 etcd,保障集群数据安全

九、学习资源推荐

  • 官方文档(中文):kubernetes.io/zh
  • 《Kubernetes 权威指南》
  • 在线课程:慕课网、极客时间

结论

掌握 Kubernetes,需先理解核心概念及架构,再通过实践部署、调试和运维,逐步熟悉生态工具与最佳实践。按照本文流程动手操作,能在短时间内建立起对 Kubernetes 的系统认知。