Kubernetes Engineの管理
Cloud SDKとCloud shellを使用して、Kubernetesを操作する
①全てのkラスタの名前と基本情報の一覧を表示するためには、以下のコマンドで
gcloud container clusters list
②クラスタの詳細情報を表示するには
gcloud container clusters describe
または、--zone と --regionパラメータを使用して、ゾーンまたはリージョンの名前を渡す要
以下、us-central1-aにあるclusterSampleの説明を出力する
gcloud container clusters describe --zone us-central1-a clusterSample
③ノードとポッドの情報を出力するには、kubectlコマンドを使用する
まず、正しく構成されたkubeconfigがあることを確認する、以下のコマンドで
gcloud container clusters get-credentials --zone us-central1-a clusterSample
認証情報の取得と設定が含まれる
・次のコマンドでクラアスタのノードのリストを出力する
kubectl get nodes
・次のコマンドでpodのリストを出力する
kubectl get pods
・nodeとpodの詳細を出力する
kubectl describe nodes
kubectl describe pods
④nodeの追加、修正、削除の操作
gcloud container clusters resize
で追加または削除できる。
例: クラスタclusterSampleのサイズを3から5に増やすには、以下のコマンドで
gcloud container clusters resize clusterSample --node-pool default-pool --size 5 --region=us-central1
上記コマンドでcluster name、node pool name、cluster nameを指定する
gcloud container clusters update
で変更できる。
例:自動スケーリングを有効にするには、以下のコマンドで
gcloud container clusters update clusterSample --enable-autoscaling --min-nodes 1 --max-nodes 5 --zone us-central1-a --node-pool default-pool
⑤Podの追加、修正、削除の操作
ベストプラクティスは、Podを直接操作しないこと、KubernetesあDeploymentで指定されたPod数を管理する。Pod数を変更する場合、Deploymentの構成を変更すること。
・ Deploymentのリストを出力するには以下のコマンドで
kubectl get deployments
・ Podを追加または削除するには以下のコマンドで nginx-1とのDeploymentのレプリカ数を6にする
kubectl scale deployment nginx-1 --replicas 5
・自動スケーリング設定、autoscaleコマンドを使用する。
例:CPUの使用率は80%を超える場合、最大10個Pod追加で、Deploymentには、常に1個以上のPodが存在するとのコマンドは以下
kubectl autoscale deployment nginx-1 --max 10 --min 1 --cpu-percent 80
・Deploymentを削除するのは、delete deployment コマンドを使用する。
kubectl delete deployment nginx-1
⑥サービスの追加、修正、削除の操作
・ serviceのリストを出力するには以下のコマンドで
kubectl get services
・ serviceを追加するには、kubectl runコマンドを使用して、サービスを起動する。例えば、は以下のコマンドで hello-world-serviceとのサービスを追加&起動する
kubectl run hello-world-service --image=gcr.io/google/samples/hell-app:1.0 --port 8080
上記コマンドでは、パス「gcr.io/google/samples/」に存在するhell-appとのイメージのバージョン1.0をダウンロードして、実行する。ポート8080でアクセスする。
サービスを公開する必要があって、exposeコマンドを使用して、公開できる。
kubectl expose deployment hello-world-service --type="LoadBalancer"
⑥コンテナ イメージの詳細
Container Registryはコンテナ イメージを保存するためのGCPサービスです。レポジトリを作成して、イメージをプッシュすると、以下のコマンドでイメージを操作できる
・イメージのリストを出力する
gcloud container images list
・イメージの詳細を出力する
gcloud container images describe gcr.io/google/samples/hell-app:1.0