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