GKEを使う - クラスタを作成

勉強用にGCPにKubernetesクラスタを作成して削除するまで。

プロジェクトを作る

GCPにログインしてプロジェクトを作成します。
プロジェクト名はgke-test-001とします。

Kubernetes クラスタを作る

設定を作成します。

1
gcloud config configurations create <NAME>

今回はgke-test-001を指定しました。

1
2
3
$ gcloud config configurations create gke-test-001
Created [gke-test-001].
Activated [gke-test-001]

gcloudにログイン済みならgcloud auth listコマンドでアカウントリストを確認できます。
gcloudに未ログインならgcloud auth loginでログインできます。

アカウントを設定します。

1
gcloud config set account <ACCOUNT>

プロジェクトを設定します。ここで指定するのは名前ではなくIDです。
プロジェクトのIDはプロジェクトの選択ダイアログで確認できます。

1
gcloud config set project <PROJECT ID>

ゾーンを設定します。

1
2
3
4
$ gcloud config set compute/zone asia-northeast1-c
Updated property [compute/zone].
API [compute.googleapis.com] not enabled on project [<PROJECT NO>]. Would you like to enable and retry (this will take a few minutes)?
(y/N)?

compute.googleapis.comのAPIを有効にするか、と聞かれるのでYesを選択します。

リージョンを設定します。

1
2
$ gcloud config set compute/region asia-northeast1
Updated property [compute/region].

クラスタを作成のコマンドを実行しますが、エラーになります。
service:container.googleapis.comのAPIを有効にする必要があるようです。

1
2
3
$ gcloud container clusters create test-cluster --preemptible --machine-type=e2-micro --num-nodes=2 --disk-size=10
~
Consumer <PROJECT NO> should enable service:container.googleapis.com before generating a service account.

service:container.googleapis.comのAPIを有効にします。
ドキュメント:https://cloud.google.com/sdk/gcloud/reference/services/enable

1
2
$ gcloud services enable container.googleapis.com
Operation "operations/XXX" finished successfully.

もう一度クラスタを作成のコマンドを実行します。

1
2
3
4
$ gcloud container clusters create test-cluster --preemptible --machine-type=e2-micro --num-nodes=2 --disk-size=10
~
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
test-cluster asia-northeast1-c 1.20.10-gke.1600 34.85.127.56 e2-micro 1.20.10-gke.1600 2 RUNNING

コンテキストの名前にクラスタの名前がセットされます。クラスタの名前は長いので変更します。

1
kubectl config rename-context <OLD-NAME> <NEW-NAME>
1
2
3
CLUSTER_NAME=`kubectl config current-context`
CONTEXT_NAME=gke-test-001
kubectl config rename-context $CLUSTER_NAME $CONTEXT_NAME

作成したクラスタを削除します。

1
gcloud container clusters delete test-cluster

コンテキストを削除します。

1
kubectl config delete-context $CONTEXT_NAME