내용으로 건너뛰기

Amazon EKS에서 Bottlerocket AMI 기반 관리형 노드 그룹의 사용자 데이터를 쓸 때 발생하는 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS)에 최적화된 Bottlerocket Amazon Machine Image(AMI)를 사용하여 사용자 데이터를 구성하고 싶습니다. 시작 템플릿의 사용자 데이터를 쓰려고 하면 ‘Instances failed to join the kubernetes cluster.’ 오류가 발생합니다.

해결 방법

시작 템플릿에 잘못된 사용자 데이터를 포함하면 다음과 같은 오류 메시지가 표시될 수 있습니다.

"Instances failed to join the kubernetes cluster."

Bottlerocket AMI는 노드가 클러스터에 조인할 수 있도록 사용자 데이터를 Amazon EKS 사용자 데이터와 병합합니다. 사용자 데이터에 포함하는 구성은 Amazon EKS에서 구성하는 설정보다 우선합니다. 지원되는 설정에 대한 자세한 내용은 Bottlerocket 웹 사이트의 설정 참조를 참조하십시오.

Bottlerocket AMI 기반 관리형 노드 그룹과 함께 사용하는 시작 템플릿의 Amazon Elastic Compute Cloud(Amazon EC2) 사용자 데이터는 TOML 형식이어야 합니다. 자세한 내용은 GitHub 웹 사이트의 TOML을 참조하십시오. Amazon EKS는 모든 유효한 TOML 형식을 지원하지는 않습니다. 자세한 내용은 Amazon EC2 사용자 데이터를 참조하십시오.

EC2 사용자 데이터에는 다음과 같은 Kubernetes 설정도 포함되어야 합니다.

  • settings.kubernetes.cluster-certificate
  • settings.kubernetes.api-server
  • settings.kubernetes.cluster-name

시작 템플릿의 사용자 데이터 섹션에 위 설정으로 다음 예제 사용자 데이터 구성을 추가합니다.

[settings.kubernetes]
api-server = "https://abc.def.us-east-1.eks.amazonaws.com"
cluster-certificate = "TkQgQ0VSVElGSUNBVEUtLS0tLQo="
cluster-name = "eks-dev"

참고: us-east-1을 Amazon EKS 클러스터를 배포하는 AWS 리전으로 바꾸십시오.

node-labelsnode-taints 설정이 포함된 사용자 데이터의 예:

[settings.kubernetes]
api-server = "https://abc.def.us-east-1.eks.amazonaws.com"
cluster-certificate = "TkQgQ0VSVElGSUNBVEUtLS0tLQo="
cluster-name = "eks-dev"

[settings.kubernetes.node-labels]
"label1" = "foo"
"label2" = "bar"

[settings.kubernetes.node-taints]
"dedicated" = "airflow:NoSchedule"

참고: cluster-name을 클러스터 이름으로, us-east-1을 리전으로 바꾸십시오.

다음 eksctl 명령을 실행하여 클러스터에 대한 기본 userdata.toml 파일을 생성할 수도 있습니다.

~ eksctl get cluster --region us-east-1 --name cluster-name -o json | jq --raw-output '.[] | "[settings.kubernetes]\napi-server = \"" + .Endpoint + "\"\ncluster-certificate =\"" + .CertificateAuthority.Data + "\"\ncluster-name = " + .Name'

참고: cluster-name을 클러스터 이름으로, us-east-1을 리전으로 바꾸십시오. 명령 출력에는 미리 작성된 사용자 데이터 예제가 포함됩니다.

관련 정보

GitHub 웹 사이트의 Bottlerocket 파일 디렉터리

AWS 공식업데이트됨 4달 전