EKS 배포 - 관리 콘솔

SummerToday·2024년 8월 19일
0

Amazon EKS 기본 강의

목록 보기
4/6
post-thumbnail
post-custom-banner

관리콘솔을 통해 EKS 배포하기

  • 관리 콘솔에서 EKS 클러스터 생성시 Amazon Mangaged VPC에 Control Plane이 구성되고, EC2나 오토 스케일링이나 ELB 등이 자동으로 구성된다.

  • EKS는 AWS 자원을 구성하기 위한 권한이 필요하게 된다. -> IAM 역할을 생성하는 작업이 선행되어 Amazon EKS에 자격 증명을 수행한 후 생성 작업이 진행된다.

  • EKS 관리용 인스턴스인 myeks-host에 생성된 EKS 클러스터 정보를 업데이트 해야한다. -> EKS 클러스터의 보안 정보가 있어야 kubectl을 통해 명령을 내릴 수 있기 때문이다.

  • 또한 관리형 노드 그룹을 구성함에 있어서 다양한 AWS 자원을 동적으로 구성하기 위해 IAM 역할이 필요하다. -> 마찬가지로 IAM 역할을 생성하는 작업이 선행되어 Amazon EKS에 자격 증명을 수행한 후 생성 작업이 진행된다.


EKS 클러스터 IAM 역할 생성

  • IAM 역할을 생성한다.

  • 신뢰 정책의 STS는 보안 토큰을 통해 AWS 외부 자격을 증명하는 것으로 AssumRole은 AWS 자원에 접근할 수 있는 자격 증명을 의미한다.

  • 나머지는 기본 설정으로 역할을 생성해준다.


EKS 클러스터 생성

  • 나머지는 기본 값으로 설정하여 생성해준다.

EKS 클러스터 구성

출처: 인프런, Ongja_CloudNet@, ⌜CloudNet@와 함께하는 Amazon EKS 기본 강의⌟

  • AWS EKS는 기본적으로 클러스터의 고가용성과 안정성을 보장하기 위해 컨트롤 플레인(제어 플레인) 컴포넌트들을 여러 가용 영역(AZ)에 분산 배치하게 된다.

  • 컨트롤 플레인은 AWS Managed VPC에 할당되어 아마존이 관리하게 된다.

  • 클러스터 엔드포인트 엑세스를 퍼블릭으로 설정하여 인터넷 게이트웨이도 같이 구성된다.

  • 2개의 가용 영역에서 Control Plane 자원인 API 서버, 컨트롤러, 스케쥴러가 각각 생성되고 또 다른 서브넷이 etcd가 생성된다.

  • 부하 분산을 위해 ELB가 구성되고, 오토 스케일링 서비스도 구성된다.


EKS 클러스터 정보 kubeconfig 등록

EKS 관리용 인스턴스인 myeks-host에 생성된 EKS 클러스터 정보를 업데이트 해준다.

# EKS 클러스터 정보 업데이트
aws eks update-kubeconfig --region $AWS_DEFAULT_REGION --name $CLUSTER_NAME

# kubeconfig 정보 확인
cat ~/.kube/config | yh

# kube_ps1 비활성화
kubeoff

# 생성한 Kubernetes 서비스 확인
kubectl get svc

Amazon EKS 노드 생성

EKS 관리형 노드 그룹이 AWS 자원을 관리하기 위해 IAM 역할이 필요하다. EKS 노드 IAM 역할을 awscli를 통해 생성해보자.

EKS 노드 IAM Role의 신뢰 엔티티 설정

# EKS 노드 IAM 역할의 신뢰 대상 지정 파일 생성
cat <<EOT > node-role-trust-policy.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
EOT

EKS 노드 IAM Role 생성

# EKS 노드 IAM 역할 생성 (eksNodeRole)
aws iam create-role \
  --role-name eksNodeRole \
  --assume-role-policy-document file://"node-role-trust-policy.json"

# EKS 노드 IAM 역할에 정책 연결
aws iam attach-role-policy \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \
  --role-name eksNodeRole

aws iam attach-role-policy \
  --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \
  --role-name eksNodeRole

aws iam attach-role-policy \
  --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \
  --role-name eksNodeRole

EKS 노드 IAM Role 확인

# EKS 노드 IAM 역할 확인
aws iam get-role --role-name eksNodeRole | jq

# EKS 노드 IAM 역할에 연결된 정책 확인
aws iam list-attached-role-policies --role-name eksNodeRole | jq

EKS 관리형 노드 그룹 생성

  • 나머지는 기본 설정으로 진행한다.

Amazon EKS 노드 그룹 구성도

출처: 인프런, Ongja_CloudNet@, ⌜CloudNet@와 함께하는 Amazon EKS 기본 강의⌟

  • 노드 그룹이 사용자 VPC인 myeks VPC에 생성된다.

  • 생성되는 노드의 인스턴스는 오토 스케일 그룹에 의해 자동으로 구성하고 유지된다.

  • API 서버와 노드 간의 통신을 위한 EKS owend ENI가 구성된다.


Amazon EKS 클러스터 정보

  • EKS 클러스터 생성 시 엔드포인트 엑세스를 퍼블릭으로 설정을 했기에, API 서버 엔드포인트 주소만 안다면 누구나 접속할 수 있다.

  • 엔드포인트에 접속 시, 위와 같이 API 서버가 정상 응답하는 것을 확인할 수 있다. 다만, 권한이 없어 응답이 위와 같이 에러 메시지가 표기된다.




해당 글은 다음 강의의 내용을 참고한 글임을 밝힙니다. 자세한 내용은 다음 강의에서 확인해볼 수 있습니다.
인프런, Ongja_CloudNet@, ⌜CloudNet@와 함께하는 Amazon EKS 기본 강의⌟
profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글