43.3. 시작 구성 및 자동 확장 그룹 생성
클러스터 자동 확장기를 배포하기 전에 기본 이미지를 참조하는 AWS(Amazon Web Services) 시작 구성 및 자동 확장 그룹을 생성해야 합니다. 새 노드가 시작될 때 기존 클러스터에 자동으로 참여하도록 시작 구성을 구성해야 합니다.
사전 요구 사항
- AWS에 OpenShift Container Platform 클러스터를 설치합니다.
- 기본 이미지를 만듭니다.
-
클러스터에 EFK 스택을 배포한 경우 노드 레이블을
logging-infra-fluentd=true
로 설정합니다.
절차
마스터 노드에서 부트스트랩.kubeconfig 파일을 생성합니다.
$ ssh master "sudo oc serviceaccounts create-kubeconfig -n openshift-infra node-bootstrapper" > ~/bootstrap.kubeconfig
bootstrap .kubeconfig 파일에서 user-data.txt cloud-init 파일을 생성합니다.
$ 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
참고템플릿을 인코딩하기 전에 16KB 미만인 경우
--template-url을
로 대체하여 AWS CLI를 사용하여 제공할 수 있습니다.--user-
dataAWS 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