쿠버네티스

kops를 이용해 AWS에 쿠버네티스 설치

GTC 2021. 4. 28. 10:42

kops는 클라우드 환경에서 쿠버네티스를 설치하도록 도와주는 도구이며 설치하는 방법은 다음 2가지 방법이 있다

- VMware에 Ubuntu를 설치하고 원격으로 AWS에서 K8s를 실행하는 방법(이번 실습 방법)

- AWS에 Amazon Linux2를 설치하고 AWS에 K8s를 실행하는 방법

 

 

kops 실행 파일 내려받기

# wget -O kops https://github.com/kubernetes/kops/releases/download/v1.18.0/kops-linux-amd64

 

 

다운로드 받은 파일에 실행권한 추가

# chmod +x ./kops

 

 

/usr/local/bin은 스스로 설치한 명령어를 사용할 수 있도록 하는 장소이다

(Linux 저장소에 있는 것 이외의 것을 설치했을 때)

# mv ./kops /usr/local/bin 

 

 

쿠버네티스 명령줄(kubectl) 내려받기

# wget -O kubectl http://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl

 

# chmod +x kubectl

 

# mv kubectl /usr/local/bin

 

<AWS CLI 설치하기>

현재 버전의 AWS CLI 다운로드

# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

 

 

압축 해제

# unzip awscliv2.zip

 

 

설치 프로그램 실행

# ./aws/install -i /usr/local/aws-cli -b /usr/local/bin

 

 

설치 확인

# aws --version

 

 

<AWS CLI 설정하기>

AWS CLI 설치가 완료되었으면 프로그래밍 방식으로 액세스하는 사용자를 생성한다

 

 

"Administrator Access" 정책을 연결한다 

 

 

생성한 사용자의 [보안 자격 증명]에 들어가서 액세스 키를 생성한다

 

 

cmd창을 켜고 "aws configure"를 입력하고 액세스 키, 비밀키, 리전, 데이터 출력 포맷(JSON)을 차례대로 입력한다  

 

 

액세스 키/비밀 키가 잘 설정되었는지 확인하기 위해 EC2 인스턴스의 목록을 나열하는 아래의 명령어를 사용해 테스트한다

# aws ec2 describe-instances

 

 

쿠버네티스 설정 정보를 저장할 S3 생성

# aws s3api create-bucket --bucket <버킷명> --create-bucket-configuration LocationConstraint=ap-northeast-2
# aws s3api put-bucket-versioning --bucket <버킷명> --versioning-configuration Status=Enabled

 

 

쿠버네티스 클러스터 이름과 S3 버킷 이름을 셸 환경변수로 설정

# export NAME=mycluster.k8s.local
# export KOPS_STATE_STORE=s3://<버킷명>

 

 

쿠버네티스에 설치할 EC2 인스턴스에 배포될 SSH키 생성

# ssh-keygen -t rsa -N "" -f ./id_rsa

 

 

클러스터 설정 파일 생성(리전, VPC, SSH키 등)

# kops create cluster --zones ap-northeast-2a --networking calico --ssh-public-key ./id_rsa.pub $NAME

 

 

쿠버네티스 클러스터 옵션 변경

워커 노드의 인스턴스 타입 및 워커노드 개수 수정

# kops edit ig nodes --name $NAME

 

 

마스터 노드 설정 변경

# kops edit ig master-ap-northeast-2a --name $NAME

 

 

쿠버네티스 클러스터 생성

kops가 자동으로 서버 인스턴스, 네트워크 리소스 등을 생성해 쿠버네티스를 설치한다

# kops update cluster --yes $NAME

 

 

클러스터 생성 진행 상황 확인

# kops validate cluster

 

 

클러스터 삭제

kops로 생성한 쿠버네티스 클러스터를 삭제한다

# kops delete cluster $NAME --yes