AEWS 1 WEEK

Hi yena·2023년 4월 26일

AEWS

목록 보기
1/8

Amzaon EKS 설치 및 기본 사용


EKS란?

Amazon Elastic Kubernetes Service는 자체 Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS 환경 내에서 Kubernetes 실행에 사용할 수 있는 관리형 서비스 입니다.
여러 AWS 서비스와 통합 가능하여 편리하다는 특징을 가지고 있습니다.(컨테이너 이미지 저장소 Amazon ECR, 로드 분산을 위한 ELB, 인증 IAM, 격리를 위한 Amazon VPC)


EKS 아키텍처

  • EKS 컨트롤플레인

    aws 매니지드 영역은 aws가 관리해주기 때문에 pod 조회도 되지 않음!

  • EKS 데이터플레인

    !! customer vpc 워커노드에 eni는 컨트롤 플레인을 사용하기 위한 통로라고 보면 됨!

  • Managed node groups (관리형 노드 그룹) : 최신 EKS Optimized AMI를 사용 AWS에서 AMI 관리, Capacity(On-Demand, Spot)
  • Self-managed nodes : Custom AMI를 사용, ASG 직접 관리, OS 기본구성/패치를 고객이 직접 관리
  • AWS Fargate (서버리스) : 고객은 별도의 EC2관리할 필요 없이, AWS Fargate 환경에서 제공하는 Micro VM을 이용하여 PodVM 할당
    pod 가 뜨면 커널 공유 아님! OS 수준의 격리! 보안팀이 좋아함

📎 작업용 EC2 를 bastion 처럼 활용하여 EKS 를 배포 할 예정

  1. eksctl create 를 --dry-run 명령어로 실제로 배포하진 않고 형상 코드 내용 출력

  2. EKS 배포 실습
    2-1. EC2 정보 확인

2-2. 배포


퍼블릭 도메인은 아무나 호출할 수 있다(보안에 취약😂)

배포완료!


노드 정보 확인

  1. POD IP 확인

    여기 보면 pod ip가 node의 ip와 같은것이 있는것을 확인 가능하다 왜그럴까?
    -> 컨테이너 네트워크 모드 찾아보기

  2. 네트워크 인터페이스 소유자 관계정보 확인

    이 사진에 잘 보면 소유자(나)와 요청자ID가 다름
    요청자 ID의 ENI 소유자가 다름
    ENI는 내 인스턴스에(워커노드) 붙어있는데, 이 ENI의 소유자의 인스턴스 ID가 나와 다른 어카운트(AWS 매니지드)

컨트롤플레인이 노드쪽으로 통신을 시작했을 때 flow 파악하기


POD 배포

  1. 모니터링

  2. 슈퍼마리오 디플로이먼트 배포


오..신기


관리형 노드 그룹 늘리기

  1. eksctl scale nodegroup --cluster $CLUSTER_NAME --name $CLUSTER_NAME-nodegroup --nodes 3 --nodes-min 3 --nodes-max 6
    (증가)
  2. aws eks update-nodegroup-config --cluster-name $CLUSTER_NAME --nodegroup-name $CLUSTER_NAME-nodegroup --scaling-config minSize=2,maxSize=2,desiredSize=2
    (감소)
  3. 모니터링
    while true; do aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIPAdd:PublicIpAddress,PrivateIPAdd:PrivateIpAddress,InstanceName:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --filters Name=instance-state-name,Values=running --output text ; echo "------------------------------" ; sleep 1; done

0개의 댓글