43.3. 起動設定および自動スケーリンググループの作成
クラスターの自動スケーラーをデプロイする前に、Primed イメージを参照する Amazon Web Services (AWS) 起動設定および自動スケーリンググループを作成する必要があります。新規ノードが起動時に既存クラスターに自動的に参加するように起動設定を設定する必要があります。
前提条件
- AWS に OpenShift Container Platform クラスターをインストールします。
- Primed イメージを作成します。
-
EFK スタックをクラスターにデプロイしている場合は、ノードラベルを
logging-infra-fluentd=true
に設定します。
手順
bootstrap.kubeconfig ファイルをマスターノードから生成し、これを作成します。
$ ssh master "sudo oc serviceaccounts create-kubeconfig -n openshift-infra node-bootstrapper" > ~/bootstrap.kubeconfig
user-data.txt cloud-init ファイルを bootstrap.kubeconfig ファイルから作成します。
$ cat <<EOF > user-data.txt #cloud-config write_files: - path: /root/openshift_bootstrap/openshift_settings.yaml owner: 'root:root' permissions: '0640' content: | openshift_node_config_name: node-config-compute - path: /etc/origin/node/bootstrap.kubeconfig owner: 'root:root' permissions: '0640' encoding: b64 content: | $(base64 ~/bootstrap.kubeconfig | sed '2,$s/^/ /') runcmd: - [ ansible-playbook, /root/openshift_bootstrap/bootstrap.yml] - [ systemctl, restart, systemd-hostnamed] - [ systemctl, restart, NetworkManager] - [ systemctl, enable, atomic-openshift-node] - [ systemctl, start, atomic-openshift-node] EOF
- 起動設定テンプレートを AWS S3 バケットにアップロードします。
AWS CLI を使用して起動設定を作成します。
$ aws autoscaling create-launch-configuration \ --launch-configuration-name mycluster-LC \ 1 --region us-east-1 \ 2 --image-id ami-987654321 \ 3 --instance-type m4.large \ 4 --security-groups sg-12345678 \ 5 --template-url https://s3-.amazonaws.com/.../yourtemplate.json \ 6 --key-name production-key \ 7
注記テンプレートをエンコードする前に 16 KB 未満の場合は、AWS CLI を使用し、
--template-url
と--user-data
を置き換えてテンプレートを指定できます。AWS CLI を使用して自動スケーリンググループを作成します。
$ aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name mycluster-ASG \ 1 --launch-configuration-name mycluster-LC \ 2 --min-size 1 \ 3 --max-size 6 \ 4 --vpc-zone-identifier subnet-12345678 \ 5 --tags ResourceId=mycluster-ASG,ResourceType=auto-scaling-group,Key=Name,Value=mycluster-ASG-node,PropagateAtLaunch=true ResourceId=mycluster-ASG,ResourceType=auto-scaling-group,Key=kubernetes.io/cluster/mycluster,Value=true,PropagateAtLaunch=true ResourceId=mycluster-ASG,ResourceType=auto-scaling-group,Key=k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/compute,Value=true,PropagateAtLaunch=true 6