5.6.2. Pod 유사성 방지를 사용하여 노드 재부팅

Pod 유사성 방지는 노드 유사성 방지와 약간 다릅니다. Pod를 배포할 다른 적절한 위치가 없는 경우 노드 유사성 방지를 위반할 수 있습니다. Pod 유사성 방지를 필수 또는 기본으로 설정할 수 있습니다.

이 경우 두 개의 인프라 노드만 사용할 수 있고 하나의 인프라 노드만 재부팅하면 컨테이너 이미지 레지스트리 포드가 다른 노드에서 실행되지 않습니다. oc get pods 는 적절한 노드를 사용할 수 있을 때까지 포드를 준비되지 않은 것으로 보고합니다. 노드를 사용할 수 있고 모든 Pod가 준비 상태가 되면 다음 노드를 재시작할 수 있습니다.

프로세스

Pod 유사성 방지를 사용하여 노드를 재부팅하려면 다음을 수행합니다.

  1. 노드 사양을 편집하여 Pod 유사성 방지를 구성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: with-pod-antiaffinity
    spec:
      affinity:
        podAntiAffinity: 1
          preferredDuringSchedulingIgnoredDuringExecution: 2
          - weight: 100 3
            podAffinityTerm:
              labelSelector:
                matchExpressions:
                - key: registry 4
                  operator: In 5
                  values:
                  - default
              topologyKey: kubernetes.io/hostname
    1
    Pod 유사성 방지를 구성하는 스탠자입니다.
    2
    기본 규칙을 정의합니다.
    3
    기본 규칙의 가중치를 지정합니다. 가중치가 가장 높은 노드가 우선합니다.
    4
    유사성 방지 규칙이 적용되는 시기를 결정하는 Pod 라벨에 대한 설명입니다. 라벨의 키와 값을 지정합니다.
    5
    이 연산자는 기존 Pod의 라벨과 새 Pod 사양에 있는 matchExpression 매개변수의 값 집합 간의 관계를 나타냅니다. In, NotIn, Exists 또는 DoesNotExist일 수 있습니다.

    이 예제에서는 컨테이너 이미지 레지스트리 Pod에 registry=default 라벨이 있다고 가정합니다. Pod 유사성 방지에서는 모든 Kubernetes 일치 표현식을 사용할 수 있습니다.

  2. 예약 정책 파일에서 MatchInterPodAffinity 스케줄러 서술자를 활성화합니다.
  3. 노드를 정상적으로 다시 시작합니다.