Kubernetes 简介
约 672 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › Docker › 生产部署(在新窗口打开) › Kubernetes 简介
Kubernetes(K8s)是当前最流行的容器编排平台。Docker 负责"构建和运行单个容器",K8s 负责"管理集群中成百上千个容器"。
为什么需要 K8s
| 能力 | Docker | Swarm | Kubernetes |
|---|---|---|---|
| 单机容器 | ✅ | ✅ | ✅ |
| 多机集群 | ❌ | ✅ | ✅ |
| 自动扩缩容 | ❌ | 手动 | ✅ 自动 |
| 自愈(故障恢复) | ❌ | ❌ | ✅ |
| 服务发现 & 负载均衡 | ❌ | ✅ | ✅ |
| 滚动更新 & 回滚 | ❌ | ✅ | ✅ |
| 存储编排 | ❌ | 部分 | ✅ |
| 配置管理 | ❌ | ❌ | ✅(ConfigMap/Secret) |
| 社区生态 | — | 小 | 最大 |
核心概念
Pod
Pod 是 K8s 的最小调度单元,包含一个或多个容器。
# pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80kubectl apply -f pod.yaml
kubectl get pods
kubectl describe pod nginx-pod
kubectl logs nginx-pod
kubectl exec -it nginx-pod -- sh
kubectl delete pod nginx-podDeployment
Deployment 声明式管理 Pod 的副本数和更新策略。
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80kubectl apply -f deployment.yaml
kubectl get deployments
kubectl scale deployment nginx-deployment --replicas=5
kubectl rollout status deployment nginx-deployment
kubectl rollout history deployment nginx-deployment
kubectl rollout undo deployment nginx-deploymentService
Service 提供稳定的网络入口,将请求负载均衡到一组 Pod。
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancerkubectl apply -f service.yaml
kubectl get services本地体验 K8s
# Minikube(单节点 K8s)
brew install minikube
minikube start --driver=docker
kubectl get nodes
# kind(Kubernetes in Docker)
brew install kind
kind create cluster
kubectl get nodes
# Docker Desktop 内置 K8s
# 设置 → Kubernetes → Enable Kubernetes
kubectl get nodesDocker Compose → K8s 的迁移
# 使用 Kompose 将 Compose 文件转换为 K8s 资源
kompose convert -f compose.yml
# 生成 deployment.yaml、service.yaml 等
kubectl apply -f .从 Docker 到 K8s 的演进路径
小结
- Kubernetes 是生产级的容器编排平台,提供自动扩缩容、自愈、服务发现、滚动更新等能力。
- 核心概念:Pod(最小调度单元)、Deployment(声明式副本管理)、Service(网络入口和负载均衡)。
kubectl是 K8s 的 CLI,kubectl apply -f yaml声明式管理资源。- 本地学习推荐 Minikube 或 kind(Kubernetes in Docker)。
- 从 Docker Compose → Swarm → K8s 是容器编排的演进路线,小型项目 Swarm 足够,大型项目选 K8s。
上一节:Docker Swarm 简介
