8.4. 인프라 머신 세트로 리소스 이동
일부 인프라 리소스는 기본적으로 클러스터에 배포됩니다. 다음과 같이 인프라 노드 선택기를 추가하여 생성한 인프라 머신 세트로 이동할 수 있습니다.
- 1
- 적절한 값이 설정된
nodeSelector
매개변수를 이동하려는 구성 요소에 추가합니다. 표시된 형식으로nodeSelector
를 사용하거나 노드에 지정된 값에 따라<key>: <value>
쌍을 사용할 수 있습니다. infrasructure 노드에 테인트를 추가한 경우 일치하는 톨러레이션도 추가합니다.
모든 인프라 구성 요소에 특정 노드 선택기를 적용하면 OpenShift Container Platform에서 해당 라벨이 있는 노드에 해당 워크로드를 예약합니다.
8.4.1. 라우터 이동 링크 복사링크가 클립보드에 복사되었습니다!
라우터 Pod를 다른 컴퓨팅 머신 세트에 배포할 수 있습니다. 기본적으로 Pod는 작업자 노드에 배포됩니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에서 추가 컴퓨팅 머신 세트를 구성합니다.
프로세스
라우터 Operator의
IngressController
사용자 정의 리소스를 표시합니다.oc get ingresscontroller default -n openshift-ingress-operator -o yaml
$ oc get ingresscontroller default -n openshift-ingress-operator -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 출력은 다음 예제와 유사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ingresscontroller
리소스를 편집하고infra
레이블을 사용하도록nodeSelector
를 변경합니다.oc edit ingresscontroller default -n openshift-ingress-operator
$ oc edit ingresscontroller default -n openshift-ingress-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 적절한 값이 설정된
nodeSelector
매개변수를 이동하려는 구성 요소에 추가합니다. 표시된 형식으로nodeSelector
매개변수를 사용하거나 노드에 지정된 값에 따라 <key>: <value
> 쌍을 사용할 수 있습니다. 인프라 노드에 테인트를 추가한 경우 일치하는 허용 오차도 추가합니다.
라우터 pod가
infra
노드에서 실행되고 있는지 확인합니다.라우터 pod 목록을 표시하고 실행중인 pod의 노드 이름을 기록해 둡니다.
oc get pod -n openshift-ingress -o wide
$ oc get pod -n openshift-ingress -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES router-default-86798b4b5d-bdlvd 1/1 Running 0 28s 10.130.2.4 ip-10-0-217-226.ec2.internal <none> <none> router-default-955d875f4-255g8 0/1 Terminating 0 19h 10.129.2.4 ip-10-0-148-172.ec2.internal <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES router-default-86798b4b5d-bdlvd 1/1 Running 0 28s 10.130.2.4 ip-10-0-217-226.ec2.internal <none> <none> router-default-955d875f4-255g8 0/1 Terminating 0 19h 10.129.2.4 ip-10-0-148-172.ec2.internal <none> <none>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 실행중인 pod는
ip-10-0-217-226.ec2.internal
노드에 있습니다.실행중인 pod의 노드 상태를 표시합니다.
oc get node <node_name>
$ oc get node <node_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- pod 목록에서 얻은
<node_name>
을 지정합니다.
출력 예
NAME STATUS ROLES AGE VERSION ip-10-0-217-226.ec2.internal Ready infra,worker 17h v1.30.3
NAME STATUS ROLES AGE VERSION ip-10-0-217-226.ec2.internal Ready infra,worker 17h v1.30.3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 역할 목록에
infra
가 포함되어 있으므로 pod가 올바른 노드에서 실행됩니다.
8.4.2. 기본 레지스트리 이동 링크 복사링크가 클립보드에 복사되었습니다!
Pod를 다른 노드에 배포하도록 레지스트리 Operator를 구성합니다.
사전 요구 사항
- OpenShift Container Platform 클러스터에서 추가 컴퓨팅 머신 세트를 구성합니다.
프로세스
config/instance
개체를 표시합니다.oc get configs.imageregistry.operator.openshift.io/cluster -o yaml
$ oc get configs.imageregistry.operator.openshift.io/cluster -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow config/instance
개체를 편집합니다.oc edit configs.imageregistry.operator.openshift.io/cluster
$ oc edit configs.imageregistry.operator.openshift.io/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 적절한 값이 설정된
nodeSelector
매개변수를 이동하려는 구성 요소에 추가합니다. 표시된 형식으로nodeSelector
매개변수를 사용하거나 노드에 지정된 값에 따라 <key>: <value
> 쌍을 사용할 수 있습니다. infrasructure 노드에 테인트를 추가한 경우 일치하는 톨러레이션도 추가합니다.
레지스트리 pod가 인프라 노드로 이동되었는지 검증합니다.
다음 명령을 실행하여 레지스트리 pod가 있는 노드를 식별합니다.
oc get pods -o wide -n openshift-image-registry
$ oc get pods -o wide -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드에 지정된 레이블이 있는지 확인합니다.
oc describe node <node_name>
$ oc describe node <node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 출력을 확인하고
node-role.kubernetes.io/infra
가LABELS
목록에 있는지 확인합니다.
8.4.3. 모니터링 솔루션 이동 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 스택에는 Prometheus, Thanos Querier 및 Alertmanager를 포함한 여러 구성 요소가 포함됩니다. Cluster Monitoring Operator는 이 스택을 관리합니다. 모니터링 스택을 인프라 노드에 재배포하려면 사용자 정의 구성 맵을 생성하고 적용할 수 있습니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다. -
cluster-monitoring-config
ConfigMap
오브젝트를 생성하셨습니다. -
OpenShift CLI(
oc
)가 설치되어 있습니다.
프로세스
cluster-monitoring-config
구성 맵을 편집하고infra
레이블을 사용하도록nodeSelector
를 변경합니다.oc edit configmap cluster-monitoring-config -n openshift-monitoring
$ oc edit configmap cluster-monitoring-config -n openshift-monitoring
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 적절한 값이 설정된
nodeSelector
매개변수를 이동하려는 구성 요소에 추가합니다. 표시된 형식으로nodeSelector
매개변수를 사용하거나 노드에 지정된 값에 따라 <key>: <value
> 쌍을 사용할 수 있습니다. 인프라 노드에 테인트를 추가한 경우 일치하는 허용 오차도 추가합니다.
모니터링 pod가 새 머신으로 이동하는 것을 확인합니다.
watch 'oc get pod -n openshift-monitoring -o wide'
$ watch 'oc get pod -n openshift-monitoring -o wide'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 요소가
infra
노드로 이동하지 않은 경우 이 구성 요소가 있는 pod를 제거합니다.oc delete pod -n openshift-monitoring <pod>
$ oc delete pod -n openshift-monitoring <pod>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 삭제된 pod의 구성 요소가
infra
노드에 다시 생성됩니다.
8.4.4. Vertical Pod Autoscaler Operator 구성 요소 이동 링크 복사링크가 클립보드에 복사되었습니다!
VPA(Vertical Pod Autoscaler Operator)는 권장 사항, 업데이트 관리자 및 승인 컨트롤러의 세 가지 구성 요소로 구성됩니다. Operator 및 각 구성 요소에는 컨트롤 플레인 노드의 VPA 네임스페이스에 자체 Pod가 있습니다. VPA 서브스크립션 및 VerticalPodAutoscalerController
CR에 노드 선택기를 추가하여 VPA Operator 및 구성 요소 Pod를 인프라 노드로 이동할 수 있습니다.
다음 예제에서는 컨트롤 플레인 노드에 VPA Pod의 기본 배포를 보여줍니다.
출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES vertical-pod-autoscaler-operator-6c75fcc9cd-5pb6z 1/1 Running 0 7m59s 10.128.2.24 c416-tfsbj-master-1 <none> <none> vpa-admission-plugin-default-6cb78d6f8b-rpcrj 1/1 Running 0 5m37s 10.129.2.22 c416-tfsbj-master-1 <none> <none> vpa-recommender-default-66846bd94c-dsmpp 1/1 Running 0 5m37s 10.129.2.20 c416-tfsbj-master-0 <none> <none> vpa-updater-default-db8b58df-2nkvf 1/1 Running 0 5m37s 10.129.2.21 c416-tfsbj-master-1 <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
vertical-pod-autoscaler-operator-6c75fcc9cd-5pb6z 1/1 Running 0 7m59s 10.128.2.24 c416-tfsbj-master-1 <none> <none>
vpa-admission-plugin-default-6cb78d6f8b-rpcrj 1/1 Running 0 5m37s 10.129.2.22 c416-tfsbj-master-1 <none> <none>
vpa-recommender-default-66846bd94c-dsmpp 1/1 Running 0 5m37s 10.129.2.20 c416-tfsbj-master-0 <none> <none>
vpa-updater-default-db8b58df-2nkvf 1/1 Running 0 5m37s 10.129.2.21 c416-tfsbj-master-1 <none> <none>
프로세스
VPA Operator의
Subscription
CR(사용자 정의 리소스)에 노드 선택기를 추가하여 VPA Operator Pod를 이동합니다.CR을 편집합니다.
oc edit Subscription vertical-pod-autoscaler -n openshift-vertical-pod-autoscaler
$ oc edit Subscription vertical-pod-autoscaler -n openshift-vertical-pod-autoscaler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인프라 노드의 노드 역할 레이블과 일치하도록 노드 선택기를 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 인프라 노드의 노드 역할을 지정합니다.
참고인프라 노드에서 taint를 사용하는 경우
서브스크립션
CR에 허용 오차를 추가해야 합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 인프라 노드의 테인트에 대한 허용 오차를 지정합니다.
VerticalPodAutoscaler
CR(사용자 정의 리소스)에 노드 선택기를 추가하여 각 VPA 구성 요소를 이동합니다.CR을 편집합니다.
oc edit VerticalPodAutoscalerController default -n openshift-vertical-pod-autoscaler
$ oc edit VerticalPodAutoscalerController default -n openshift-vertical-pod-autoscaler
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인프라 노드의 노드 역할 레이블과 일치하도록 노드 선택기를 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고대상 노드에서 테인트를 사용하는 경우
VerticalPodAutoscalerController
CR에 허용 오차를 추가해야 합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 사용하여 Pod가 이동했는지 확인할 수 있습니다.
oc get pods -n openshift-vertical-pod-autoscaler -o wide
$ oc get pods -n openshift-vertical-pod-autoscaler -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod는 더 이상 컨트롤 플레인 노드에 배포되지 않습니다. 아래 예제 출력에서 노드는 이제 컨트롤 플레인 노드가 아닌 인프라 노드입니다.
출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES vertical-pod-autoscaler-operator-6c75fcc9cd-5pb6z 1/1 Running 0 7m59s 10.128.2.24 c416-tfsbj-infra-eastus3-2bndt <none> <none> vpa-admission-plugin-default-6cb78d6f8b-rpcrj 1/1 Running 0 5m37s 10.129.2.22 c416-tfsbj-infra-eastus1-lrgj8 <none> <none> vpa-recommender-default-66846bd94c-dsmpp 1/1 Running 0 5m37s 10.129.2.20 c416-tfsbj-infra-eastus1-lrgj8 <none> <none> vpa-updater-default-db8b58df-2nkvf 1/1 Running 0 5m37s 10.129.2.21 c416-tfsbj-infra-eastus1-lrgj8 <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES vertical-pod-autoscaler-operator-6c75fcc9cd-5pb6z 1/1 Running 0 7m59s 10.128.2.24 c416-tfsbj-infra-eastus3-2bndt <none> <none> vpa-admission-plugin-default-6cb78d6f8b-rpcrj 1/1 Running 0 5m37s 10.129.2.22 c416-tfsbj-infra-eastus1-lrgj8 <none> <none> vpa-recommender-default-66846bd94c-dsmpp 1/1 Running 0 5m37s 10.129.2.20 c416-tfsbj-infra-eastus1-lrgj8 <none> <none> vpa-updater-default-db8b58df-2nkvf 1/1 Running 0 5m37s 10.129.2.21 c416-tfsbj-infra-eastus1-lrgj8 <none> <none>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4.5. Cluster Resource Override Operator Pod 이동 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Cluster Resource Override Operator 설치 프로세스는 clusterresourceoverride-operator
네임스페이스의 노드에서 Operator Pod 및 Cluster Resource Override Pod를 생성합니다. 필요에 따라 이러한 Pod를 인프라 노드와 같은 다른 노드로 이동할 수 있습니다.
다음 예제에서는 Cluster Resource Override Pod가 컨트롤 플레인 노드에 배포되고 Cluster Resource Override Operator Pod가 작업자 노드에 배포됩니다.
클러스터 리소스 덮어쓰기 Pod의 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES clusterresourceoverride-786b8c898c-9wrdq 1/1 Running 0 23s 10.128.2.32 ip-10-0-14-183.us-west-2.compute.internal <none> <none> clusterresourceoverride-786b8c898c-vn2lf 1/1 Running 0 26s 10.130.2.10 ip-10-0-20-140.us-west-2.compute.internal <none> <none> clusterresourceoverride-operator-6b8b8b656b-lvr62 1/1 Running 0 56m 10.131.0.33 ip-10-0-2-39.us-west-2.compute.internal <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
clusterresourceoverride-786b8c898c-9wrdq 1/1 Running 0 23s 10.128.2.32 ip-10-0-14-183.us-west-2.compute.internal <none> <none>
clusterresourceoverride-786b8c898c-vn2lf 1/1 Running 0 26s 10.130.2.10 ip-10-0-20-140.us-west-2.compute.internal <none> <none>
clusterresourceoverride-operator-6b8b8b656b-lvr62 1/1 Running 0 56m 10.131.0.33 ip-10-0-2-39.us-west-2.compute.internal <none> <none>
노드 목록 예
프로세스
Cluster Resource Override Operator의
Subscription
CR(사용자 정의 리소스)에 노드 선택기를 추가하여 Cluster Resource Override Operator를 이동합니다.CR을 편집합니다.
oc edit -n clusterresourceoverride-operator subscriptions.operators.coreos.com clusterresourceoverride
$ oc edit -n clusterresourceoverride-operator subscriptions.operators.coreos.com clusterresourceoverride
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cluster Resource Override Operator Pod를 설치하려는 노드의 노드 역할 레이블과 일치하도록 노드 선택기를 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Cluster Resource Override Operator Pod를 배포할 노드의 역할을 지정합니다.
참고인프라 노드에서 taint를 사용하는 경우
서브스크립션
CR에 허용 오차를 추가해야 합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 인프라 노드의 테인트에 대한 허용 오차를 지정합니다.
ClusterResourceOverride
사용자 정의 리소스(CR)에 노드 선택기를 추가하여 Cluster Resource Override Pod를 이동합니다.CR을 편집합니다.
oc edit ClusterResourceOverride cluster -n clusterresourceoverride-operator
$ oc edit ClusterResourceOverride cluster -n clusterresourceoverride-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인프라 노드의 노드 역할 레이블과 일치하도록 노드 선택기를 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고인프라 노드에서 taint를 사용하는 경우
ClusterResourceOverride
CR에 허용 오차를 추가해야 합니다.예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 인프라 노드의 테인트에 대한 허용 오차를 지정합니다.
검증
다음 명령을 사용하여 Pod가 이동했는지 확인할 수 있습니다.
oc get pods -n clusterresourceoverride-operator -o wide
$ oc get pods -n clusterresourceoverride-operator -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 Cluster Resource Override Pod가 인프라 노드에 배포됩니다.
출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES clusterresourceoverride-786b8c898c-9wrdq 1/1 Running 0 23s 10.127.2.25 ip-10-0-23-244.us-west-2.compute.internal <none> <none> clusterresourceoverride-786b8c898c-vn2lf 1/1 Running 0 26s 10.128.0.80 ip-10-0-24-233.us-west-2.compute.internal <none> <none> clusterresourceoverride-operator-6b8b8b656b-lvr62 1/1 Running 0 56m 10.129.0.71 ip-10-0-67-453.us-west-2.compute.internal <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES clusterresourceoverride-786b8c898c-9wrdq 1/1 Running 0 23s 10.127.2.25 ip-10-0-23-244.us-west-2.compute.internal <none> <none> clusterresourceoverride-786b8c898c-vn2lf 1/1 Running 0 26s 10.128.0.80 ip-10-0-24-233.us-west-2.compute.internal <none> <none> clusterresourceoverride-operator-6b8b8b656b-lvr62 1/1 Running 0 56m 10.129.0.71 ip-10-0-67-453.us-west-2.compute.internal <none> <none>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow