Menu Close

5.3. 노드 관리

OpenShift Container Platform에서는 KubeletConfig CR(사용자 정의 리소스)을 사용하여 노드의 구성을 관리합니다. KubeletConfig 오브젝트의 인스턴스를 생성하면 관리형 머신 구성이 생성되어 노드의 설정을 덮어씁니다.

참고

구성을 변경하기 위해 원격 머신에 로그인하는 것은 지원되지 않습니다.

5.3.1. 노드 수정

클러스터 또는 머신 풀에 대한 구성을 변경하려면 CRD(사용자 정의 리소스 정의) 또는 kubeletConfig 오브젝트를 생성해야 합니다. OpenShift Container Platform에서는 CRD를 통해 도입된 변경 사항을 확인하는 데 Machine Config Controller를 사용하여 클러스터에 변경 사항을 적용합니다.

참고

kubeletConfig 오브젝트의 필드는 업스트림 Kubernetes에서 kubelet으로 직접 전달되므로 해당 필드의 유효성 검사는 kubelet 자체에서 직접 처리합니다. 이러한 필드에 유효한 값은 관련 Kubernetes 설명서를 참조하십시오. kubeletConfig 오브젝트의 유효하지 않은 값은 클러스터 노드를 사용할 수 없게 렌더링할 수 있습니다.

절차

  1. 구성하려는 노드 유형의 정적 CRD인 머신 구성 풀과 연결된 라벨을 가져옵니다. 다음 중 하나를 실행합니다.

    1. 원하는 머신 구성 풀의 현재 라벨을 확인합니다.

      예를 들면 다음과 같습니다.

      $  oc get machineconfigpool  --show-labels

      출력 예

      NAME      CONFIG                                             UPDATED   UPDATING   DEGRADED   LABELS
      master    rendered-master-e05b81f5ca4db1d249a1bf32f9ec24fd   True      False      False      operator.machineconfiguration.openshift.io/required-for-upgrade=
      worker    rendered-worker-f50e78e1bc06d8e82327763145bfcf62   True      False      False

    2. 원하는 머신 구성 풀에 사용자 정의 라벨을 추가합니다.

      예를 들면 다음과 같습니다.

      $ oc label machineconfigpool worker custom-kubelet=enabled
  2. 구성 변경에 대한 kubeletconfig CR(사용자 정의 리소스)을 생성합니다.

    예를 들면 다음과 같습니다.

    custom-config CR 구성 샘플

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: custom-config 1
    spec:
      machineConfigPoolSelector:
        matchLabels:
          custom-kubelet: enabled 2
      kubeletConfig: 3
        podsPerCore: 10
        maxPods: 250
        systemReserved:
          cpu: 2000m
          memory: 1Gi

    1
    CR에 이름을 지정합니다.
    2
    구성 변경 사항을 적용하려면 라벨을 지정합니다. 이 라벨은 머신 구성 풀에 추가한 라벨입니다.
    3
    변경할 새 값을 지정합니다.
  3. CR 오브젝트를 생성합니다.

    $ oc create -f <file-name>

    예를 들면 다음과 같습니다.

    $ oc create -f master-kube-config.yaml

대부분의 Kubelet 구성 옵션은 사용자가 설정할 수 있습니다. 다음 옵션은 덮어쓸 수 없습니다.

  • CgroupDriver
  • ClusterDNS
  • ClusterDomain
  • RuntimeRequestTimeout
  • StaticPodPath