% gcloud init Welcome! This command will take you through the configuration of gcloud.
Settings from your current configuration [default] are: core: account: devsawd@gmail.com disable_usage_reporting: 'True'
Pick configuration to use: [1] Re-initialize this configuration [default] with new settings [2] Create a new configuration Please enter your numeric choice: 1 #1을 선택
1을 선택하여 기본값으로 설정합니다.
계정 선택
1 2 3 4 5 6 7
Choose the account you would like to use to perform operations for this configuration: [1] devsawd@gmail.com [2] Log in with a new account Please enter your numeric choice: 1
You are logged in as: [devsawd@gmail.com].
프로젝트 선택 및 리전 설정
1 2 3 4 5 6 7 8 9 10 11 12 13
Pick cloud project to use: [1] flash-freehold-371706 [2] Enter a project ID [3] Create a new project Please enter numeric choice or text value (must exactly match list item): 1
Your current project has been set to: [flash-freehold-371706].
Do you want to configure a default Compute Region and Zone? (Y/n)? Y
//... 생략 Too many options [107]. Enter "list" at prompt to print choices fully. Please enter numeric choice or text value (must exactly match list item): 34
제 클라우드 프로젝트는 flash-freehold-371706으로 자동 설정되었습니다.
아래부터는 {PROJECT_ID}로 표시하겠습니다.
만약 클라우드 프로젝트 ID를 모르는 분들은 https://cloud.google.com/ 로그인 후 우측 상단에 [콘솔]을 누르면 프로젝트 번호와 프로젝트 ID를 보실 수 있습니다.
Your current Google Cloud CLI version is: 412.0.0 Installing components from version: 412.0.0
┌─────────────────────────────────────────────┐ │ These components will be installed. │ ├────────────────────────┬─────────┬──────────┤ │ Name │ Version │ Size │ ├────────────────────────┼─────────┼──────────┤ │ gke-gcloud-auth-plugin │ 0.4.0 │ 7.1 MiB │ │ kubectl │ 1.23.14 │ 78.7 MiB │ │ kubectl │ 1.23.14 │ < 1 MiB │ └────────────────────────┴─────────┴──────────┘
For the latest full release notes, please visit: https://cloud.google.com/sdk/release_notes
Do you want to continue (Y/n)? Y
kubectl 버전 확인
1 2 3
# 버전 확인 % kubectl version Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5", GitCommit:"5c99e2ac2ff9a3c549d9ca665e7bc05a3e18f07e", GitTreeState:"clean", BuildDate:"2021-12-16T08:38:33Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"darwin/arm64"}
클러스터 만들기
머신타입 e2-medium의 노드를 3개를 만듭니다.
1 2 3 4 5 6 7
% gcloud container clusters create private-net
//생략
kubeconfig entry generated for private-net. NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS private-net asia-northeast1-a 1.24.5-gke.600 35.200.60.221 e2-medium 1.24.5-gke.600 3 RUNNING
노드 확인
1 2 3 4 5
kubectl get nodes NAME STATUS ROLES AGE VERSION gke-private-net-default-pool-6fbfda54-4spn Ready <none> 66m v1.24.5-gke.600 gke-private-net-default-pool-6fbfda54-fcgn Ready <none> 66m v1.24.5-gke.600 gke-private-net-default-pool-6fbfda54-z8j3 Ready <none> 66m v1.24.5-gke.600
제 로컬 환경은 M1 맥북에어이기 때문에 일반적인 docker build로 이미지를 빌드하여 올리면 amd 환경에서는 정상적으로 실행되지 않습니다.
따라서 docker buildx를 이용해서 amd64와 arm64를 모두 빌드해서 로컬 및 클라우드에서 모두 확인해 볼겁니다.
1 2 3 4
# builder 생성 및 사용 설정 % docker buildx create --name multiarch-builder --use # 빌드 완료 후 구글 클라우드로 이미지 푸쉬 % docker buildx build --push --platform linux/amd64,linux/arm64 --tag gcr.io/{PROJECT_ID}/private-net .
오류1
아래와 같은 오류 발생 시 도커를 실행해주세요.
1
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
오류2
push 실패시 아래의 절차를 진행 후 다시 시도합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
The push refers to repository [gcr.io/{PROJECT_ID}/private-net] 035fcda135f4: Preparing 3497c9d4f0f3: Preparing fc68344ae935: Preparing b04ac25474eb: Preparing 6c4d81675161: Preparing f4d3f9e1ca46: Waiting 5d68f8622ea4: Waiting 1b577a8fb8ce: Waiting unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication