Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

쟝이의 세상

AWS EKS 사용 - 클러스터와 노드 그룹 생성, IAM 정책 설정 본문

수업내용

AWS EKS 사용 - 클러스터와 노드 그룹 생성, IAM 정책 설정

zyangee 2024. 10. 23. 15:49

📌 클러스터 생성 및 역할 생성

✔️ 클러스터 생성

EKS > 클러스터 > EKS 클러스터 생성

입력 구분 입력 내용
1단계 - 클러스터 구성 이름 k8s_cluster
클러스터 IAM 역할 EKSClusterRole
Kubernetes 버전 1.31
2단계 - 네트워킹 지정 VPC vec-prd-vpc
서브넷 PUB-2A와 PUB-2C
보안 그룹 PUB-SG-2A와 PUB-SG-2C
4단계 - 추가 기능 선택 ☑️ Amazon VPC CNI
☑️ kube-proxy
☑️ CoreDNS
☑️ Amazon EKS Pod Identity 에이전트

👇🏻 IAM 역할 추가 (EKSClusterRole)

더보기

클러스터 생성하는 부분에서 "IAM 콘솔에서 역할 생성" <클릭>

입력 구분 입력 내용
1단계 - 신뢰할 수 있는 엔터티 선택 신뢰할 수 있는 엔터티 유형 AWS 서비스
서비스 또는 사용 사례 EKS
사용 사례 ☑️ EKS - Cluster
3단계 - 이름 지정, 검토 및 생성 역할 이름 EKSClusterRole
설명 Allows access to other AWS service resources that are required to operate clusters managed by EKS

 생성된 화면

상태가 활성화 될 때까지 10분 정도 시간이 소요됨

 

📌 노드 추가 및 역할 생성

✔️ 노드 추가

EKS > 클러스터 > k8s_cluster(위에서 생성한 클러스터) > 컴퓨팅 > 노드 그룹 > 노드 그룹 추가

입력 구분 입력 내용
1단계 - 노드 그룹 구성 이름 k8s-cluster-workernodes
노드IAM 역할 EKSWorkerNodeRole
2단계 - 컴퓨팅 및 조정 구성 설정 디스크 크기 8GB
원하는 크기 2노드
최소 크기 2노드
최대 크기 4노드
3단계 - 네트워킹 지정 서브넷 subnet

👇🏻 EKSWorkerNodeRole 역할 추가

더보기

노드 그룹을 추가하는 화면에서 "IAM 콘솔에서 역할 생성" <클릭>

입력 구분 입력 내용
1단계 - 신뢰할 수 있는 엔터티 선택 신뢰할 수 있는 엔터티 유형 AWS 서비스
서비스 또는 사용 사례 EC2
사용 사례 ☑️ EKS - Cluster
2단계 - 권한 추가 권한 정책 ☑️ EKS_CNI_Policy
☑️ EKSWorkerNodePolicy
☑️ EC2ContainerRegisterReadOnly
3단계 - 이름 지정, 검토 및 생성  역할 이름 EKSWorkerNodeRole
설명 Allows access to other AWS service resources that are required to operate clusters managed by EKS

⚠️ 오류 생성 → 노드 그룹 삭제하기

👇🏻 오류 잡은 후에 다시 노드 그룹 추가해주기

더보기

VPC > 서브넷 > PUB-2A와 PUB-2C > 서브넷 설정 편집

자동 할당 IP 설정 - ☑️ 퍼블릭 IPv4 주소 자동 할당 활성화

→ 상태가 활성되는 데까지 10분 정도 소요됨

 

✔️ 인스턴스 확인

→ 2개의 인스턴스가 생성됨을 확인

 

📌 정책 생성 및 연결

✔️ 정책 생성: eks_DescribeCluster

