ちょっとしたオプションの違いでクラスターの立ち方が変わったりと慣れるのには使い込みが必要だなぁと思いました。 忘れそうなので備忘メモ。
クラスターを設置
クラスターとは、かたまりのことで、1クラスターでは1つのコントロールパネルを持つイメージです。 その実態はComputeEngineを束ねた形で1台のコンピュータとして扱う仮想化の技術が詰まっています。 ちょっと前に流行ったグリッドコンピューティングみたいな印象です。
さて、クラスターを設置していきます。
gcloud container clusters create test-cluster --region=asia-northeast1 --num-nodes=1
この書き方だと、各ゾーンに1台ずつComputeEngineが立ち、GKEのtest-clusterが1つ用意できました。
asia-northeast1-a、asia-northeast1-b、asia-northeast1-c それぞれに1台ずつのComputeEngineが立つので、そこそこのコストがかかります。
これは・・・本番運用向きですね。
上記コマンドのcreateをdeleteに変えてnum-nodesオプションを外して片づけます。
今回のケースでは検証だし、ComputeEngineを1台立てたいだけなので、オプションでゾーンの方を指定する
gcloud container clusters create test-cluster --zone="asia-northeast1-b" --num-nodes=1
ゾーンbに1台のComputeEngineが立ち、GKEのtest-clusterが1つ用意できました。 ちなみに、--num-nodes=3などの設定にすると、ゾーンbに3台立ちます。複数台立てるならマルチゾーン(リージョン指定する方)がおすすめです。
ポッドを設置
今日やりたいのはクラスターを立ち上げて、podを立ち上げたいので、nginxを立ててみることにします。 認証する
gcloud container clusters get-credentials test-cluster --zone=asia-northeast1-b
自環境の使えそうなテスト用のnginxイメージを探す(次回は作る予定)
gcloud container images list
使う。
kubectl run nginx --image=asia.gcr.io/[プロジェクト名]/nginx:v1 --port=80
podが1台立ち上がります。ここで、--replicasのオプションをつけて、3つpodを用意したいですが、指定できなかった。 cubectl scaleで増やしてみようとしたが、こちらも失敗。yamlで指定したほうがいいってこと?まだ検証が必要ですがタイムアップです。 やりたいことはいろいろとあるけど、今日はここまでにして、次回は続きからできるように。
お片付け
コストがかかる話なので、放置せずに削除する。
podを消す
kubectl delete pod nginx
autoscalingの設定を入れていないため1台のpodを消すだけで大丈夫。scalingの設定をしていれば異常を検知して1台新しいのが立ち上がるはず。この辺も設定次第なんですね。
クラスターを消す
gcloud container clusters delete test-cluster --zone="asia-northeast1-b"
きれいになりました。これでお休みの日に無駄な課金をされなくて済みます! それでは、みなさま、よい週末を!