갬미의 성장일기

Day 42 - GKE, EKS | awscli, ekctl 설치 본문

Cloud/Cloud 공부일기

Day 42 - GKE, EKS | awscli, ekctl 설치

갬미 2022. 3. 10. 22:59

오늘 배운 내용

- eks 클러스터 만들기

- eks, gke 차이?

 

GCP에서 cli 사용하기 -> gcp cli

 

AWS에서 cli 사용하기 -> aws cli 

eksctl -> k8s cluster 

 

awscli

awscli는AWS 명령줄 인터페이스(CLI)으로 AWS 서비스를 관리하는 통합 도구이다. awscli를 다운받아 여러 AWS 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할 수 있습니다.

AWS 서비스를 cli환경에서 사용하기 위해 필요한 tool이다 

👇 AWS 공식 CLI 문서보기

 

AWS 명령줄 인터페이스

aws-shell은 명령줄 셸 프로그램으로서, AWS 명령줄 인터페이스를 사용하는 새로운 사용자와 고급 사용자 모두에게 도움이 되는 편의 기능 및 생산성 기능을 제공합니다. 주요 기능은 다음과 같습

aws.amazon.com

설치 -> https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

 

의 최신 버전 설치 또는 업데이트AWS CLI - AWS Command Line Interface

설치 관리자의 아무 위치에서나 Cmd+L을 눌러 설치에 대한 디버그 로그를 볼 수 있습니다. 이렇게 하면 로그를 필터링하고 저장할 수 있는 로그 창이 열립니다. 로그 파일도 /var/log/install.log에 자

docs.aws.amazon.com

설치 후 계정인증 (구성 설정 지정 및 보기)

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-files.html

 

구성 및 자격 증명 파일 설정 - AWS Command Line Interface

AWS CLI는 config 파일에서 자격 증명을 읽을 수 있으므로 모든 프로파일 설정을 단일 파일에 보관할 수 있습니다. 동일한 이름을 공유하는 프로파일에 대한 자격 증명이 두 파일 모두에 있는 경우

 

eksctl

eksctl은 weaveworks에서 개발한 Amazon EKS CLI 툴로, EKS 클러스터를 손쉽게 구축할 수 있게 돕는다

eksctl 툴 하나로 EKS 노드가 생성될 VPC와 관련한 subnet, Security Group, AutoScaling 설정까지 완벽하게 EKS 클러스터를 구축할 수 있다.

설치 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eksctl.html

choco 패키지 관리 tool이 깔려있지 않다면 설치 후 eksctl을 설치한다 (power shell 관리자모드에서 설치)

# choco 설치
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
 

eksctl 설치 - Amazon EKS

GitTag 버전은 0.84.0 이상이어야 합니다. 그렇지 않은 경우 터미널 출력에서 설치 또는 업그레이드 오류가 있는지 확인하거나, 1단계의 주소를 https://github.com/weaveworks/eksctl/releases/download/v0.84.0/eksctl_

docs.aws.amazon.com

 

gcp cluster가 있는 곳에 aws cluster 만들기 (가능)

eksctl.exe create cluster --name cluster name --region region --with-oidc --ssh-public-key gymin-key --nodes 3 --node-type t3.medium --node-volume-size=20 --managed

꺽쇠 위치에 따라 kubectl이 먹는 클러스터가 달라짐

 

eks와 gke가 다른가?

벤더에 따른 차이는 있지만 큰 차이는 없다

yaml파일을 만들고 apply 하면 gke이든 eks든 다 된다

test.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-tomcat
spec:
  containers:
  - name: nginx
    image: gymin97/msa:v3
    ports:
      - containerPort: 80
  - name: tomcat
    image: tomcat
    ports:
      - containerPort: 8080

똑같은 형식의 yaml을 사용하기 때문에 편한 tool을 사용하면 된다

 

AWS - work nodes = 노드 구릅

GCP - work node = 노드 풀

 

cluster를 바꾸고 싶을때 ..( eks -> gke / gke -> eks )

kubectl config use-context 클러스터 명

 

+추가로 위의 yml파일을 보면 한 pod안에 두개의 컨테이너가 있다 

pod안의 한 컨테이너에서 다른 컨테이너 내용을 확인하고 싶다면 포트(localhost:port)를 접근하면 된다

 

++ 쿠버네티스 치트시트 (아직은 아무것도 못알아 먹겠지만,, 언젠간 도움이 되겠지? ㅜ)

https://kubernetes.io/ko/docs/reference/kubectl/cheatsheet/

 

kubectl 치트 시트

이 페이지는 일반적으로 사용하는 kubectl 커맨드와 플래그에 대한 목록을 포함한다. Kubectl 자동 완성 BASH source <(kubectl completion bash) # bash-completion 패키지를 먼저 설치한 후, bash의 자동 완성을 현재

kubernetes.io

 

오늘의 회고

  • 먼가 많이한것 같은데 정리하니까 얼마 없네,, 모지?
  • eks, gke 이름이 자꾸 헷갈린다 
  • 적어도 관리형 쿠버네티스 툴은 하나를 제대로 알면 다른 한쪽의 내용을 이해하는데 큰 도움이 될 것 같다!
  • 도커 과제가 공개 되어서 하는중이다 ㅎㅎ 한번 쭉 훑을 수 있는 기회가 되어 좋은것같다  
Comments