Skip to content

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 开始,逐步理解资源间的关联,配合实践项目能学得更扎实。

感谢阅读,欢迎交流!