在 Kubernetes Book 中,它表示在主节点上运行pod的形式很差。
根据此建议,我想创建一个策略,该策略在所有节点上运行一个pod,但如果有多个节点,则在主节点上除外。但是,为了简化测试并在单节点环境中工作,如果整个系统中只有一个节点,我还想在主节点上运行我的pod。
我一直在环顾四周,不知道该如何表达这项政策。我发现DaemonSets具有关联性和反关联性。我考虑过标记主节点并为该标签添加反亲和性。但是,我没有看到如何要求始终至少出现一个Pod(以确保事情适用于单节点环境)。如果我误会了什么,请告诉我。谢谢!
答案 0 :(得分:3)
怎么样呢?
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
.spec.template.spec.nodeSelector
仅选择带有特殊标签的节点。 (node selector docs)。如何为节点分配特殊标签可能是一个相当手动的过程,很大程度上取决于您实际部署集群的方式,但这是我要遵循的总体计划。
编辑:或者,我认为仅从单节点群集中删除主节点异味可能是最简单的。我相信默认情况下,像minikube这样的大多数简单发行版都会采用这种方式。