GKE Kubernetes 클러스터 생성 및 설정
2022. 11. 17. 18:00ㆍ[개발] 지식/Kubernetes
$ gcloud container get-server-config --zone asia-northeast3-a
GKE에서 사용 가능한 쿠버네티스 버전을 확인한다.
Fetching server config for asia-northeast3-a
channels:
- channel: RAPID
defaultVersion: 1.24.4-gke.800
validVersions:
- 1.25.2-gke.1700
- 1.25.1-gke.500
- 1.24.6-gke.1500
- 1.24.5-gke.600
- 1.24.4-gke.800
- 1.24.3-gke.2100
- 1.23.12-gke.1600
- 1.23.12-gke.100
- 1.23.11-gke.300
- 1.22.15-gke.1000
- 1.22.15-gke.100
- 1.22.14-gke.300
- 1.22.13-gke.1000
- 1.21.14-gke.8500
- 1.21.14-gke.7100
- 1.21.14-gke.5300
- channel: REGULAR
defaultVersion: 1.23.8-gke.1900
validVersions:
- 1.24.5-gke.600
- 1.23.12-gke.100
- 1.23.8-gke.1900
- 1.22.15-gke.100
- 1.22.13-gke.1000
- 1.22.12-gke.2300
- 1.22.12-gke.500
- 1.21.14-gke.7100
- 1.21.14-gke.5300
- 1.21.14-gke.4300
- channel: STABLE
defaultVersion: 1.22.12-gke.2300
validVersions:
- 1.23.11-gke.300
- 1.22.15-gke.100
- 1.22.12-gke.2300
- 1.21.14-gke.7100
- 1.21.14-gke.5300
- 1.21.14-gke.4300
- 1.21.14-gke.3000
defaultClusterVersion: 1.23.8-gke.1900
defaultImageType: COS_CONTAINERD
validImageTypes:
- WINDOWS_SAC
- WINDOWS_LTSC
- WINDOWS_SAC_CONTAINERD
- WINDOWS_LTSC_CONTAINERD
- COS
- UBUNTU
- COS_CONTAINERD
- UBUNTU_CONTAINERD
validMasterVersions:
- 1.24.6-gke.1500
- 1.24.5-gke.600
- 1.24.4-gke.800
- 1.24.3-gke.2100
- 1.23.12-gke.1600
- 1.23.12-gke.100
- 1.23.11-gke.300
- 1.23.10-gke.1000
- 1.23.9-gke.2100
- 1.23.9-gke.900
- 1.23.8-gke.1900
- 1.22.15-gke.1000
- 1.22.15-gke.100
- 1.22.14-gke.300
- 1.22.13-gke.1000
- 1.22.12-gke.2300
- 1.22.12-gke.1200
- 1.22.12-gke.500
- 1.21.14-gke.8500
- 1.21.14-gke.7100
- 1.21.14-gke.5300
- 1.21.14-gke.4300
- 1.21.14-gke.3000
validNodeVersions:
- 1.24.6-gke.1500
- 1.24.5-gke.600
- 1.24.4-gke.800
- 1.24.3-gke.2100
- 1.24.3-gke.900
- 1.24.3-gke.200
- 1.24.2-gke.1900
- 1.24.2-gke.300
- 1.24.1-gke.1800
- 1.24.1-gke.1400
- 1.23.12-gke.1600
- 1.23.12-gke.100
- 1.23.11-gke.300
- 1.23.10-gke.1000
- 1.23.9-gke.2100
...(생략)
validVersions
에 있는 버전을 사용한다. 1.18 버전을 명시해서 클러스터를 생성하려고 했으나 unsupported 에러가 발생했다.
클러스터 생성
$ gcloud container clusters create k8s \
--cluster-version 1.24.6-gke.1500 \
--zone asia-northeast3-a \
--num-nodes 3 \
--machine-type n1-standard-4 \
--enable-network-policy \
--enable-vertical-pod-autoscaling
k8s라는 이름의 클러스터를 생성한다.
- cluster-version : Kubernetes 버전
- zone : 지역
- num-nodes : 노드 수
- machine-type : 인스턴스 종류
- enable-network-policy : 네트워크 정책 기능 활성화
- enable-vertical-pod-autoscaling : Vertical Pod Autoscaler 활성화
- (선택) enable-kubernetes-alpha : 알파 기능 활성화
- (선택) no-enable-autorepair : 알파 기능 활성화 시 해당 기능 비활성화
- (선택) no-enable-autoupgrade : 알파 기능 활성화 시 해당 기능 비활성화
$ gcloud container clusters get-credentials k8s --zone asia-northeast3-a
만약 클러스터에 대한 권한을 다시 가져와야 한다면 위 명령어를 실행한다.
$ kubectl create clusterrolebinding user-cluster-admin-binding \
--clusterrole=cluster-admin \
--user=<USER_ID>@gmail.com
구글 계정(사용자)이 클러스터를 관리자 권한으로 사용할 수 있도록 설정
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.14-dispatcher-dirty", ...(생략)
Server Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.6-gke.1500", ...(생략)
쿠버네티스와 클라이언트 버전 확인
GKE 워크로드 아이덴티티
- GKE에서 기동하고 있는 컨테이너에서 GCP 서비스를 사용할 때 컨테이너에게 유연하게 권하는 부여하는 기능
- 쿠버네티스 서비스 어카운트 리소스(KSA)와 GCP의 서비스 어카운트(GSA)를 연결하여 그 KSA를 사용하는 파드에서 GCP 서비스로 접속할 때 연결한 GSA 권한이 자동으로 부여되는 구조
$ gcloud config get-value core/project
프로젝트 ID를 조회한다.
$ gcloud container clusters update k8s \
--zone asia-northeast3-a \
--workload-pool=<PROJECT_ID>.svc.id.goog
워크로드 아이덴티티 활성화.
$ gcloud container node-pools update default-pool \
--cluster k8s \
--zone asia-northeast3-a \
--workload-metadata=GKE_METADATA
워크로드 아이덴티티에서 사용하는 GKE 메타데이터 기능 활성화.
클러스터 삭제
$ gcloud container clusters delete k8s --zone asia-northeast3-a
k8s 라는 이름의 클러스터 삭제.
'[개발] 지식 > Kubernetes' 카테고리의 다른 글
Windows Google Cloud CLI(gcloud) 설치 (0) | 2022.11.17 |
---|---|
WSL2에서 kind로 쿠버네티스 구축하기 (1) | 2022.09.21 |
<