#はじめに
AWS上にOpenShiftを簡単に導入でき、その結果できあがるAWSリソースの一覧は”OpenShiftをAWSに導入するための見積もりに必要な情報”で示した通りです。
その後もう少しいじってみたい!ということで、今回はworkerノードを追加した結果を記載します。
#環境情報
OpenShiftインストーラー: openshift-client-linux-4.2.12.tar.gz
作業端末:Windows10 Subsystem for Linux(Ubuntu:VERSION=16.04.3 LTS)にAWSCLI導入済
AWS:バージニア北部リージョン(us-east-1)
OpenShift環境:こちらでインストールした環境
#ノード追加
##初期構成
- Node
$ ./oc get nodes
NAME STATUS ROLES AGE VERSION
ip-10-0-131-148.ec2.internal Ready worker 15h v1.14.6+cebabbf4a
ip-10-0-135-200.ec2.internal Ready master 15h v1.14.6+cebabbf4a
ip-10-0-144-36.ec2.internal Ready master 15h v1.14.6+cebabbf4a
ip-10-0-155-190.ec2.internal Ready worker 15h v1.14.6+cebabbf4a
ip-10-0-162-16.ec2.internal Ready worker 15h v1.14.6+cebabbf4a
ip-10-0-173-76.ec2.internal Ready master 15h v1.14.6+cebabbf4a
- Machine
ノードのホストを記述する基本的なユニットです。
$ ./oc get machine -n openshift-machine-api
NAME STATE TYPE REGION ZONE AGE
ocp4-aws-qt9tx-master-0 running m4.xlarge us-east-1 us-east-1a 15h
ocp4-aws-qt9tx-master-1 running m4.xlarge us-east-1 us-east-1b 15h
ocp4-aws-qt9tx-master-2 running m4.xlarge us-east-1 us-east-1c 15h
ocp4-aws-qt9tx-worker-us-east-1a-vmjz4 running m4.large us-east-1 us-east-1a 15h
ocp4-aws-qt9tx-worker-us-east-1b-5txwz running m4.large us-east-1 us-east-1b 15h
ocp4-aws-qt9tx-worker-us-east-1c-4h8zq running m4.large us-east-1 us-east-1c 15h
- Machineset
マシンのグループです。MachineSet とマシンの関係は、ReplicaSet と Pod の関係と同様です。
$ ./oc get machinesets -n openshift-machine-api
NAME DESIRED CURRENT READY AVAILABLE AGE
ocp4-aws-qt9tx-worker-us-east-1a 1 1 1 1 15h
ocp4-aws-qt9tx-worker-us-east-1b 1 1 1 1 15h
ocp4-aws-qt9tx-worker-us-east-1c 1 1 1 1 15h
ocp4-aws-qt9tx-worker-us-east-1d 0 0 15h
ocp4-aws-qt9tx-worker-us-east-1e 0 0 15h
ocp4-aws-qt9tx-worker-us-east-1f 0 0 15h
- workerノードの追加対象Machineset(ocp4-aws-qt9tx-worker-us-east-1d)詳細
マシンを追加する必要がある場合や、マシンの数を縮小したりする必要がある場合、コンピューティングのニーズに応じて MachineSet の replicas フィールドを変更します。
今回はまだworkerノードが設定・起動していないMachineset ocp4-aws-qt9tx-worker-us-east-1d
からworkerノードを追加することにします。
$ ./oc get machinesets -n openshift-machine-api ocp4-aws-qt9tx-worker-us-east-1d -o yaml
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
creationTimestamp: "2019-12-26T14:27:57Z"
generation: 1
labels:
machine.openshift.io/cluster-api-cluster: ocp4-aws-qt9tx
name: ocp4-aws-qt9tx-worker-us-east-1d
namespace: openshift-machine-api
resourceVersion: "3314"
selfLink: /apis/machine.openshift.io/v1beta1/namespaces/openshift-machine-api/machinesets/ocp4-aws-qt9tx-worker-us-east-1d
uid: e9998df3-27eb-11ea-a1e1-1285990f1d61
spec:
replicas: 0
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: ocp4-aws-qt9tx
machine.openshift.io/cluster-api-machineset: ocp4-aws-qt9tx-worker-us-east-1d
template:
metadata:
creationTimestamp: null
labels:
machine.openshift.io/cluster-api-cluster: ocp4-aws-qt9tx
machine.openshift.io/cluster-api-machine-role: worker
machine.openshift.io/cluster-api-machine-type: worker
machine.openshift.io/cluster-api-machineset: ocp4-aws-qt9tx-worker-us-east-1d
spec:
metadata:
creationTimestamp: null
providerSpec:
value:
ami:
id: ami-01e7fdcb66157b224
apiVersion: awsproviderconfig.openshift.io/v1beta1
blockDevices:
- ebs:
iops: 0
volumeSize: 120
volumeType: gp2
credentialsSecret:
name: aws-cloud-credentials
deviceIndex: 0
iamInstanceProfile:
id: ocp4-aws-qt9tx-worker-profile
instanceType: m4.large
kind: AWSMachineProviderConfig
metadata:
creationTimestamp: null
placement:
availabilityZone: us-east-1d
region: us-east-1
publicIp: null
securityGroups:
- filters:
- name: tag:Name
values:
- ocp4-aws-qt9tx-worker-sg
subnet:
filters:
- name: tag:Name
values:
- ocp4-aws-qt9tx-private-us-east-1d
tags:
- name: kubernetes.io/cluster/ocp4-aws-qt9tx
value: owned
userDataSecret:
name: worker-user-data
status:
observedGeneration: 1
replicas: 0
上記replicas: 0
の数値をコマンドもしくは直接編集することでworkerノードが追加されます。
##設定変更
oc scale
コマンドを使ってworkerノードを追加(スケール)します。
参考:2.1. MachineSet の手動によるスケーリング
$ ./oc scale machinesets ocp4-aws-qt9tx-worker-us-east-1d --replicas=1 -n openshift-machine-api
machineset.machine.openshift.io/ocp4-aws-qt9tx-worker-us-east-1d scaled
##設定変更後
- イベント確認
$ ./oc get event -n openshift-machine-api
LAST SEEN TYPE REASON OBJECT MESSAGE
9m29s Normal Updated machine/ocp4-aws-qt9tx-master-0 Updated machine ocp4-aws-qt9tx-master-0
9m32s Normal Updated machine/ocp4-aws-qt9tx-master-1 Updated machine ocp4-aws-qt9tx-master-1
9m31s Normal Updated machine/ocp4-aws-qt9tx-master-2 Updated machine ocp4-aws-qt9tx-master-2
9m30s Normal Updated machine/ocp4-aws-qt9tx-worker-us-east-1a-vmjz4 Updated machine ocp4-aws-qt9tx-worker-us-east-1a-vmjz4
9m30s Normal Updated machine/ocp4-aws-qt9tx-worker-us-east-1b-5txwz Updated machine ocp4-aws-qt9tx-worker-us-east-1b-5txwz
9m30s Normal Updated machine/ocp4-aws-qt9tx-worker-us-east-1c-4h8zq Updated machine ocp4-aws-qt9tx-worker-us-east-1c-4h8zq
5m42s Normal Created machine/ocp4-aws-qt9tx-worker-us-east-1d-64l7m Created Machine ocp4-aws-qt9tx-worker-us-east-1d-64l7m
81s Normal Updated machine/ocp4-aws-qt9tx-worker-us-east-1d-64l7m Updated machine ocp4-aws-qt9tx-worker-us-east-1d-64l7m
- Machine確認
$ ./oc get machine -n openshift-machine-api
NAME STATE TYPE REGION ZONE AGE
ocp4-aws-qt9tx-master-0 running m4.xlarge us-east-1 us-east-1a 15h
ocp4-aws-qt9tx-master-1 running m4.xlarge us-east-1 us-east-1b 15h
ocp4-aws-qt9tx-master-2 running m4.xlarge us-east-1 us-east-1c 15h
ocp4-aws-qt9tx-worker-us-east-1a-vmjz4 running m4.large us-east-1 us-east-1a 15h
ocp4-aws-qt9tx-worker-us-east-1b-5txwz running m4.large us-east-1 us-east-1b 15h
ocp4-aws-qt9tx-worker-us-east-1c-4h8zq running m4.large us-east-1 us-east-1c 15h
ocp4-aws-qt9tx-worker-us-east-1d-64l7m running m4.large us-east-1 us-east-1d 6m14s
- Machineset確認
$ ./oc get machinesets -n openshift-machine-api
NAME DESIRED CURRENT READY AVAILABLE AGE
ocp4-aws-qt9tx-worker-us-east-1a 1 1 1 1 15h
ocp4-aws-qt9tx-worker-us-east-1b 1 1 1 1 15h
ocp4-aws-qt9tx-worker-us-east-1c 1 1 1 1 15h
ocp4-aws-qt9tx-worker-us-east-1d 1 1 1 1 15h
ocp4-aws-qt9tx-worker-us-east-1e 0 0 15h
ocp4-aws-qt9tx-worker-us-east-1f 0 0 15h
- Node確認
$ ./oc get nodes
NAME STATUS ROLES AGE VERSION
ip-10-0-131-148.ec2.internal Ready worker 15h v1.14.6+cebabbf4a
ip-10-0-135-200.ec2.internal Ready master 15h v1.14.6+cebabbf4a
ip-10-0-144-36.ec2.internal Ready master 15h v1.14.6+cebabbf4a
ip-10-0-155-190.ec2.internal Ready worker 15h v1.14.6+cebabbf4a
ip-10-0-162-16.ec2.internal Ready worker 15h v1.14.6+cebabbf4a
ip-10-0-173-76.ec2.internal Ready master 15h v1.14.6+cebabbf4a
ip-10-0-191-196.ec2.internal Ready worker 2m7s v1.14.6+cebabbf4a
- AWSのリソース
一番下のocp4-aws-qt9x-worker-us-east-1d-64l7m
がoc scaleコマンドにより自動で追加されたEC2。
##詳細情報
- workerノードを追加したMachineset(ocp4-aws-qt9tx-worker-us-east-1d)詳細
$ ./oc get machinesets -n openshift-machine-api ocp4-aws-qt9tx-worker-us-east-1d -o yaml
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
creationTimestamp: "2019-12-26T14:27:57Z"
generation: 2
labels:
machine.openshift.io/cluster-api-cluster: ocp4-aws-qt9tx
name: ocp4-aws-qt9tx-worker-us-east-1d
namespace: openshift-machine-api
resourceVersion: "296242"
selfLink: /apis/machine.openshift.io/v1beta1/namespaces/openshift-machine-api/machinesets/ocp4-aws-qt9tx-worker-us-east-1d
uid: e9998df3-27eb-11ea-a1e1-1285990f1d61
spec:
replicas: 1
selector:
matchLabels:
machine.openshift.io/cluster-api-cluster: ocp4-aws-qt9tx
machine.openshift.io/cluster-api-machineset: ocp4-aws-qt9tx-worker-us-east-1d
template:
metadata:
creationTimestamp: null
labels:
machine.openshift.io/cluster-api-cluster: ocp4-aws-qt9tx
machine.openshift.io/cluster-api-machine-role: worker
machine.openshift.io/cluster-api-machine-type: worker
machine.openshift.io/cluster-api-machineset: ocp4-aws-qt9tx-worker-us-east-1d
spec:
metadata:
creationTimestamp: null
providerSpec:
value:
ami:
id: ami-01e7fdcb66157b224
apiVersion: awsproviderconfig.openshift.io/v1beta1
blockDevices:
- ebs:
iops: 0
volumeSize: 120
volumeType: gp2
credentialsSecret:
name: aws-cloud-credentials
deviceIndex: 0
iamInstanceProfile:
id: ocp4-aws-qt9tx-worker-profile
instanceType: m4.large
kind: AWSMachineProviderConfig
metadata:
creationTimestamp: null
placement:
availabilityZone: us-east-1d
region: us-east-1
publicIp: null
securityGroups:
- filters:
- name: tag:Name
values:
- ocp4-aws-qt9tx-worker-sg
subnet:
filters:
- name: tag:Name
values:
- ocp4-aws-qt9tx-private-us-east-1d
tags:
- name: kubernetes.io/cluster/ocp4-aws-qt9tx
value: owned
userDataSecret:
name: worker-user-data
status:
availableReplicas: 1
fullyLabeledReplicas: 1
observedGeneration: 2
readyReplicas: 1
replicas: 1
replicas: 1
となっているのが確認できます。
- 追加されたMachineの詳細情報
$ ./oc get machine -n openshift-machine-api ocp4-aws-qt9tx-worker-us-east-1d-64l7m -o yaml
apiVersion: machine.openshift.io/v1beta1
kind: Machine
metadata:
annotations:
machine.openshift.io/instance-state: running
creationTimestamp: "2019-12-27T06:19:22Z"
finalizers:
- machine.machine.openshift.io
generateName: ocp4-aws-qt9tx-worker-us-east-1d-
generation: 2
labels:
machine.openshift.io/cluster-api-cluster: ocp4-aws-qt9tx
machine.openshift.io/cluster-api-machine-role: worker
machine.openshift.io/cluster-api-machine-type: worker
machine.openshift.io/cluster-api-machineset: ocp4-aws-qt9tx-worker-us-east-1d
machine.openshift.io/instance-type: m4.large
machine.openshift.io/region: us-east-1
machine.openshift.io/zone: us-east-1d
name: ocp4-aws-qt9tx-worker-us-east-1d-64l7m
namespace: openshift-machine-api
ownerReferences:
- apiVersion: machine.openshift.io/v1beta1
blockOwnerDeletion: true
controller: true
kind: MachineSet
name: ocp4-aws-qt9tx-worker-us-east-1d
uid: e9998df3-27eb-11ea-a1e1-1285990f1d61
resourceVersion: "296241"
selfLink: /apis/machine.openshift.io/v1beta1/namespaces/openshift-machine-api/machines/ocp4-aws-qt9tx-worker-us-east-1d-64l7m
uid: d2cb0d58-2870-11ea-acf1-1259770d53d1
spec:
metadata:
creationTimestamp: null
providerID: aws:///us-east-1d/i-06040dc85dd9592fc
providerSpec:
value:
ami:
id: ami-01e7fdcb66157b224
apiVersion: awsproviderconfig.openshift.io/v1beta1
blockDevices:
- ebs:
iops: 0
volumeSize: 120
volumeType: gp2
credentialsSecret:
name: aws-cloud-credentials
deviceIndex: 0
iamInstanceProfile:
id: ocp4-aws-qt9tx-worker-profile
instanceType: m4.large
kind: AWSMachineProviderConfig
metadata:
creationTimestamp: null
placement:
availabilityZone: us-east-1d
region: us-east-1
publicIp: null
securityGroups:
- filters:
- name: tag:Name
values:
- ocp4-aws-qt9tx-worker-sg
subnet:
filters:
- name: tag:Name
values:
- ocp4-aws-qt9tx-private-us-east-1d
tags:
- name: kubernetes.io/cluster/ocp4-aws-qt9tx
value: owned
userDataSecret:
name: worker-user-data
status:
addresses:
- address: 10.0.191.196
type: InternalIP
- address: ""
type: ExternalDNS
- address: ip-10-0-191-196.ec2.internal
type: InternalDNS
lastUpdated: "2019-12-27T06:23:45Z"
nodeRef:
kind: Node
name: ip-10-0-191-196.ec2.internal
uid: 50608a5c-2871-11ea-a4d3-0aa8664615c9
providerStatus:
apiVersion: awsproviderconfig.openshift.io/v1beta1
conditions:
- lastProbeTime: "2019-12-27T06:19:24Z"
lastTransitionTime: "2019-12-27T06:19:24Z"
message: machine successfully created
reason: MachineCreationSucceeded
status: "True"
type: MachineCreation
instanceId: i-06040dc85dd9592fc
instanceState: running
kind: AWSMachineProviderStatus
- ノード詳細
$ ./oc get nodes ip-10-0-191-196.ec2.internal -o yaml
apiVersion: v1
kind: Node
metadata:
annotations:
machine.openshift.io/machine: openshift-machine-api/ocp4-aws-qt9tx-worker-us-east-1d-64l7m
machineconfiguration.openshift.io/currentConfig: rendered-worker-2167ebc4b5181931d0ce49a36db005e9
machineconfiguration.openshift.io/desiredConfig: rendered-worker-2167ebc4b5181931d0ce49a36db005e9
machineconfiguration.openshift.io/state: Done
volumes.kubernetes.io/controller-managed-attach-detach: "true"
creationTimestamp: "2019-12-27T06:22:53Z"
labels:
beta.kubernetes.io/arch: amd64
beta.kubernetes.io/instance-type: m4.large
beta.kubernetes.io/os: linux
failure-domain.beta.kubernetes.io/region: us-east-1
failure-domain.beta.kubernetes.io/zone: us-east-1d
kubernetes.io/arch: amd64
kubernetes.io/hostname: ip-10-0-191-196
kubernetes.io/os: linux
node-role.kubernetes.io/worker: ""
node.openshift.io/os_id: rhcos
name: ip-10-0-191-196.ec2.internal
resourceVersion: "305698"
selfLink: /api/v1/nodes/ip-10-0-191-196.ec2.internal
uid: 50608a5c-2871-11ea-a4d3-0aa8664615c9
spec:
providerID: aws:///us-east-1d/i-06040dc85dd9592fc
status:
addresses:
- address: 10.0.191.196
type: InternalIP
- address: ip-10-0-191-196.ec2.internal
type: Hostname
- address: ip-10-0-191-196.ec2.internal
type: InternalDNS
allocatable:
attachable-volumes-aws-ebs: "39"
cpu: 1500m
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 7547440Ki
pods: "250"
capacity:
attachable-volumes-aws-ebs: "39"
cpu: "2"
hugepages-1Gi: "0"
hugepages-2Mi: "0"
memory: 8161840Ki
pods: "250"
conditions:
- lastHeartbeatTime: "2019-12-27T06:48:46Z"
lastTransitionTime: "2019-12-27T06:22:53Z"
message: kubelet has sufficient memory available
reason: KubeletHasSufficientMemory
status: "False"
type: MemoryPressure
- lastHeartbeatTime: "2019-12-27T06:48:46Z"
lastTransitionTime: "2019-12-27T06:22:53Z"
message: kubelet has no disk pressure
reason: KubeletHasNoDiskPressure
status: "False"
type: DiskPressure
- lastHeartbeatTime: "2019-12-27T06:48:46Z"
lastTransitionTime: "2019-12-27T06:22:53Z"
message: kubelet has sufficient PID available
reason: KubeletHasSufficientPID
status: "False"
type: PIDPressure
- lastHeartbeatTime: "2019-12-27T06:48:46Z"
lastTransitionTime: "2019-12-27T06:23:45Z"
message: kubelet is posting ready status
reason: KubeletReady
status: "True"
type: Ready
daemonEndpoints:
kubeletEndpoint:
Port: 10250
images:
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d5de6bd0ca757e07c58651234ceac857b24422fba98ed0b2912e51ba5fa2d4ee
- <none>:<none>
sizeBytes: 1194804151
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:aa6b4ea74e537e53aa7b72f2d479eafbad60c78e9ea49e3bd5b59720cd46c332
- <none>:<none>
sizeBytes: 405473489
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:0048e6f8730510893370553c1386e34827abcdb4dffaa2d392f1614c63a1c9c7
- <none>:<none>
sizeBytes: 388527143
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1d7fdf7cacbd78bef24f9eb9d355161529ab2d561896de62572d81e55b61d370
- <none>:<none>
sizeBytes: 323890713
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b10e3e94d34509b1bc5d826b0ea33c352eefd37c157b386580f2b87f7d35bf40
- <none>:<none>
sizeBytes: 318297754
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e451a219626274f7556b0ad21ff7bb2ca31be2ddd93f4c7533da49b78c82678d
- <none>:<none>
sizeBytes: 306490354
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c919d6f77371e7d4a5f2d30cdc5d5bf3942c001c1ca82640fe5d1c15f7377cbd
- <none>:<none>
sizeBytes: 305375776
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:a8129d076e19fea59b3f9e8a04fbc0e0cdf53321ef3ab460bdbd1ffbd2230438
- <none>:<none>
sizeBytes: 285110290
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4debe16999ebb9ca954822a6c75ee4461186be6eeb13313bf4ede367264ba5e3
- <none>:<none>
sizeBytes: 282984020
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9be3b6804fbb09d58c352a2110ad42d79c158dc258d7b02244bf209e453a7148
- <none>:<none>
sizeBytes: 255927512
- names:
- quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:a81e1a02bb25f93e6f3d3b9d5ddddb07a0c8025b4e5bd717cc6e4a6f3b8bdea2
- <none>:<none>
sizeBytes: 250722882
nodeInfo:
architecture: amd64
bootID: a4b39f9a-09f4-4889-8fcb-e73105aeb683
containerRuntimeVersion: cri-o://1.14.11-0.24.dev.rhaos4.2.gitc41de67.el8
kernelVersion: 4.18.0-147.0.3.el8_1.x86_64
kubeProxyVersion: v1.14.6+cebabbf4a
kubeletVersion: v1.14.6+cebabbf4a
machineID: 0c252dda944644e1af2d6f5cdec3c6c6
operatingSystem: linux
osImage: Red Hat Enterprise Linux CoreOS 42.81.20191210.1 (Ootpa)
systemUUID: ec22f9cf-8e3c-84a9-5739-1c33d4822876
#まとめ
oc scaleコマンドを使って簡単にworkerノードを追加することができました。
この後は、作成したOpenShiftクラスタを削除した話を別の記事に書きます。
→こちら(AWS上に導入したOpenShiftを削除する)
#参考
マシン管理