DEV/AWS

EKS를 이용하여 Kubernetes를 구축해보자

길포 2021. 9. 4. 18:29
728x90

https://raw.githubusercontent.com/237summit/Kubernetes-on-AWS/main/LAB_k8s_install

 

 

 

 

2. Bastion Host(ubuntu Linux)에 AWS CLI 관리툴인 aws
  참고: https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-linux.html
  $ sudo apt-get install -y unzip
  $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  $ unzip awscliv2.zip
  $ sudo ./aws/install
	  You can now run: /usr/local/bin/aws --version
  $ aws --version
  aws-cli/2.2.5 Python/3.8.8 Linux/4.4.0-19041-Microsoft exe/x86_64.ubuntu.20 prompt/off

 

 

 

 

3. Bastion Host(ubuntu Linux)에 EKS설치/운영 툴인  eksctl 설치
  참고: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eksctl.html
  $ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
  $ sudo mv /tmp/eksctl /usr/local/bin
  $ eksctl version
  0.50.0

 

 

 

 

4. Bastion Host(ubuntu Linux)에 k8s 관리툴인 kubectl 설치
  참고: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html
  $ curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/kubectl
  $ chmod +x ./kubectl
  $ mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
  $ echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
  $ kubectl version --short --client
  Client Version: v1.19.6-eks-49a6c0

 

 

사용자 추가

 

 

5. AWS IAM 생성하기 
  링크: aws.amazon.com - root 로그인후 IAM 생성
  사용자이름(User name*) : eks-mng-user
  프로그래밍 방식(Programmatic access) 선택
  기존 정책(Attach existing policies directly) : administrator
  태그 추가(Add tags (optional)) - <SKIP>
  [사용자만들기(Create User)] 버튼 클릭
  
  사용자 생성되면 csv다운로드 -액세스ID/엑세스키

 

 

 

 

 

 

 

 

6. Bastion Host(ubuntu)에서 aws 관리할수 있도록 aws 계정(eks-mng-user) 등록
  $ aws configure
  AWS Access Key ID [None]: AKIASJ...E37V
  AWS Secret Access Key [None]: XLzhAqt...7g
  Default region name [None]: ap-northeast-2
  Default output format [None]: <ENTER>

  ubuntu@seongmi_lee:~$ cd .aws/
  ubuntu@seongmi_lee:~/.aws$ ls
  ubuntu@seongmi_lee:~/.aws$ cat config
  [default]
  region = ap-northeast-2
  ubuntu@seongmi_lee:~/.aws$ cat credentials
  [default]
  aws_access_key_id = AKIASJ...E37V
  aws_secret_access_key = XLzhAq...7g

  잘 연결되는지 확인
  ubuntu@seongmi_lee:~/.aws$ aws sts get-caller-identity
  {
      "UserId": "AID...KS26",
      "Account": "15..75",
      "Arn": "arn:aws:iam::158208647875:user/k8suser-console"
  }

 

 

 

7. WINDOWS 10의 WSL에서 관리시스템을 생성해서 운영중인 경우 아래와 같이 EC2 연결을 위한 키를 생성한다.
 방법1: AWS에서 ssh를 생성하거나 아래의 명령을 실행해 aws--login-key 키를 생성한다. 키 생성시 만들어지는 pem은 잘 저장한후 ssh 접속시 사용한다.
 방법2: aws ec2 create-key-pair --region ap-northeast-2 --key-name test-k8skey --output text > aws--login-key

8. EKS 구성
  참고: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/getting-started-eksctl.html
  EKS요금 시간당 0.01USD  + t3.medium 시간 0.416 *2 USD 입니다.
  [Managed nodes – Linux] 탭 선택후 사용설명확인
 eksctl 명령을 실행해서 Amazon EKS 클러스터를 생성한다.  
  $ eksctl create cluster \
    --name k8s-demo \
    --region ap-northeast-2 \
    --with-oidc \
    --ssh-access \
    --ssh-public-key aws--login-key \
    --nodes 3 \
    --node-type t3.medium \
    --node-volume-size=20 \
    --managed