Har*_*var 3 kubernetes kubernetes-pvc
我已经为 mysql 部署了带有状态 pod 的 kubernetes 集群。对于每个吊舱,我有不同的 PVC。
例如:如果有 3 个 pod,则 3 个 5GB EBS PVC
那么哪种方法更好,为所有 pod 使用一个 PVC 或为每个 pod 使用不同的 PVC。
如果您希望为集合中的每个 pod 提供专用存储,StatefulSet 必须使用volumeClaimTemplates。基于该模板,为每个 pod 创建 PersistentVolumeClaim,并将卷配置为绑定到该声明。生成的 PersistentVolumeClaims 名称由 volumeClaimTemplate 名称 + pod-name + 序号组成。\n因此,如果将volumeClaimTemplate 部分添加到 StatefulSet YAML 中(并删除特定的 permanentVolumeClaim 引用),则类似:
\n\nvolumeClaimTemplates:\n - metadata:\n name: mysql-data \n spec:\n resources:\n requests:\n storage: 10Gi\n accessModes:\n - ReadWriteOnce\nRun Code Online (Sandbox Code Playgroud)\n\n然后去创建你的 StatefulSet,然后检查它的一个 pod(kubectl get pods pod-name-0 yaml),你\xe2\x80\x99会看到这样的东西(输出的卷部分):
\n\nvolumes:\n- name: mysql-data\n persistentVolumeClaim:\n claimName: mysql-data-pod-name-0. | dynamically created claim based on the template \nRun Code Online (Sandbox Code Playgroud)\n\n因此,通过使用volumeClaimTemplates,您不需要\xe2\x80\x99自己创建一个单独的PVC,然后在每个单独的StatefulSet中引用该PVC以特定的安装路径安装在容器中(请记住,集合中的每个pod必须引用不同的PVC) PVC, 1PVC-1PV) :\nStatefulset YAML 的 \xe2\x80\x9ccontainers\xe2\x80\x9d 定义的一部分:
\n\nvolumeMounts:\n - name: mysql-data || references your PVC by -name(not PVC name itself) \n mountPath: /var/lib/mysql\nRun Code Online (Sandbox Code Playgroud)\n\n因此,让集合中的每个 Pod 拥有专用存储而不使用 VolumeClaimTemplates 会导致很多问题,并且管理和扩展它会变得过于复杂。
\n| 归档时间: |
|
| 查看次数: |
8190 次 |
| 最近记录: |