当前位置: 首页 > 知识库问答 >
问题:

Kubernetes每个吊舱都有状态设置的多重pvc,而所有吊舱都有单一pvc?

阮喜
2023-03-14

我已经为mysql部署了kubernetes集群和有状态pod。对于每个豆荚,我有不同的pvc。

例如:如果3盒thn 3 5GB EBS PVC

所以,哪种方法是更好地使用一个PVC为所有豆荚或使用不同的PVC为每个豆荚。

共有2个答案

林威
2023-03-14

聚氯乙烯被绑定到特定的光伏。对于StatefulSet,在大多数可以想象的情况下,您希望有一个只能由特定pod访问的PV,这样数据就不会被并行进程/pod的写入尝试损坏(RWO而不是RWX模式)。

考虑到这一点,您需要在StatefulSet中为每个副本创建一个PVC。如果手动创建副本的PVC会很快出现问题,这就是为什么正确的方法是使用volumeClaimTemplates,它将在您缩放集合时为您动态创建PVC。

微生乐
2023-03-14

如果要为集合的每个pod提供专用存储,StatefulSet必须使用volumeClaimTemplates。基于该模板,为每个pod创建PersistentVolumeClaim,并将卷配置为绑定到该声明。生成的PersistentVolumeClaims名称由volumeClaimTemplate名称pod名称序号组成。因此,如果将volumeClaimTemplate部分添加到StatefulSet YAML(并删除特定的persistentVolumeClaim引用),smth如下所示:

volumeClaimTemplates:
  - metadata:
      name: mysql-data    
    spec:
      resources:
        requests:
          storage: 10Gi
      accessModes:
      - ReadWriteOnce

然后创建状态集,然后检查其中一个pod(kubectl get pods pod-name-0 yaml),您将看到类似的smth(输出的卷部分):

volumes:
- name: mysql-data
  persistentVolumeClaim:
    claimName: mysql-data-pod-name-0.  | dynamically created claim based on the template 

因此,通过使用volumeClaimTemplates,您不需要自己创建一个单独的PVC,然后在每个单独的StatefolSet引用中,将PVC安装到您的容器中的特定安装路径(请记住,集合的每个pod必须引用不同的PVC,1PVC-1PV):StatefolSet YAML的“容器”定义的一部分:

volumeMounts:
        - name: mysql-data   || references your PVC by -name(not PVC name itself) 
          mountPath: /var/lib/mysql

因此,要使集合中的每个pod都有专用的存储空间,而不使用volumeClaimTemplates,这将导致管理和扩展它时出现许多问题和过于复杂的情况。

 类似资料:
  • 我们正在使用Docker 1.19运行库伯内特斯(1.18) Container是一个基于Java13的Spring启动应用程序(使用基本图像作为openjdk: 13-alpin),下面是内存设置。 豆荚: 内存-最小448M,最大2500M cpu-最小值0.1 容器: Xms:256M,Xmx:512M 当流量发送更长时间时,容器会突然重新启动;在Prometheus中,我可以看到Pod内存

  • 但是在随机设置上面注释后的真实行为像:pod1、pod1、pod2、pod2、pod3、pod1、pod2、pod2....这是不正确的。 我们是否需要配置任何openshift配置,使其完善的RoundRoubin?

  • 我已经在节点(node1)上的pod(pod1)上部署了一个Spring Boot应用程序。我还在不同节点(node2)上的另一个pod(pod2)上部署了JMeter。我试图从POD2执行自动负载测试。为了执行负载测试,我要求为每个测试用例重新启动pod1。如何从POD2重新启动pod1?

  • 我对Kubernetes是新来的。 我发现了2个pod优先级选项-优先级类别和服务质量。它们之间有什么不同? (https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/https://kubernetes.io/docs/tasks/configure-pod-container/quality-servi

  • 我的要求是在自定义指标上扩展POD,如队列中的挂起消息,PODS必须增加以处理作业。在kubernetes,Scale up在普罗米修斯适配器和普罗米修斯操作员中工作得很好。 我在pods中有长时间运行的进程,但HPA检查自定义度量并试图缩小规模,因为这个进程杀死了操作的中间并丢失了消息。我如何控制HPA只杀死没有进程运行的自由豆荚。 序列查询:‘{namespace=“default”,serv

  • Docker守护进程:/etc/systemd/system/docker.service.d/http-proxy.conf Docker客户机:/root/.Docker/config.json(尽管在CentOS上使用Docker V1.13.1时似乎不适用) Docker客户机:通过在创建时传递给豆荚的环境变量,在用于与kubectl一起运行它们的yaml文件中 Kubernetes主节点