Kubernetes实战:Pod与Deployment的部署指南

一、核心概念
  1. Pod
    Kubernetes最小调度单元,包含一个或多个共享存储/网络的容器。
    特点

    • 临时性(Ephemeral)
    • 直接部署易失控(需控制器管理)
  2. 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

三、关键操作命令
功能命令
查看Podkubectl 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
四、最佳实践
  1. 版本控制
    始终指定容器镜像标签(避免使用:latest

  2. 资源限制
    在Pod模板中添加资源约束:

    resources:
      limits:
        cpu: "500m"
        memory: "512Mi"
      requests:
        cpu: "250m"
        memory: "256Mi"
    

  3. 健康检查
    配置存活探针(Liveness Probe):

    livenessProbe:
      httpGet:
        path: /
        port: 80
      initialDelaySeconds: 5
      periodSeconds: 10
    

生产建议

  • 优先使用Deployment而非裸Pod
  • 结合Service实现负载均衡
  • 通过ConfigMap管理配置
  • 使用命名空间(Namespace)隔离环境

通过Deployment部署的Pod具备自愈能力,当节点故障时,Kubernetes会自动在新节点重建Pod,确保业务连续性。

更多推荐