一、核心要点
Kubernetes(简称 K8s) 是一个开源的容器编排平台,用于部署、扩展和管理容器化应用。入门重点:
- 理解容器与编排的关系
- 掌握 Kubernetes 的核心概念与架构
- 学会在本地或云上搭建环境
- 熟悉常用命令与实战示例
二、背景与动机
随着微服务和容器化的发展,单一服务器运行多个应用时,需要一种自动化、弹性伸缩、故障自愈的管理平台。Kubernetes 正是 Google 十多年运行大规模容器集群经验的开源结晶,现已成为行业标准。
三、核心概念解读
-
Pod
- 最小部署单元,一个 Pod 中可包含一个或多个紧密耦合的容器,共享网络与存储。
-
Node(节点)
- 集群中的工作机器,可为物理机或虚拟机,托管 Pod。
-
Cluster(集群)
- 由多个 Node 组成,统一由 Master 节点控制管理。
-
Deployment(部署)
- 声明式管理 Pod 副本,负责升级、回滚。
-
Service(服务)
- 稳定访问入口,负载均衡 Pod。
-
ConfigMap & Secret
- 配置管理与敏感信息(如密码、证书)的存储与注入。
-
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)
五、环境准备与安装
-
本地快速体验
- 使用 Minikube 或 Kind:
安装后一条命令即可启动单节点集群。
- 使用 Minikube 或 Kind:
-
生产级部署
- kubeadm:官方推荐工具,分步骤初始化 Control Plane 与添加 Node。
- 云服务商 Kubernetes 托管服务(如阿里云 ACK、腾讯云 TKE):省去运维繁琐。
六、实战示例:部署 Nginx 服务
-
编写 Deployment 文件
nginx-deployment.yamltext 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 -
应用部署
bash kubectl apply -f nginx-deployment.yaml -
暴露服务
bash kubectl expose deployment nginx-deploy --port=80 --type=NodePort -
查看结果
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 的系统认知。