내용으로 건너뛰기

AL2023 Amazon EKS 노드에서 사용자 지정 사용자 데이터를 사용하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Elastic Kubernetes Service(Amazon EKS)의 Amazon Linux 2023(AL2023) Amazon Machine Image(AMI)에서 사용자 지정 스크립트, 자체 관리형 노드 또는 사용자 지정 시작 템플릿을 사용합니다. 사용자 지정 사용자 데이터를 제공하고 싶습니다.

간략한 설명

AL2023은 YAML 구성 스키마를 사용하는 nodeadm 노드 초기화 프로세스를 사용합니다. 자체 관리형 노드 그룹 또는 사용자 지정 시작 템플릿이 있는 관리형 노드 그룹의 경우, 새 노드 그룹을 생성할 때 추가 클러스터 메타데이터를 제공해야 합니다. YAML 구성 스키마에 포함해야 하는 최소 메타데이터 요구 사항은 클러스터 이름, API 서버 엔드포인트, 인증 기관 및 서비스 CIDR입니다.

필요한 최소 파라미터를 포함한 구성 예시:

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    name: EKS-CLUSTER-NAME
    apiServerEndpoint: API-SERVER-ENDPOINT
    certificateAuthority: CERTIFICATE-AUTHORITY
    cidr: SERVICE-IPv4-RANGE

자세한 내용은 현재 사용 가능한 Amazon EKS 최적화 Amazon Linux 2023 AMIAL2023 업그레이드 전 섹션을 참조하십시오.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

AL2023에서 실행되는 Amazon EKS AMI를 사용해야 합니다. AMI ID를 보려면 다음 get-parameter AWS CLI 명령을 실행합니다.

aws ssm get-parameter --name /aws/service/eks/optimized-ami/kubernetes-version/ami-type/recommended/image_id \
    --region region-code --query "Parameter.Value" --output text

참고: kubernetes-version지원되는 Amazon EKS 버전으로 바꾸고 region-code를 AWS 리전으로 바꾸십시오. 또한 ami-type을 x86 기반 인스턴스의 경우 amazon-linux-2023/x86_64/standard로, ARM 인스턴스의 경우 amazon-linux-2023/arm64/standard로 바꾸십시오.

사용자 데이터에 필요한 최소 파라미터를 다음 형식으로 추가합니다.

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: ...

--BOUNDARY--

참고: MIME 멀티파트 문서 내에 파라미터를 포함할 수도 있습니다. 자세한 내용은 cloud-init 웹 사이트의 MIME 멀티파트 아카이브를 참조하십시오.

DescribeCluster API를 사용하여 ClusterDetails를 찾고 필요한 최소 파라미터를 볼 수 있습니다. 예를 들어, NodeConfigSpec을 사용할 때 config 및 플래그 kubelet 옵션을 kubelet에 전달할 수 있습니다. 자세한 내용은 Kubernetes 웹 사이트에서 CredentialProviderConfigkubelet을 참조하십시오.

사용자 데이터 구성 예시:

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:
    apiServerEndpoint: API_SERVER_ENDPOINT
    certificateAuthority: CERTIFICATE
    cidr: SERVICE_IPv4_RANGE
    name: CLUSTER_NAME
  kubelet:
    config:
      maxPods: 17
    flags:
    - "--node-labels=key=value"

--BOUNDARY
Content-Type: text/x-shellscript;

#!/bin/bash
  set -o xtrace
  yum install htop -y

--BOUNDARY--

참고: 시작 템플릿에 사용자 데이터를 입력할 때 코드에 공백이나 들여쓰기를 포함하지 마십시오. nodeadm이 시작되지 않아 간격 문제가 있는 경우 노드가 클러스터에 조인할 수 없습니다.

댓글 없음