LoginSignup
40
38

More than 5 years have passed since last update.

Kubernetes & GKE チートシート

Posted at

Kubernetes

kubectl の操作対象を確認する

kubectl config current-context

設定ファイルを登録または更新する

# 設定ファイルを指定して登録する
kubectl create -f ${YAML_FILE}

# 設定ファイルを更新する
kubectl replace -f ${YMLA_FILE}

# ディレクトリ単位でまとめて登録更新する
kubectl apply -f ${DIR_OR_FILE}

pod を表示する

# 一覧を表示する
kubectl get pods [--all-namespaces]

# 詳細を表示する
kubectl describe pod ${POD_NAME} [-n ${NAMESPACE}]

pod にログインする

kubectl exec -it ${POD_NAME} sh

ログを確認する

# 起動中のログを表示
kubectl logs ${POD_NAME}

# tail -f のようにストリームで表示
kubectl logs -f ${POD_NAME}

# 前回起動時のログを表示
kubectl logs -p ${POD_NAME}

なんらかのイベントが発生しているか確認する

kubectl describe pod,statefulset,daemonset,deployment,node --all-namespaces | grep Events:
  • Events: <none> 以外が表示されたら grep をやめて確認する。

GKE

CLI でログインする

gcloud auth application-default login

GKE の基本情報を取得する

# プロジェクトの一覧
gcloud projects list

# クラスタの一覧
gcloud container clusters list

GKE クラスタを kubectl の操作対象にする

# プロジェクトを切り替える
gcloud config set project ${PROJECT_ID}

# kubectl の操作対象を GKE に切り替える
gcloud container clusters get-credentials [-z ${ZONE}] ${CLUSTER_NAME}

GKE クラスタのダッシュボードを表示する

  • kubectl proxy で GKE クラスタに接続する
  • http://localhost:8001/ui にアクセスしてダッシュボードの表示

Google Container Registry に docker イメージをアップロードする

# イメージの作成
docker build -t gcr.io/${PROJECT_NAME}/${IMAGE_NAME}:${TAG}

# 既存イメージへ GCR 用のタグをつける
docker tag ${IMAGE_ID} gcr.io/${PROJECT_NAME}/${IMAGE_NAME}:${TAG}

# イメージをアップロードする
gcloud docker -- push gcr.io/${PROJECT_NAME}/${IMAGE_NAME}:${TAG}
  • gcr.io の部分はアップロード先のホスト名で変更可能。詳細は公式ドキュメントを参照。

静的外部IPアドレスを使って外部にサービスを提供する

# 静的外部IPアドレスを作成する
gcloud compute addresses create ${STATIC_IP_ADDR_NAME} --global

# 作成した静的外部IPアドレスの実際のIPアドレスを確認する
gcloud compute addresses describe ${STATIC_IP_ADDR_NAME} --global
  • 公式ドキュメントに従って Ingress を設定して作成した静的外部IPアドレスでサービスを提供する。

内部ロードバランサーを提供する

  • 公式ドキュメントに従って設定した Service を公開する。
  • これだけでサービス名ベースで負荷分散をしてくれる内部ロードバランサーが起動する。

Minikube

Minikube を起動する

minikube start

Minikube クラスタを kubectl の操作対象にする

kubectl config use-context minikube

docker コマンドで Minikube 環境を利用する

eval $(minikube docker-env)

ホストから Minikube に接続する

  • Service で spec.type が NodePort のものはポートが解放され、ホストから接続できる。
  • minikube service
40
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
38