2017-07-08 52 views
1

使用Kubernetes 1.7.0,这里的目的是能够部署MySQL/MongoDB/etc,并使用本地磁盘作为存储支持;而Kubernetes则可以自动缩放网站头和处理窗格。为了这些目标,我已经通过头盔部署到Kubernetes的本地永久存储

  • 设置&部署Local Persistent Storage provisioner自动提供本地连接磁盘到荚Persitent卷索赔。
  • 手动创建的一个持久卷权利要求,其成功,并在本地卷附着
  • 试图通过掌舵通过

    舵部署MariaDB的安装--name的MySQL --set persistence.storageClass =默认稳定/ mariadb

  • 这似乎成功了;但去到仪表板,我得到

存储节点关联性检查失败卷 “本地-PV-8ef6e2af”:NodeSelectorTerm [{键:kubernetes.io/hostname操作:在值:[kubemaster ]}]与节点标签不匹配

我怀疑这可能是由于舵图不包括nodeaffinity。除了手动更新每个图表之外,是否有一种方法可以让helm部署到配置器具有卷的同一个窗格中?

+0

也许你可以考虑使用NFS而不是附加本地卷? –

回答

1

不幸的是,没有。您需要指定节点关联性,以便Pod位于本地存储所在的节点上。请参阅docs on Node Affinity了解添加到掌舵图表的内容。

我怀疑它会在你的情况下看起来如下所示。

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

顺便说一下,这不仅仅是在节点级别,而且还会在AWS和GCP等云环境的区域级别发生。在这些环境中,持久性磁盘是区域性的,并且需要您设置NodeAffinity,以便在部署到多区域群集时,Pod使用永久磁盘进入区域。

另外,它看起来像你正在部署到Kubernetes主?如果这样做可能不可取,因为MySQL可能会影响主控的操作。