部署与滚动更新

Kubernetes 教程 · 第 6 章 · 6 次浏览

和 Docker 一样,K8s 的容器也是临时的,持久数据要用存储卷。K8s 抽象出 PVC(持久卷声明):你声明"要 10G 存储",K8s 自动分配。

存储体系

  • emptyDir:Pod 内临时共享目录(数据随 Pod 消失)
  • hostPath:宿主机目录(单机测试用)
  • PVC + PV:持久存储(生产,云盘/NFS/本地卷)

使用

声明 PVC(申请存储)→ Deployment 里 volumeClaimTemplates 或 volumes 引用 → 容器挂载到路径。

代码示例

# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-data
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

# Deployment 挂载
# spec:
#   template:
#     spec:
#       volumes:
#         - name: data
#           persistentVolumeClaim:
#             claimName: mysql-data
#       containers:
#         - name: mysql
#           volumeMounts:
#             - name: data
#               mountPath: /var/lib/mysql

kubectl apply -f pvc.yaml
kubectl get pvc