kubectl
Kubectl is a command line interface for running commands against Kubernetes clusters
設定ファイルとして ~/.kube.config ファイルを参照
code:shell
# kubectl config set-credentials myself --username=admin --password=admin
User "myself" set.
Cluster "local-server" set.
# kubectl config set-context default-context --cluster=local-server --user=myself
Context "default-context" set.
# kubectl config use-context default-context
Switched to context "default-context".
# kubectl config set contexts.default-context.namespace default
Property "contexts.default-context.namespace" set.
pod の削除
code:shell
$ kubectl delete deployment myapp
deployment.extensions "myapp" deleted
クラスタ
クラスタ情報の確認
code:shell
# kubectl cluster-info
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
クラスタの正常性確認
code:shell
$ kubectl get componentstatuses
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy {"health":"true"}
table:list
controller-manager クラスタ上での振る舞いを制御するさまざまなコントローラーを動かす役割を担う
scheduler 各 Pod をクラスタ内のそれぞれのノードに配置
etcd-0 クラスタのすべての API オブジェクトが保尊されるストレージ
一覧の表示
code:shell
$ kubectl config get-contexts
切り替え
code:shell
$ kubectl config use-context cluster-name
現状確認
code:shell
$ kubectl config get-contexts
ノード
確認
code:shell
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-for-desktop Ready master 5m v1.10.3
詳細情報の表示
code:shell
$ kubectl describe nodes node1
ノードの基本情報の表示
ノードが動作している OS 情報の表示
それぞれのノードが十分なディスクとメモリを持っていて、かつそのノードが Kubernetes マスタに対して正常であると通知しているかどうかを表している
Pods
Pod の IP アドレスの抜き出し
code:shell
$ kubectl get pods mypod -o jsonpath --template='{.status.podIP}'
10.1.0.11
Kubernetes オブジェクトの作成、更新、削除
作成
code:shell
$ kubectl apply -f obj.yml
対話的に設定の編集
code:shell
$ kubectl edit <リソース名> <オブジェクト名>
ファイルを保存すると Kubernetes クラスタに設定が自動でアップロードされる
削除
確認プロンプト出さない
code:shell
$ kubectl delete -f obj.yml
オブジェクトの Label と Annotation
bar という名前の Pod に color=red という Label をつける場合の例
code:shell
$ kubectl label pods bar color=red
既存の Label を上書きする場合には --overwrite フラグを付けて実行する
削除
<Label 名>- で削除
code:shell
$ kubectl label pods bar color-
デバッグ用
ログの出力
code:shell
$ kubectl logs <Pod 名>
table:list
-c Pods 内にコンテナ選択
-f tailf 的な
コンテナ接続
code:shell
$ kubectl exec -it <Pod 名> /bin/bash
ファイルのコピー
code:shell
$ kubectl cp <Pod名>:/path/to/remote/file /path/to/local/file
Deployment
Deployment の確認
code:shell
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
alpaca-prod 2/2 2 2 11m
alpaca-test 1/1 1 1 3m25s
bandicoot-prod 2/2 2 2 2m26s
bandicoot-staging 1/1 1 1 72s
全削除
code:shell
$ kubectl delete deployments --all
リソース一覧表示
code:shell
$ kubectl api-resources