7.2. 인프라 노드 생성을 위한 머신 세트
환경에서 Machine API가 지원되는 경우 인프라 노드를 프로비저닝할 머신 세트의 템플릿에 레이블을 추가해야 합니다. 시스템 API에서 생성한 노드에 라벨을 수동으로 추가하는 anti-pattern을 사용하지 않도록 합니다. 이렇게 하는 것은 배포에서 생성된 Pod에 라벨을 추가하는 것과 유사합니다. 두 경우 모두 Pod/노드가 실패하면 교체 Pod/노드에 적절한 레이블이 없습니다.
EC2 환경에서는 각각 별도의 가용성 영역(예: us-east-2a, us-east-2b, us-east-2c)으로 인프라 노드를 프로비저닝하도록 구성된 세 개의 머신 세트가 필요합니다. 현재 OpenShift Data Foundation은 세 개 이상의 가용성 영역에서 배포를 지원하지 않습니다.
다음 머신 세트 템플릿 예제에서는 인프라 노드에 필요한 적절한 테인트 및 라벨을 사용하여 노드를 생성합니다. 이는 OpenShift Data Foundation 서비스를 실행하는 데 사용됩니다.
template: metadata: creationTimestamp: null labels: machine.openshift.io/cluster-api-cluster: kb-s25vf machine.openshift.io/cluster-api-machine-role: worker machine.openshift.io/cluster-api-machine-type: worker machine.openshift.io/cluster-api-machineset: kb-s25vf-infra-us-west-2a spec: taints: - effect: NoSchedule key: node.ocs.openshift.io/storage value: "true" metadata: creationTimestamp: null labels: node-role.kubernetes.io/infra: "" cluster.ocs.openshift.io/openshift-storage: ""
template:
metadata:
creationTimestamp: null
labels:
machine.openshift.io/cluster-api-cluster: kb-s25vf
machine.openshift.io/cluster-api-machine-role: worker
machine.openshift.io/cluster-api-machine-type: worker
machine.openshift.io/cluster-api-machineset: kb-s25vf-infra-us-west-2a
spec:
taints:
- effect: NoSchedule
key: node.ocs.openshift.io/storage
value: "true"
metadata:
creationTimestamp: null
labels:
node-role.kubernetes.io/infra: ""
cluster.ocs.openshift.io/openshift-storage: ""
인프라 노드에 테인트를 추가하는 경우 다른 워크로드(예: fluentd Pod)의 테인트에 허용 오차를 추가해야 합니다. 자세한 내용은 OpenShift 4의 Red Hat Knowledgebase 솔루션 인프라 노드를 참조하십시오.