Appearance
Kubernetes 简介
什么是 Kubernetes?
Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动部署、扩展和管理容器化应用程序。它最初由 Google 开发,现由 CNCF(云原生计算基金会)维护。
核心功能
- 自动部署与回滚:通过控制器自动完成应用部署、更新和回滚。
- 负载均衡与服务发现:通过 Service 组件实现内部通信与负载均衡。
- 自动修复:当容器失败或节点异常时,K8s 能自动重建和调度。
- 弹性伸缩:支持基于 CPU 使用率等指标自动扩容和缩容。
- 配置管理与密钥管理:通过 ConfigMap 和 Secret 管理配置信息和敏感数据。
- 存储编排:支持挂载本地存储、NFS、云存储(如 AWS EBS、阿里云云盘)等。
核心组件
组件 | 作用说明 |
---|---|
Master 节点 | 管理整个集群,包括调度、控制和状态管理 |
kube-apiserver | 提供集群的 REST API 接口,是集群的入口 |
etcd | 分布式键值数据库,用于存储所有集群状态数据 |
kube-scheduler | 负责 Pod 的调度工作 |
kube-controller-manager | 管理各种控制器(如副本、节点、命名空间等) |
Node 节点 | 实际运行容器的计算节点 |
kubelet | 运行在每个节点上,负责与 Master 通信并管理 Pod |
kube-proxy | 维护网络规则,确保网络通信和负载均衡 |
Container Runtime | 容器运行时,支持 Docker、containerd、CRI-O 等 |
常用资源对象
- Pod:最小部署单元,封装一个或多个容器
- Deployment:用于管理无状态应用的部署与副本管理
- StatefulSet:用于有状态应用部署(如数据库)
- Service:用于暴露一组 Pod 并提供访问入口
- ConfigMap / Secret:存储配置信息与敏感数据
- Ingress:HTTP 入口控制器,用于暴露外部访问
应用场景
- 微服务架构的部署与管理
- 高可用的 Web 应用服务
- 数据处理、CI/CD 流水线构建
- DevOps 自动化运维平台
Kubernetes 学习路线(适合初学者和运维学习者)
🔰 阶段一:基础准备
- 学习 Linux 基础命令、权限、服务等
- 掌握 Docker 容器技术(镜像、容器、网络、数据卷等)
- 熟悉 YAML 配置语法
- 了解 DevOps、云原生理念
🚀 阶段二:入门 Kubernetes
- 安装本地 K8s 环境(推荐 Minikube、kind)
- 掌握
kubectl
基础命令 - 理解 Pod、Service、Deployment 的基本使用
- 编写简单的 YAML 部署文件
- 学会查看日志、调试 Pod、滚动更新
🧱 阶段三:进阶实战
- 理解 StatefulSet、DaemonSet、Job 等资源
- 掌握 ConfigMap、Secret 配置管理
- 配置 Ingress + Traefik/Nginx 实现服务暴露
- 理解 K8s 的存储机制(PV/PVC/StorageClass)
- 掌握 HPA 自动伸缩配置
📦 阶段四:集群与运维
- 了解 Kubeadm 安装多节点集群流程
- 掌握 Helm 包管理工具
- 使用 Prometheus + Grafana 进行集群监控
- 掌握日志收集方案(如 EFK/ELK)
- 配置 K8s 高可用(HA)集群架构
🎯 阶段五:项目实战与部署
- 编写 CI/CD 管道自动部署至 K8s
- 构建自己的运维平台或管理后台
- 实现服务灰度发布、蓝绿部署
- 整合 GitOps / ArgoCD 实现声明式部署
📌 学 Kubernetes 不要急于求成,从一个 Pod 开始,逐步理解资源间的关联,配合实践项目能学得更扎实。