Skip to content

Instantly share code, notes, and snippets.

@yhirano55
Created March 11, 2017 12:38
Show Gist options
  • Save yhirano55/e704c3f63e0b9ce07f1fbbf2036b1193 to your computer and use it in GitHub Desktop.
Save yhirano55/e704c3f63e0b9ce07f1fbbf2036b1193 to your computer and use it in GitHub Desktop.

Kubernetes Study

コマンド

# プロジェクト情報の確認
$ gcloud config list

# 予めセットすると設定しやすい
$ gcloud config set project PROJECT_ID
$ gcloud config set compute/zone asia-east1-a

# クラスターの作成(数分かかる)
$ gcloud container clusters create hello-world --num-nodes 1 --machine-type g1-small

# Podの作成(1)
$ kubectl run wordpress --image=tutum/wordpress --port=80

# Podの作成(2)
$ kubectl create -f something.yaml

# 外部トラフィックの許可(転送ルールはYAMLで指定することも可能)
$ kubectl expose deployment wordpress --type=LoadBalancer

# ロードバランサが作成されるまで数分かかるため、下記で状態を確認できる
$ kubectl describe services wordpress

# 参照
$ kubectl get service ${NAME} # EXTERNAL-IPにアクセス可能
$ kubectl get services
$ kubectl get deployments
$ kubectl get pods
$ kubectl get pods -o wide
$ kubectl get rc # `rc` はreplicationController
$ kubectl get nodes
$ gcloud compute instances list # ワーカーノードの確認 (get nodesと同じ名前のインスタンスが確認できる)
$ gcloud container clusters list

# NodeにSSHで接続 (NODEはget pods -o wideで確認できる)
% gcloud compute ssh ${NODE}

# 削除
$ kubectl delete service ${NAME}
$ kubectl delete service --all
$ kubectl delete deployments ${NAME}
$ kubectl delete deployments --all
$ kubectl delete pods ${NAME}
$ kubectl delete pods --all
$ gcloud container clusters delete tensorflow-cluster001

公式チュートリアル

minikubeやるより、下記から始めた方が分かりやすい。

設定ファイルのベストプラクティス

チュートリアルでカバーしていない情報

用語集

Architectureで利用される

Name Content
Node Dockerが動くマシンのこと
Pod コンテナを配置する入れ物。この単位でスケールさせたりします
Proxy コンテナとの通信を経由するプロキシ

コマンドラインで使われる

Name Content
Deployments Pod(コンテナ)を管理するもの
Service Pod(コンテナ)と通信を維持するためのポリシーなどを定義するもの

Railsのサンプル

良記事

ちょっと古くなった情報

2016年9月以前は古そう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment