4.5.2. 노드 그룹 정의
최신 openshift-ansible 패키지를 설치한 후 /usr/share/ansible/openshift-ansible/openshift_facts/defaults/main.yml 파일에서 YAML 형식으로 노드 그룹 정의의 기본 세트를 볼 수 있습니다.
openshift_node_groups: - name: node-config-master 1 labels: - 'node-role.kubernetes.io/master=true' 2 edits: [] 3 - name: node-config-infra labels: - 'node-role.kubernetes.io/infra=true' edits: [] - name: node-config-compute labels: - 'node-role.kubernetes.io/compute=true' edits: [] - name: node-config-master-infra labels: - 'node-role.kubernetes.io/infra=true,node-role.kubernetes.io/master=true' edits: [] - name: node-config-all-in-one labels: - 'node-role.kubernetes.io/infra=true,node-role.kubernetes.io/master=true,node-role.kubernetes.io/compute=true' edits: []
- 1
- 노드 그룹 이름.
- 2
- 노드 그룹과 연결된 노드 라벨 목록입니다. 자세한 내용은 노드 호스트 레이블 을 참조하십시오.
- 3
- 노드 그룹의 구성에 대한 모든 편집
인벤토리 파일의 [OSEv3:vars]
그룹에 openshift_node_groups
변수를 설정하지 않으면 이러한 기본값이 사용됩니다. 그러나 사용자 지정 노드 그룹을 설정하려면 인벤토리 파일에 계획된 모든 노드 그룹을 포함하여 전체 openshift_node_groups
구조를 정의해야 합니다.
openshift_node_groups
값은 기본값과 병합되지 않으며 YAML 정의를 Python 사전으로 변환해야 합니다. 그런 다음 edits
필드를 사용하여 키-값 쌍을 지정하여 노드 구성 변수를 수정할 수 있습니다.
구성 가능한 노드 변수에 대한 참조는 마스터 및 노드 구성 파일을 참조하십시오.
예를 들어 인벤토리 파일의 다음 항목은 node-config-master
,node-config-infra
, node-config-compute
라는 그룹을 정의합니다.
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true']}]
인벤토리 파일의 다음 항목은 node-config-master
,node-config-infra
, node-config-compute 및node-config-
그룹 이름을 정의할 수도 있습니다.
compute
-storage 를 사용하여 새 노드
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true']}, {'name': 'node-config-compute-storage', 'labels': ['node-role.kubernetes.io/compute-storage=true']}]
인벤토리 파일에서 항목을 설정하면 노드 그룹의 ConfigMap을 편집할 수도 있습니다.
-
node-config-compute
를 수정하여kubeletArguments.pods-per-core
를20
으로 설정하는 것과 같은 목록을 사용할 수 있습니다.
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true'], 'edits': [{ 'key': 'kubeletArguments.pods-per-core','value': ['20']}]}]
-
목록을 사용하여
kubelet
에 두 개의 매개변수를 추가하도록node-config-compute
그룹 수정과 같은 여러 키 값 쌍을 수정할 수 있습니다.
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true'], 'edits': [{ 'key': 'kubeletArguments.experimental-allocatable-ignore-eviction','value': ['true']}, {'key': 'kubeletArguments.eviction-hard', 'value': ['memory.available<1Ki']}]}]
-
node-config-compute
그룹 수정과 같이 사전을 값으로 사용하여perFSGroup
을512Mi
로 설정할 수도 있습니다.
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true'], 'edits': [{ 'key': 'volumeConfig.localQuota','value': {'perFSGroup':'512Mi'}}]}]
openshift_node_group.yml 플레이북이 실행될 때마다 edits
필드에 정의된 변경 사항은 관련 ConfigMap(이 예제의node-config-compute
)을 업데이트합니다. 그러면 결국 호스트의 구성 파일에 영향을 미칩니다.
openshift_node_group.yaml 플레이북을 실행하면 새 노드만 업데이트됩니다. 클러스터의 기존 노드를 업데이트하려면 실행할 수 없습니다.