Kubernetes #
什么是Kubernetes? #
Kubernetes(简称K8s)是一个开源的容器编排平台,由Google开发并捐赠给云原生计算基金会(CNCF)。它用于自动化部署、扩展和管理容器化应用程序,是云原生技术的核心基础设施。
Kubernetes的优势 #
| 优势 | 说明 |
|---|---|
| 自动化部署 | 声明式配置,自动化部署应用 |
| 弹性伸缩 | 自动水平扩展,应对流量变化 |
| 自我修复 | 自动重启、替换、重新调度容器 |
| 负载均衡 | 内置服务发现和负载均衡 |
| 滚动更新 | 无缝升级,零停机部署 |
| 存储编排 | 自动挂载存储系统 |
| 密钥管理 | 安全管理敏感信息 |
| 可移植性 | 支持多云、混合云部署 |
文档结构 #
本指南按以下结构组织,适合初学者按顺序学习:
1. 基础入门 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Kubernetes简介 | 发展历史、特点、核心概念 | kubernetes-intro.md |
| 环境搭建 | 安装方式、集群配置 | kubernetes-install.md |
| 第一个应用 | 部署应用、访问服务 | first-application.md |
| kubectl命令行工具 | 常用命令、配置管理 | kubectl-basics.md |
2. 核心概念 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 架构概述 | Master节点、Node节点、组件 | architecture.md |
| Pod详解 | Pod生命周期、多容器模式 | pod.md |
| 命名空间 | 资源隔离、多租户管理 | namespace.md |
| 标签与选择器 | 资源标记、查询过滤 | labels-selectors.md |
3. 工作负载 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Deployment | 无状态应用部署、滚动更新 | deployment.md |
| ReplicaSet | 副本控制器、Pod数量管理 | replicaset.md |
| StatefulSet | 有状态应用部署、稳定标识 | statefulset.md |
| DaemonSet | 守护进程、节点代理 | daemonset.md |
| Job与CronJob | 批处理任务、定时任务 | job-cronjob.md |
4. 服务与网络 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Service服务 | 服务暴露、负载均衡 | service.md |
| Ingress入口 | HTTP路由、TLS终止 | ingress.md |
| 网络策略 | 网络隔离、流量控制 | network-policy.md |
| 服务发现 | DNS解析、服务注册 | service-discovery.md |
5. 存储管理 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 存储卷 | Volume类型、挂载方式 | volume.md |
| 持久卷 | PV、PVC、生命周期 | persistent-volume.md |
| 存储类 | StorageClass、动态分配 | storage-class.md |
| 动态存储供给 | 自动创建PV、存储驱动 | dynamic-provisioning.md |
6. 配置管理 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| ConfigMap | 配置数据、环境变量注入 | configmap.md |
| Secret | 敏感信息、加密存储 | secret.md |
| 环境变量管理 | 变量注入、配置最佳实践 | environment-variables.md |
7. 安全管理 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 认证与授权 | RBAC、ServiceAccount | auth-rbac.md |
| Pod安全 | 安全上下文、策略限制 | pod-security.md |
| 网络隔离 | 网络策略、安全边界 | network-isolation.md |
8. 监控与日志 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 监控体系 | Prometheus、监控指标 | monitoring.md |
| 日志收集 | EFK、日志架构 | logging.md |
| 健康检查 | Liveness、Readiness探针 | health-check.md |
9. 高级特性 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| Helm包管理 | Chart开发、仓库管理 | helm.md |
| Operator模式 | 自定义控制器、CRD | operator.md |
| 资源限制 | Requests、Limits、QoS | resource-limits.md |
| 自动扩缩容 | HPA、VPA、CA | autoscaling.md |
10. 集群管理 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 集群维护 | 节点管理、证书更新 | cluster-maintenance.md |
| 故障排查 | 常见问题、调试方法 | troubleshooting.md |
| 集群升级 | 版本升级、兼容性 | cluster-upgrade.md |
11. 实战案例 #
| 主题 | 描述 | 文档链接 |
|---|---|---|
| 部署Web应用 | 完整部署流程 | web-application.md |
| 部署数据库 | MySQL、PostgreSQL | database-deployment.md |
| 微服务架构 | 微服务部署实践 | microservices.md |
学习建议 #
初学者路线 #
text
基础入门 → 核心概念 → 工作负载 → 服务与网络
进阶路线 #
text
存储管理 → 配置管理 → 安全管理 → 监控与日志
高级路线 #
text
高级特性 → 集群管理 → 实战案例
前置知识 #
学习Kubernetes前,建议掌握以下基础知识:
- Docker基础:镜像、容器、Dockerfile
- Linux基础:命令行、文件系统、网络
- 网络基础:TCP/IP、DNS、负载均衡
- YAML语法:配置文件格式
- 版本控制:Git基本操作
- Web服务:HTTP协议、API概念
开发环境 #
推荐的Kubernetes学习环境:
| 工具 | 推荐选项 |
|---|---|
| 本地环境 | Minikube、Kind、Docker Desktop |
| 学习平台 | Play with Kubernetes |
| 生产环境 | kubeadm、kops、kubespray |
| 托管服务 | GKE、EKS、AKS |
| kubectl版本 | 与集群版本匹配 |
| 容器运行时 | containerd、Docker |
常用kubectl命令 #
| 命令 | 说明 |
|---|---|
kubectl get pods |
查看Pod列表 |
kubectl get deployments |
查看Deployment列表 |
kubectl get services |
查看Service列表 |
kubectl describe pod <name> |
查看Pod详情 |
kubectl logs <pod> |
查看Pod日志 |
kubectl exec -it <pod> -- sh |
进入Pod容器 |
kubectl apply -f <file> |
应用配置文件 |
kubectl delete -f <file> |
删除资源 |
kubectl scale deployment <name> --replicas=3 |
扩缩容 |
kubectl rollout status deployment/<name> |
查看滚动更新状态 |
Kubernetes生态系统 #
| 类别 | 工具 | 用途 |
|---|---|---|
| 包管理 | Helm | 应用打包部署 |
| 服务网格 | Istio、Linkerd | 微服务治理 |
| 监控 | Prometheus、Grafana | 监控告警 |
| 日志 | EFK、Loki | 日志收集分析 |
| CI/CD | ArgoCD、Flux | GitOps部署 |
| 安全 | Falco、OPA | 安全策略 |
| 存储 | Rook、Ceph | 分布式存储 |
学习资源 #
- 官方文档:Kubernetes官方文档
- 中文文档:Kubernetes中文文档
- GitHub仓库:kubernetes/kubernetes
- CNCF:云原生计算基金会
- 推荐书籍:《Kubernetes权威指南》、《Kubernetes in Action》
- 社区论坛:Kubernetes Slack、Stack Overflow
开始学习 #
准备好了吗?让我们从 Kubernetes简介 开始你的Kubernetes学习之旅!
最后更新:2026-03-28