GKE
この Pod を複数集めた構成を作成するのが、 Deployment と呼ばれる単位で、 ReplicaSet を管理します
ReplicaSet は、複数の Pod を組み合わせてアプリケーションの機能を実現したものとなります
Deployment はこの ReplicaSet を管理し、アップデートの際に新規の ReplicaSet を作成してアプリケーションのバージョンアップ
Deployment に対して外部からアクセス可能な IP アドレスを付与し、外部からアクセスできるようにしたものが Service
Service として外部からアクセス可能にする際には、ロードバランサーを設定することも、ポートを指定して公開することも可能
clusterを作成する
compute instancesが立ち上がった。
認証情報?
gcloud container clusters get-credentials cluster-1 --zone=us-central1-c
Fetching cluster endpoint and auth data.
kubeconfig entry generated for cluster-1.
Pod立ち上げ
kubectl run wordpress --image=tutum/wordpress --port=80
pod/wordpress created
Deplymentsの情報
kubectl describe deploymentsでも、not foundになる....最初にclusterの設定で何かが違うかも....
放置
tutorialをやっておく
Node.jsサーバーを作成. ok
Dockerコンテナイメージを作成, ok
gcloud auth configure-docker で、~/.docker/config.jsonに設定ファイル
コンテナクラスタを作成
gcloud container clusters create NAME --num-nodes 2 ...
Kubernetes ポッドは管理とネットワーキングを目的に結合されたコンテナのグループで、1 つ以上のコンテナを含めることができ
kubectl create deployment hello-node --image=gcr.io/.....
deploymentオブジェクトが作成された...どこにある???
kubectl get deployment で表示される どこにあるが気になるが、本質的な問いではないので、流す。
kubectl get podsで、podが表示される。deploymentとpodは別々のもの。
サービスをスケールアップ
外部トラッフックを許可 ロードバランサをserviceとして追加
レプリカでスケールアップ kubectl scale deployment hello-node --replicas=4
アップグレード
imageを作り直して、registryに上げて(v1のキャッシュあるあので、早い)
kubectl edit deployment hello-nodeで、yamlを修正 Spec.containers.image
kubectl get deploymentsで、deploymentが更新されて、新しいポッドが作成されて、古いポッドは削除。
更新がロールアウトされる(ている)
deployの作成
ローリングアップデート
カナリアデプロイ
Blue/green デプロイ
ちょっと置いておく....