6.3. 노드 관리
OpenShift Container Platform에서는 KubeletConfig CR(사용자 정의 리소스)을 사용하여 노드의 구성을 관리합니다. KubeletConfig 오브젝트의 인스턴스를 생성하면 관리형 머신 구성이 생성되어 노드의 설정을 덮어씁니다.
구성을 변경하기 위해 원격 머신에 로그인하는 것은 지원되지 않습니다.
6.3.1. 노드 수정 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 또는 머신 풀을 구성하려면 CRD(사용자 정의 리소스 정의) 또는 kubeletConfig 오브젝트를 생성해야 합니다. OpenShift Container Platform에서는 CRD를 통해 도입된 변경 사항을 확인하는 데 Machine Config Controller를 사용하여 클러스터에 변경 사항을 적용합니다.
kubeletConfig 오브젝트의 필드는 업스트림 Kubernetes에서 kubelet에 직접 전달되므로 해당 필드의 검증은 kubelet 자체에서 직접 처리합니다. 이러한 필드의 유효한 값은 관련 Kubernetes 설명서를 참조하십시오. kubeletConfig 오브젝트의 잘못된 값은 클러스터 노드를 사용할 수 없게 될 수 있습니다.
프로세스
구성하려는 노드 유형의 정적 CRD인 머신 구성 풀과 연결된 라벨을 가져옵니다. 다음 중 하나를 실행합니다.
원하는 머신 구성 풀의 현재 라벨을 확인합니다.
예를 들면 다음과 같습니다.
$ 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원하는 머신 구성 풀에 사용자 정의 라벨을 추가합니다.
예를 들면 다음과 같습니다.
$ oc label machineconfigpool worker custom-kubelet=enabled
구성 변경에 대한
kubeletconfigCR(사용자 정의 리소스)을 생성합니다.예를 들면 다음과 같습니다.
custom-config CR 구성 샘플
apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: custom-config1 spec: machineConfigPoolSelector: matchLabels: custom-kubelet: enabled2 kubeletConfig:3 podsPerCore: 10 maxPods: 250 systemReserved: cpu: 2000m memory: 1Gi #...CR 오브젝트를 생성합니다.
$ oc create -f <file-name>예를 들면 다음과 같습니다.
$ oc create -f master-kube-config.yaml
대부분의 Kubelet 구성 옵션은 사용자가 설정할 수 있습니다. 다음 옵션은 덮어쓸 수 없습니다.
- CgroupDriver
- ClusterDNS
- ClusterDomain
- StaticPodPath
단일 노드에 50개 이상의 이미지가 포함된 경우 노드 간에 Pod 예약이 분산될 수 있습니다. 노드의 이미지 목록이 기본적으로 50개로 단축되기 때문입니다. KubeletConfig 오브젝트를 편집하고 nodeStatusMaxImages 값을 -1 로 설정하여 이미지 제한을 비활성화할 수 있습니다.