使用Kubernetes 1.7.0,这里的目的是能够部署MySQL / MongoDB / etc,并使用本地磁盘作为存储支持;而Webheads和处理盒可以由Kubernetes自动缩放。为了这些目标,我已经
了尝试通过
通过helm部署MariaDBhelm install --name mysql --set persistence.storageClass = default stable / mariadb
这似乎成功了;但是通过转到仪表板,我得到了
卷“local-pv-8ef6e2af”的存储节点关联性检查失败:NodeSelectorTerm [{Key:kubernetes.io/hostname Operator:In Values:[kubemaster]}]与节点标签不匹配
我怀疑这可能是由于helm的图表不包括nodeaffinity。除了手动更新每个图表之外,有没有办法告诉helm部署到配置器有卷的同一个pod?
答案 0 :(得分: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可能会影响主人的操作。