k8s での書き込みノード アフィニティ

Kubernetes では、ノード アフィニティ (ノード アフィニティ) を使用して、ポッドとノード間の関連付けルールを指定し、ポッドをスケジュールする必要があるノードを決定できます。

  1. ノード アフィニティ タイプ:

    • requiredDuringSchedulingIgnoredDuringExecution: ポッドはノード アフィニティ ルールを満たす必要があり、満たさない場合はスケジュールできません。
    • preferredDuringSchedulingIgnoredDuringExecution: ポッドはノード アフィニティ ルールを満たす傾向がありますが、必須ではありません。
  2. ポッドの YAML ファイルでノード アフィニティを使用します。

    • ポッドの YAML ファイルで、affinityフィールドを使用してノード アフィニティ ルールを指定します。
    • フィールドではaffinitynodeAffinityサブフィールドを使用してノード アフィニティ ルールを定義します。

ポッドの YAML ファイルでノード アフィニティを使用する方法を示す例を次に示します。

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx:latest
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: env
            operator: In
            values:
            - production

上の例では、nodeAffinityフィールドは必須のノード アフィニティ ルールを定義します。つまり、ポッドはenv=productionラベルを持つノード上でスケジュールされる必要があります。

ノード アフィニティ ルールでは、他の演算子 ( NotInなど) や複数の一致式を使用して、より複雑なルールを定義できることExistsに注意してください。DoesNotExist

ノード アフィニティを使用すると、ノードのラベルと条件に基づいてポッドを特定のノードにスケジュールして、アプリケーションのニーズを満たしたり、特定のノード上のリソースや環境を活用したりできます。

おすすめ

転載: blog.csdn.net/qq_44370158/article/details/132170502