コンテナイメージレジストリやルータなどインフラを構成する要素のみをホストするようなマシンをインフラノードと言います。今回はこの様なノードを AWS 上で構築した OpenShift 4.3 に追加します。
インフラノードとワーカーノードの違いは以下の要素を含んでいるかどうかです。
spec: template: metadata: labels: machine.openshift.io/cluster-api-machine-role: infra machine.openshift.io/cluster-api-machine-type: infra spec: metadata: labels: node-role.kubernetes.io/infra: ""
MachineSet を作成
以下の Yaml はインフラノードとなる MachineSet のサンプルです。
chiroito-cluster
と言う名前のクラスタに us-east-2a-infra
と言う名前の MachineSet
を追加します。
AWS特有の情報は以下で作ります。
- リージョンは
us-east-2
- アベイラビリティゾーンは
us-east-2a
- インスタンスタイプは
m5.large
- セキュリティグループは
chiroito-worker-infra-sg
machineset.yaml
apiVersion: machine.openshift.io/v1beta1 kind: MachineSet metadata: labels: machine.openshift.io/cluster-api-cluster: chiroito-cluster name: us-east-2a-infra namespace: openshift-machine-api spec: replicas: 2 selector: matchLabels: machine.openshift.io/cluster-api-cluster: chiroito-cluster machine.openshift.io/cluster-api-machineset: us-east-2a-infra template: metadata: labels: machine.openshift.io/cluster-api-cluster: chiroito-cluster machine.openshift.io/cluster-api-machine-role: infra machine.openshift.io/cluster-api-machine-type: infra machine.openshift.io/cluster-api-machineset: us-east-2a-infra spec: metadata: labels: node-role.kubernetes.io/infra: "" providerSpec: value: ami: id: ami-0d8f77b753c0d96dd apiVersion: awsproviderconfig.openshift.io/v1beta1 blockDevices: - ebs: iops: 0 volumeSize: 120 volumeType: gp2 credentialsSecret: name: aws-cloud-credentials deviceIndex: 0 iamInstanceProfile: id: chiroito-cluster-worker-profile instanceType: m5.large kind: AWSMachineProviderConfig placement: availabilityZone: us-east-2a region: us-east-2 securityGroups: - filters: - name: tag:Name values: - chiroito-cluster-worker-sg subnet: filters: - name: tag:Name values: - chiroito-cluster-private-us-east-2a tags: - name: kubernetes.io/cluster/chiroito-cluster value: owned userDataSecret: name: worker-user-data
この Yaml を使って MachineSet を作ります。
$ oc create -f machineset.yaml
確認
MachineSet が作成されたかを確認します。
$ oc get machinesets -n openshift-machine-api NAME DESIRED CURRENT READY AVAILABLE AGE us-east-2a-infra 2 2 2 2 20h us-east-2a-worker 2 2 2 2 21h
MachineSet によって Machine が作成されたかを確認します。
oc get machines -n openshift-machine-api NAME PHASE TYPE REGION ZONE AGE chiroito-cluster-master-0 Running m5.xlarge us-east-2 us-east-2a 21h chiroito-cluster-master-1 Running m5.xlarge us-east-2 us-east-2b 21h chiroito-cluster-master-2 Running m5.xlarge us-east-2 us-east-2c 21h us-east-2a-infra-5kbl6 Running m5.large us-east-2 us-east-2a 20h us-east-2a-infra-wvpx4 Running m5.large us-east-2 us-east-2a 20h us-east-2a-worker-7gp74 Running m5.large us-east-2 us-east-2c 20h us-east-2a-worker-tss5j Running m5.large us-east-2 us-east-2c 20h
ついでにノードも確認しましょう。きちんと infra,worker となっていれば OK です。
oc get nodes -n openshift-machine-api NAME STATUS ROLES AGE VERSION ip-10-0-129-22.us-east-2.compute.internal Ready infra,worker 20h v1.16.2 ip-10-0-132-220.us-east-2.compute.internal Ready master 21h v1.16.2 ip-10-0-141-130.us-east-2.compute.internal Ready infra,worker 20h v1.16.2 ip-10-0-145-141.us-east-2.compute.internal Ready master 21h v1.16.2 ip-10-0-165-220.us-east-2.compute.internal Ready master 21h v1.16.2 ip-10-0-166-143.us-east-2.compute.internal Ready worker 20h v1.16.2 ip-10-0-169-180.us-east-2.compute.internal Ready worker 20h v1.16.2
参考資料