입력 구분 입력 내용
권한 지정 정책 편집기 <JSON> {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [ "eks:DescribeCluster",
            "eks:ListClusters", "eks:ListNodegroups",
            "eks:DescribeNodegroup", "eks:ListFargateProfiles",
            "eks:DescribeFargateProfile"
             ],
     "Resource": "*"
       }
   ]
}
검토 및 생성 정책 이름 eks_DescribeCluster

👇🏻 엔터티 연결해주기

더보기

IAM > 정책 > eks_DescribeCluster > 연결된 엔터티 > 연결

☑️ s3fullaccess <정책연결>

 

✔️ 정책 생성: EKS_FullAccess

입력 구분 입력 내용
권한 지정 정책 편집기 <JSON> {
   "Version": "2012-10-17",
   "Statement": [
      {
        "Effect": "Allow",
        "Action": [
               "eks:*",
               "ec2:DescribeInstances",
               "ec2:DescribeVpcs",
               "ec2:DescribeSubnets",
               "ec2:DescribeSecurityGroups",
               "ec2:DescribeKeyPairs",
               "iam:ListRoles",
               "iam:ListInstanceProfiles",
               "iam:ListPolicies",
               "iam:ListPolicyVersions",
               "iam:ListAttachedRolePolicies",
               "iam:ListAttachedUserPolicies",
               "iam:GetPolicy",
               "iam:GetPolicyVersion",
               "iam:GetRole",
               "iam:GetUser",
               "iam:ListAttachedGroupPolicies",
               "iam:ListGroupPolicies",
               "iam:ListUsers",
               "iam:ListUserPolicies"
           ],
         "Resource": "*"
      }
   ]
}
검토 및 생성 정책 이름 EKS_FullAccess

 

✔️ 사용자에 권한 정책 연결

입력 구분 입력 내용
권한 추가 권한 옵션 직접 정책 연결
권한 정책 ☑️ AmazonEC2ContainerRegistryReadOnly
☑️ AmazonEKSClusterPolicy
☑️ AmazonEKSServicePolicy
☑️ AmazonEKSWorkerNodePolicy
☑️ AmazonS3ReadOnlyAccess
☑️ AmazonSSMFullAccess
☑️ AmazonSSMManagedInstanceCore
☑️ ecr_GetAuthorization (생성했던 정책)
☑️ eks_DescribeCluster (위에서 생성한 정책)
☑️ EKS_FullAccess (위에서 생성한 정책)

👇🏻 완료 화면

 

📌 SSH 접속

✔️ PUB-2A (ec2-user로 접속)

  • root 사용자로 전환하여 사용자 생성 (jihyang)
$ su -

adduser jihyang

 

  • SSH 키 저장용 디렉토리 생성
mkdir /home/jihyang/.ssh

 

  • SSH 공개 키 확인
cat ~/.ssh/authorized_keys

 

  • 공개 키를 jihyang 계정의 authorized_keys에 추가
echo "ssh-rsa [~] zyangee" | tee -a /home/jihyang/.ssh/authorized_keys

→ 이 키를 통해 jihyang 사용자가 비밀번호 없이 SSH 접속할 수 있도록 공개 키 인증을 설정하는 과정

 

  • 소유권 변경 및 디렉터리, 파일 권한 설정
chown -R jihyang:jihyang /home/jihyang/.ssh
chmod 700 /home/jihyang/.ssh
chmod 600 /home/jihyang/.ssh/authorized_keys

 

 

✔️ PUB-2A (jihyang으로 접속) 

→ kubelet, kubeadm 다운로드

  • AWS CLI / eksctl / kubectl 버전 확인
$ aws --version
$ eksctl version
$ kubectl version --short --client

 

📌 kubelet 설정

https://zyangee.tistory.com/53

 

EKS 클러스터 생성 - kubelet 설정하기

쟝이의 세상 EKS 클러스터 생성 - kubelet 설정하기 본문 수업내용 EKS 클러스터 생성 - kubelet 설정하기 zyangee 2024. 10. 24. 10:02

zyangee.tistory.com