我正在尝试在不同的节点中部署我的微服务集。为了安装kubeadm和创建集群,我遵循以下文档。
我需要一个拥有2台工人机器的主人。我清楚知道如何创建kubernetes集群。
我的要求:我的应用程序有一组独立的微服务。我需要将一组微服务的docker镜像部署到一个node1和docker镜像中,其他设置为node2。 node3中的第3组微服务......等等......这是我的部署计划。如果我走向错误的方向,请纠正我,因为我只在docker,kubernetes和jenkins开始探索。 Devop。
我的困惑:
这些都是我对Kubernetes部署的困惑。如果我的想法错了,请纠正我,因为我只是DevOp世界的初学者。如何通过使用Kubernetes澄清我对部署的疑虑?
答案 0 :(得分:2)
要回答您的第一个问题 - 您基本上需要为租户分配每个节点。如果有合规/监管原因,那么你应该这样做(尽管它不会非常有效)。以下是如何做到这一点:
在node1上添加一个污点:
kubectl taint nodes node1.compute.companyname.com reservedfor=tenant1:NoSchedule
以上含义是node1只会安排具有匹配容忍度的pod,而不是任何其他pod。对于需要在node1上安排的微服务,您必须为pod YAML文件添加容差,如:
tolerations:
- key: "reservedfor"
operator: "Equal"
value: "tenant1"
effect: "NoSchedule"
可以扩展相同的逻辑 - 这样即使tenant1需要4台机器,那么所有4台机器都可以被上面的键值对污染,然后可以在这些节点上容忍pod。查看文档here和blog with an example here
您也可以使用pod/node affinity来实现上述目标。
关于Jenkins的第二个问题 - 不,你不需要在每个节点上安装Jenkins,但除此之外还需要更多细节。