Kubernetes实战:Pod与Deployment的部署
·
Kubernetes实战:Pod与Deployment的部署指南
一、核心概念
-
Pod
Kubernetes最小调度单元,包含一个或多个共享存储/网络的容器。
特点:- 临时性(Ephemeral)
- 直接部署易失控(需控制器管理)
-
Deployment
管理Pod副本的控制器,提供:- 滚动更新(Rolling Update)
- 版本回滚(Rollback)
- 扩缩容(Scaling)
二、操作实战
1. 独立Pod部署(不推荐生产)
# nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
部署命令:
kubectl apply -f nginx-pod.yaml
2. Deployment部署(推荐方案)
# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # 副本数
selector:
matchLabels:
app: nginx
template: # Pod模板
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
部署命令:
kubectl apply -f nginx-deployment.yaml
三、关键操作命令
| 功能 | 命令 |
|---|---|
| 查看Pod | kubectl get pods -l app=nginx |
| 扩缩容 | kubectl scale deploy/nginx-deployment --replicas=5 |
| 滚动更新 | kubectl set image deploy/nginx-deployment nginx=nginx:1.26 |
| 回滚版本 | kubectl rollout undo deploy/nginx-deployment |
| 删除部署 | kubectl delete deploy nginx-deployment |
四、最佳实践
-
版本控制
始终指定容器镜像标签(避免使用:latest) -
资源限制
在Pod模板中添加资源约束:resources: limits: cpu: "500m" memory: "512Mi" requests: cpu: "250m" memory: "256Mi" -
健康检查
配置存活探针(Liveness Probe):livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 10
生产建议:
- 优先使用Deployment而非裸Pod
- 结合Service实现负载均衡
- 通过ConfigMap管理配置
- 使用命名空间(Namespace)隔离环境
通过Deployment部署的Pod具备自愈能力,当节点故障时,Kubernetes会自动在新节点重建Pod,确保业务连续性。
更多推荐
所有评论(0)