Рабочие узлы Kubernetes должны иметь точно такое же оборудование и ОС

В целом в Kubernetes можно k8s запускать разнородное оборудование. Если k8s все ваши боксы являются машинами k8s X86, не о чем беспокоиться, так kubernetes как ваши образы докеров должны kubernetes работать везде. Например, в kubernetes-cluster облаке часто смешиваются server-hardware точечные экземпляры разных kubernetes-pod типов, и это прекрасно работает.

Однако, если kubernetes вы смешиваете архитектуру kubernetes-pod (например, ARM и x86) или kubernetes операционные системы (например, Windows k8s и Linux), как правило, имеет server-hardware смысл добавить метку, указывающую kubernetes-cluster на это. Это типичные ярлыки kubernetes-cluster в Kubernetes 1.15+:

$ kubectl describe node xxxxx
Name:               xxxxx
Roles:              node
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=dell_xyz
                    beta.kubernetes.io/os=linux
[...]

Затем kubernetes вы можете использовать эти kubernetes-pod метки в селекторе узлов в k8s модуле:

apiVersion: v1
kind: Pod
metadata:
  name: x86-pod
spec:
  containers:
    - name: x86-test
      image: "yourrepo.io/test_repo"
  nodeSelector:
    beta.kubernetes.io/arch: amd64

kubernetes

kubernetes-cluster

server-hardware

2022-09-26T10:42:02+00:00