EKS 업그레이드(v1.33) 이후, 노드 조인이 안되요?

EKS를 v1.32에서 v1.33으로 업그레이드하고, 노드 AMI도 AL2에서 AL2023으로 전환했습니다. 변경 이후 노드가 노드 그룹에 조인하지 않습니다. 커스텀 user data를 사용하고 있으며 AL2023 문법으로 이미 변환했습니다. 현재 user_data는 다음과 같습니다.


enter code here
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==BOUNDARY=="

--==BOUNDARY==
Content-Type: application/node.eks.aws

 ---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
cluster:
  name: my-cluster
  apiServerEndpoint: https://example.com
  certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk=
  cidr: 10.100.0.0/16
--BOUNDARY
 Content-Type: text/x-shellscript; charset="us-ascii"
 #!/bin/bash

AL2023 전환 후 커스텀 user data를 업데이트했는데 노드가 조인되지 않는데, 신기하게도(?) user data를 아예 제거하면 조인됩니다. 빠뜨린 설정이 무엇인지 조언 부탁드립니다.

생략된 부분이 존재할 수 있으나 Cloud-Init 에서 사용되는 MIME boundary 불일치가 원인이 아닐까 싶습니다.

boundary를 “==BOUNDARY==” 이렇게 설정하셨으면 아래 “–BOUNDARY” 해당 내용도 “==BOUNDARY==” 이렇게 사용되어야합니다

6 Likes

공유해주신 링크랑 같이 MIME 부분도 같이 확인해볼께요. 감사합니다.

2 Likes

아시다시피 AL2023 부터 사용자 데이터 템플릿(MIME 멀티파트 형식)이 기본값으로 사용하고 있습니다.
User Data에서 저도 동일한 경험을 했구요. 결론적으로 “MIME boundary” 관련 문제일 확률이 높습니다. (깃헙 이슈에 보면 al2023에서 eks node 조인이 되지 않는 이슈들이 다수 존재)

@omuesi_on 님이 운영하는 EKS 클러스터 구성이 어떻게 되어 있을까요? Terraform에서 공식 EKS 모듈을 활용하고 EKS 매니지드 노드 그룹인 상황 인가요?
→ 위에 전제인 경우 user data가 없을 경우 정상적으로 노드 조인에 성공했다고 하셨는데, “enable_bootstrap_user_data” 입력 값이 true인 경우에는 EKS 서브 모듈(node group)내에 존재하는 번들 user_data 값으로 실행되어서 정상 실행되는 경우일 것 같아요. terraform-aws-eks/templates/al2023_user_data.tpl at master · terraform-aws-modules/terraform-aws-eks · GitHub
→ 만약 커스텀 AMI를 사용해서 구성하는 경우라면, User_data 구성을 추가하고 번들로 제공하는 user_data가 실행되지 않도록 “enable_bootstrap_user_data=false” launch template 경로를 포함해서 구성해야 합니다.

참고) nodeadm - 사용자 데이터(UserData) 플레이그라운드에서 MIME 유효성을 테스트 해볼 수 있습니다.

1 Like

@sepiros62 님! 요즘 정신없어서… 답장이 늦어졌어요. EKS 커스텀의 MIME boundary와 enable_bootstrap_user_data=false 경로에 대한 문제가 원인인것으로 보여요. 관련 내용 수정 변경 하고 알려주신 MIME 유효성을 테스트하니 잘 돌아가요. 완전 감사!!!

2 Likes