不同操作系统的Kubernetes作业
有了Kubernetes 1.14中Windows server 2019的支持,似乎可以拥有不同操作系统的节点。例如,一个集群中的Ubuntu 18.04节点、RHEL 7节点、Windows服务器节点 在我的用例中,我希望预先配置每个操作系统类型的队列系统。节点将从处理作业的特定队列中获取信息不同操作系统的Kubernetes作业,kubernetes,Kubernetes,有了Kubernetes 1.14中Windows server 2019的支持,似乎可以拥有不同操作系统的节点。例如,一个集群中的Ubuntu 18.04节点、RHEL 7节点、Windows服务器节点 在我的用例中,我希望预先配置每个操作系统类型的队列系统。节点将从处理作业的特定队列中获取信息 考虑到上述情况,是否可以将作业配置为转到特定队列,然后再转到特定的操作系统节点?Kubernetes节点中填充了一组标准标签,其中包括Kubernetes.io/OS 通过节点选择器、podAffin
考虑到上述情况,是否可以将作业配置为转到特定队列,然后再转到特定的操作系统节点?Kubernetes节点中填充了一组标准标签,其中包括
Kubernetes.io/OS
通过节点选择器
、podAffinity
和podAntiAffinity
发送到特定位置
apiVersion: extensions/v1beta1
kind: Pod
metadata:
name: anapp
spec:
containers:
- image: docker.io/me/anapp
name: anapp
ports:
- containerPort: 8080
nodeSelector:
kubernetes.io/os: linux
如果您需要更细粒度的控件(例如在Ubuntu/RHEL之间进行选择),那么您需要在kubernetes节点部署中添加自定义标签以进行选择。这种级别的选择非常罕见,因为容器运行时试图隐藏大部分差异,但如果您有特殊情况,请向节点添加额外的标签元数据
我建议使用cat/etc/*release*
中的ID
和VERSION\u ID
字段,因为大多数Linux发行版都以某种形式填充此信息
kubectl label node thenode softey.com/release-id=debian
kubectl label node thenode softey.com/release-version-id=9
您可以使用标签、选择器和关联将不同的pod分配给不同的节点。看看OP可能还想使用污染+容忍来确保只有Windows的作业在Windows节点上得到调度。