도커 로고

1. kubectl 설치와 자동 완성 기능 설정

kubectl 은 docker-desktop 을 설치 후 kubernetes 옵션을 활성화 하면서 설치되었기 때문에 자동완성 기능만 설정 했다.

 

# zsh completion
$ echo 'source <(kubectl completion zsh)' >> ~/.zshrc

# 다음 로그인 시에도 zsh로 kubectl 자동 완성 기능을 활성화
$ source <(kubectl completion zsh)

 

본인은 oh-my-zsh 를 사용하기에 해당 설정을 했다.

 

2. 쿠버네티스(GKE) 클러스터 생성

GCP 대시보드에서 직접 만들어줘도 되고, gcloud cli 를 통해 생성하였다.

 

$ gcloud container clusters create k8s \
# --cluster-version 1.21.5-gke.1802 \ #validMasterVersions에 있는 쿠버네티스 버전 지정
--zone asia-northeast3-a \ # 존 설정
--num-nodes 3 \ # 노드 수
--machine-type n2-standard-2 \ # 인스턴스 유형 지정
--enable-network-policy \ # 네트워크 정책 기능 활성화
--enable-vertical-pod-autoscaling # VerticalPodAutoscaler 활성화

 

Free-Trial 을 사용해서 그런건지 모르겠는데 CPU 가 12 코어가 넘어가면 에러가 발생했다.

 

Default change: VPC-native is the default mode during cluster creation for versions greater than 1.21.0-gke.1500. To create advanced routes based clusters, please pass the `--no-enable-ip-alias` flag
Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
ERROR: (gcloud.container.clusters.create) ResponseError: code=403, message=Insufficient regional quota to satisfy request: resource "CPUS": request requires '12.0' and is short '4.0'. project has a quota of '8.0' with '8.0' available. View and manage quotas at ...

 

할당량을 조절하라고 하는데 조절이 또 안되고 그래서 결국 인스턴스 유형을 낮췄다.

(금액 때문에 괜히 쫄린다..)

 

k8s 다시 생성 완료

 

구글 계정을 통해 관리자 권한으로 쿠버네티스 클러스터를 관리할 수 있도록 다음 명령어 실행

# 사용자에게 모든 리소스의 접속 권한을 부여
kubectl create clusterrolebinding user-cluster-admin-binding \
--clusterrole=cluster-admin \
--user=yourmail@gmail.com

 

로컬 PC 에서 실행하면 된다.

 

이후 생성이 확인되었으면 다시 삭제하랜다... (또?)

그래서 우선 쿠버네티스 생성과 삭제 다시 정리.

 

# zsh completion
$ echo 'source <(kubectl completion zsh)' >> ~/.zshrc

# 다음 로그인 시에도 zsh로 kubectl 자동 완성 기능을 활성화
$ source <(kubectl completion zsh)

# 쿠버네티스 버전 확인
gcloud container get-server-config --zone asia-northeast3-a

# 쿠버네티스 생성
gcloud container clusters create k8s \
# --cluster-version 1.21.5-gke.1802 \ #validMasterVersions에 있는 쿠버네티스 버전 지정
--zone asia-northeast3-a \ # 존 설정
--num-nodes 3 \ # 노드 수
--machine-type n2-standard-2 \ # 인스턴스 유형 지정
--enable-network-policy \ # 네트워크 정책 기능 활성화
--enable-vertical-pod-autoscaling # VerticalPodAutoscaler 활성화

# 사용자에게 모든 리소스의 접속 권한을 부여
kubectl create clusterrolebinding user-cluster-admin-binding \
--clusterrole=cluster-admin \
--user=yourmail@gmail.com

# 쿠버네티스 버전과 클라이언트 버전 확인
kubectl version

# 쿠버네티스 삭제
gcloud container clusters delete k8s --zone asia-northeast3-a

 

다음 시간엔 진짜 쿠버네티스 기초로 다시 시작..!

 

후기

  • 이거 생각보다 해야될 분량이 많다... 하지만 내 'DevOps' 경력에 'Ops' 부분도 분명히 강화하고 싶은 마음이 있다.
  • 개발자로써 알아야 할 최소한의 지식 습득을 목표로 하고 있다. (사실 도커 까지만 알아도 될지도..)
  • 무엇보다 재밌다. 아직 시작도 안한 것일테지만...