1、Kubernetes 中的节点组织

Kubernetes 是一种分布式容器编排系统,它可以将多个容器组织成一个可管理的集群,每个节点都有自己的角色,比如 master 节点和 worker 节点。master 节点负责管理集群,worker 节点负责运行容器,这些节点可以是物理机,也可以是虚拟机。

2、Kubernetes 中的容器指定

Kubernetes 提供了一个叫做 Node Affinity 的功能,可以用来在特定的节点上运行容器。Node Affinity 有两种模式:一种是 required,意思是容器只能在指定的节点上运行;另一种是 preferred,意思是容器尽量在指定的节点上运行,如果没有指定的节点,则可以在其他节点上运行。

3、指定节点的实现方式

要指定容器在某些节点上运行,可以在 Pod 的 YAML 文件中添加 nodeAffinity 字段,添加之后,Kubernetes 就会按照指定的节点来运行容器,如下所示:

apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node1
- node2
YAML

上面的 YAML 文件表示,这个 Pod 只能在 node1 和 node2 上运行,而不能在其他节点上运行。