2.11. 노드 수정
설치 중에 OpenShift Container Platform은 각 노드 그룹에 대해 openshift-node 프로젝트에 configmap을 생성합니다.
- node-config-master
- node-config-infra
- node-config-compute
- node-config-all-in-one
- node-config-master-infra
기존 노드를 구성하려면 적절한 구성 맵을 편집합니다. 각 노드의 동기화 Pod 는 구성 맵의 변경 사항을 감시합니다. 설치하는 동안 동기화 Pod는 동기화 Daemonsets 를 사용하고 노드 구성 매개 변수가 있는 /etc/origin/node/node-config.yaml 파일이 각 노드에 추가됩니다. 동기화 Pod에서 구성 맵 변경 사항을 탐지하면 해당 노드 그룹의 모든 노드에서 node-config.yaml 을 업데이트하고 적절한 노드에서 atomic-openshift-node.service 를 다시 시작합니다.
$ oc get cm -n openshift-node
출력 예
NAME DATA AGE
node-config-all-in-one 1 1d
node-config-compute 1 1d
node-config-infra 1 1d
node-config-master 1 1d
node-config-master-infra 1 1d
node-config-compute 그룹의 구성 맵 샘플
apiVersion: v1
authConfig:
authenticationCacheSize: 1000
authenticationCacheTTL: 5m
authorizationCacheSize: 1000
authorizationCacheTTL: 5m
dnsBindAddress: 127.0.0.1:53
dnsDomain: cluster.local
dnsIP: 0.0.0.0
dnsNameservers: null
dnsRecursiveResolvConf: /etc/origin/node/resolv.conf
dockerConfig:
dockerShimRootDirectory: /var/lib/dockershim
dockerShimSocket: /var/run/dockershim.sock
execHandlerName: native
enableUnidling: true
imageConfig:
format: registry.reg-aws.openshift.com/openshift3/ose-${component}:${version}
latest: false
iptablesSyncPeriod: 30s
kind: NodeConfig
kubeletArguments:
bootstrap-kubeconfig:
- /etc/origin/node/bootstrap.kubeconfig
cert-dir:
- /etc/origin/node/certificates
cloud-config:
- /etc/origin/cloudprovider/aws.conf
cloud-provider:
- aws
enable-controller-attach-detach:
- 'true'
feature-gates:
- RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true
node-labels:
- node-role.kubernetes.io/compute=true
pod-manifest-path:
- /etc/origin/node/pods
rotate-certificates:
- 'true'
masterClientConnectionOverrides:
acceptContentTypes: application/vnd.kubernetes.protobuf,application/json
burst: 40
contentType: application/vnd.kubernetes.protobuf
qps: 20
masterKubeConfig: node.kubeconfig
networkConfig:
mtu: 8951
networkPluginName: redhat/openshift-ovs-subnet
servingInfo:
bindAddress: 0.0.0.0:10250
bindNetwork: tcp4
clientCA: client-ca.crt
volumeConfig:
localQuota:
perFSGroup: null
volumeDirectory: /var/lib/origin/openshift.local.volumes
- 1
- 인증 및 권한 부여 구성 옵션.
- 2
- 포드의 /etc/resolv.conf 앞에 추가되는 IP 주소.
- 3
- Kubelet의 명령줄 인수 와 일치하는 Kubelet에 직접 전달되는 키 값 쌍입니다.
- 4
- Pod 매니페스트 파일 또는 디렉터리의 경로입니다. 디렉터리에는 하나 이상의 매니페스트 파일이 포함되어야 합니다. OpenShift Container Platform은 매니페스트 파일을 사용하여 노드에 Pod를 생성합니다.
- 5
- 노드의 Pod 네트워크 설정입니다.
- 6
- 소프트웨어 정의 네트워크(SDN) 플러그인. ovs
-subnet 플러그인의 경우 redhat/openshift-ovs-subnet, ovs -multitenant 플러그인의 경우 redhat/openshift-ovs-multitenant 또는 ovs -networkpolicy 플러그인의 경우 redhat/openshift-ovs-networkpolicy 로 설정합니다. - 7
- 노드의 인증서 정보입니다.
- 8
- 선택 사항: PEM 인코딩 인증서 번들. 설정한 경우 요청 헤더에서 사용자 이름을 확인하기 전에 지정된 파일의 인증 기관에 대해 유효한 클라이언트 인증서를 제공하고 검증해야 합니다.
/etc/origin/node/node-config.yaml 파일을 수동으로 수정하지 마십시오.
2.11.1. 노드 리소스 구성 링크 복사링크가 클립보드에 복사되었습니다!
노드 구성 맵에 kubelet 인수를 추가하여 노드 리소스를 구성할 수 있습니다.
구성 맵을 편집합니다.
$ oc edit cm node-config-compute -n openshift-nodekubeletArguments섹션을 추가하고 옵션을 지정합니다.kubeletArguments: max-pods:1 - "40" resolv-conf:2 - "/etc/resolv.conf" image-gc-high-threshold:3 - "90" image-gc-low-threshold:4 - "80" kube-api-qps:5 - "20" kube-api-burst:6 - "40"사용 가능한 kubelet 옵션을 모두 보려면 다음을 수행합니다.
$ hyperkube kubelet -h