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 ...
할당량을 조절하라고 하는데 조절이 또 안되고 그래서 결국 인스턴스 유형을 낮췄다.
(금액 때문에 괜히 쫄린다..)
구글 계정을 통해 관리자 권한으로 쿠버네티스 클러스터를 관리할 수 있도록 다음 명령어 실행
# 사용자에게 모든 리소스의 접속 권한을 부여
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' 부분도 분명히 강화하고 싶은 마음이 있다.
- 개발자로써 알아야 할 최소한의 지식 습득을 목표로 하고 있다. (사실 도커 까지만 알아도 될지도..)
- 무엇보다 재밌다. 아직 시작도 안한 것일테지만...
'Dev > Kubernetes' 카테고리의 다른 글
[Kubernetes & Docker] 4-3. kubectl 기초 (1/2) (0) | 2022.02.27 |
---|---|
[Kubernetes & Docker] 4-2. API 리소스 (0) | 2022.02.16 |
[Kubernetes & Docker] 3-2. GKE 환경 셋팅 (0) | 2022.02.14 |
[Kubernetes & Docker] 3-1. 쿠버네티스 환경 선택 (0) | 2022.02.14 |
[Kubernetes & Docker] 2. 쿠버네티스 소개 (0) | 2022.02.14 |