こんにちは、mabuiです。
今回はgcloudコマンドを利用して、GKEクラスタにコンテナをデプロイする流れを紹介します。
下記Google公式ドキュメントの作業ログ的な記事になります。
初期設定、イメージのアップロード
gcloudコマンドのアカウント、プロジェクトの切り替えを行う場合はまず下記のコマンドを実行して、対話形式で設定します。
1 2 |
gcloud init |
次にターミナル上で環境変数を設定します。PROJECT_IDはGCPコンソール上のプロジェクト情報から確認できます。
1 2 3 4 |
# 環境変数設定 # export PROJECT_ID={PROJECT_ID} export PROJECT_ID=gke-template |
次にgoogle container registoryにコンテナイメージをビルドしてアップロードします。
1 2 3 4 5 6 7 |
# google container registory用にビルド docker build -t gcr.io/${PROJECT_ID}/gke-template:v1 . % docker images REPOSITORY TAG IMAGE ID CREATED SIZE gcr.io/gke-template/gke-template v1 3f440dcf1ea4 5 days ago 7.41MB |
gcr.ioがgoogle container registoryのホストを表しています。
ビルドしたイメージを Container Registry にアップロードします。
1 2 3 4 5 6 |
# アップロード前に初回のみ実行が必要 gcloud auth configure-docker # アップロード docker push gcr.io/${PROJECT_ID}/gke-template:v1 |
ローカルでアップロードしたイメージを実行してテストします。
1 2 3 4 5 |
docker run --rm -p 8888:8888 gcr.io/${PROJECT_ID}/gke-template:v1 curl http://localhost:8888 Hello world! |
GKEクラスタ作成
使用するイメージがアップロードできたので、次はGKEクラスタを作成します。
1 2 3 4 5 6 7 8 9 10 11 |
# オプション設定 gcloud config set project $PROJECT_ID # 東京リージョン/ゾーン設定 gcloud config set compute/zone asia-northeast1-a # クラスタ作成 gcloud container clusters create template-cluster --num-nodes=2 # 確認 gcloud compute instances list |
クラスタが滞在している間は利用料金がかかるので、動作確認用途なら後に削除しましょう。
上記gcloudコマンドでクラスタを作成しない場合、下記コマンドでクラスタの認証情報を取得する必要があリます。
1 2 |
gcloud container clusters get-credentials template-cluster |
前回、前々回で用意したマニュフェストを適用してGKEにデプロイします。
1 2 3 4 5 6 7 |
kubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/service.yaml kubectl apply -f k8s/ingress.yaml # ingressコントローラーインストール helm install nginx-ingress stable/nginx-ingress |
作成されたIngressのIPでアプリが実行できました!
1 2 3 4 5 6 7 |
% kubectl describe ing ... Normal CREATE 13s (x6 over 4m28s) loadbalancer-controller ip: 34.120.170.38 % curl http://34.120.170.38/ Hello World! |