gpt4 book ai didi

kubernetes - 通过Helm部署到Kubernetes的本地永久存储

转载 作者:行者123 更新时间:2023-12-02 12:22:28 24 4
gpt4 key购买 nike

使用Kubernetes 1.7.0的目的是能够部署MySQL / MongoDB / etc,并使用本地磁盘作为存储支持。 Webhead和处理Pod可以通过Kubernetes自动缩放。为了实现这些目标,我已经

  • 设置并部署Local Persistent Storage provisioner以自动将本地连接的磁盘置备到Pod的Persitent Volume Claims。
  • 手动创建一个持久卷声明,该声明成功,并且附加了本地卷
  • 尝试通过helm来部署MariaDB

    helm install --name mysql --set persistence.storageClass=default stable/mariadb

  • 这似乎成功了;但是通过转到仪表板,我得到

  • Storage node affinity check failed for volume "local-pv-8ef6e2af" : NodeSelectorTerm [{Key:kubernetes.io/hostname Operator:In Values:[kubemaster]}] does not match node labels



    我怀疑这可能是由于 Helm 的图表不包括nodeaffinity。除了手动更新每个图表之外,是否有办法告诉Helm将其部署到预配置程序具有卷的同一 pods 中?

    最佳答案

    很不幸的是,不行。您将需要指定节点亲和性,以便Pod可以放置在本地存储所在的节点上。请参阅docs on Node Affinity,以了解添加到 Helm 表中的内容。

    我怀疑在您的情况下,它将看起来像以下内容。

    affinity:
    nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    nodeSelectorTerms:
    - matchExpressions:
    - key: kubernetes.io/hostname
    operator: In
    values:
    - kubemaster

    顺便说一句,对于AWS和GCP等云环境,这不仅会在节点级别发生,而且会在区域级别发生。在这些环境中,永久性磁盘是分区磁盘,将要求您设置 NodeAffinity,以便在将Pod部署到多区域群集时将Pod与永久性磁盘一起放置在该区域中。

    顺便说一句,您似乎正在部署到Kubernetes主服务器?如果这样,那是不明智的,因为MySQL可能会影响主服务器的操作。

    关于kubernetes - 通过Helm部署到Kubernetes的本地永久存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44982232/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com