{GCP GKE}アプリを GKE クラスタにデプロイする

https://cloud.google.com/kubernetes-engine/docs/deploy-app-cluster?hl=ja

リージョン クラスタ -> コントロール プレーンはリージョンの 3 つのゾーンにわたって複製されます
ゾーンクラスタ -> 1 つのゾーン内に 1 つのコントロール プレーンが存在

今回はゾーンクラスタを作成


-- 1. 前作業

gcloud init
gcloud auth list

gcloud --version

gcloud projects create project01-9999999 \
--name="project01"

gcloud config list
gcloud config set project project01-9999999
gcloud config set compute/region asia-northeast1 --quiet
gcloud config set compute/zone asia-northeast1-a --quiet

gcloud beta billing accounts list
gcloud beta billing projects link project01-9999999 --billing-account=111111-111111-111111

gcloud services enable compute.googleapis.com --project project01-9999999

gcloud components update


-- 2. Artifact Registry and Google Kubernetes Engine API を有効化

gcloud services list --enabled
gcloud services list --available

 

gcloud services enable artifactregistry.googleapis.com \
--project project01-9999999

gcloud services enable container.googleapis.com \
--project project01-9999999

 

-- 3. kubectlインストール

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"

chmod +x ./kubectl

sudo mv ./kubectl /usr/local/bin/kubectl
sudo chown root: /usr/local/bin/kubectl

kubectl version --client

 

-- 4. GKE クラスターの作成
gcloud compute machine-types list

 

gcloud container clusters create gke01 \
--disk-size=10 \
--disk-type=pd-standard \
--num-nodes=1 \
--machine-type=e2-micro \
--spot \
--zone=asia-northeast1-a \
--node-locations=asia-northeast1-a

 

gcloud container clusters list


-- 5. gke-gcloud-auth-pluginのインストール


gcloud components remove gke-gcloud-auth-plugin

gcloud components install gke-gcloud-auth-plugin


-- 6. クラスターに接続する


export USE_GKE_GCLOUD_AUTH_PLUGIN=True
gcloud components update

gcloud container clusters get-credentials gke01 --zone=asia-northeast1-a --project=project01-9999999


kubectl get nodes
kubectl get pods -n kube-system

 

-- 7. 動作確認


kubectl cluster-info
kubectl api-resources
kubectl config view
kubectl config current-context

kubectl config use-context gke_project01-9999999_asia-northeast1-a_gke01


kubectl create deployment test \
--image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

kubectl expose deployment test --type LoadBalancer --port 80 --target-port 8080


kubectl get pods
kubectl get service test
kubectl get all


curl http://192.0.2.1


kubectl delete deployment test

gcloud container clusters delete gke01 \
--zone=asia-northeast1-a

 

-- 8. クリーンアップ

gcloud projects list

gcloud projects delete project01-9999999