毎回英文読むのめんどくさいのでざっと
Overview of kubectlにあるkubectlのコマンドの簡単な翻訳
コマンド | 構文 | 説明 |
---|---|---|
annotate | kubectl annotate(-f FILENAME \ | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] | annotations(注釈)を追加、更新する |
api-versions | kubectl api-versions [flags] | 利用可能なAIP一覧を表示する |
apply | kubectl apply -f FILENAME [flags] | リソースファイル、標準入力からの設定変更を適用する |
attach | kubectl attach POD -c CONTAINER [-i] [-t] [flags] | 起動中のコンテナへ接続して出力を表示するか、対話型で接続する |
autoscale | kubectl autoscale (-f FILENAME \ | TYPE NAME \ | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] | レプリケーションコントローラーの管理しているpodを自動でスケーリングする |
cluster-info | kubectl cluster-info [flags] | クラスタのマスターとサービスに関するエンドポイントの情報を表示する |
config | kubectl config SUBCOMMAND [flags] | kubeconfigファイルの編集を行う。詳細はサブコマンドを参照 |
create | kubectl create -f FILENAME [flags] | ファイル、標準入力から1つ以上のリソースを作成する |
delete | kubectl delete (-f FILENAME \ | TYPE [NAME \ | /NAME \ | -l label \ | --all]) [flags] | ファイル、標準入力またはlabel selectors,name,resource selectors, resourcesから選択しリソースを削除する |
describe | kubectl describe (-f FILENAME \ | TYPE [NAME_PREFIX \ | /NAME \ | -l label]) [flags] | リソースの状態を表示する |
diff | kubectl diff -f FILENAME [flags] | Diffファイルまたは標準入力と現在の設定の差分を表示(BATA) |
edit | kubectl edit (-f FILENAME \ | TYPE NAME \ | TYPE/NAME) [flags] | エディタを使ってリソースの定義情報を編集、更新する |
exec | kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]] | PODに対してコマンドを実行する |
explain | kubectl explain [--include-extended-apis=true] [--recursive=false] [flags] | pod,node,サービスなどの説明を取得 |
expose | kubectl expose (-f FILENAME \ | TYPE NAME \ | TYPE/NAME) [--port=port] [--protocol=TCP\ |UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags] | サービスを作成し、外部へ公開する |
get | kubectl get (-f FILENAME \ | TYPE [NAME \ | /NAME \ | -l label]) [--watch] [--sort-by=FIELD] [[-o \ | --output]=OUTPUT_FORMAT] [flags] | リソースをリスト表示する |
label | kubectl label (-f FILENAME \ | TYPE NAME \ | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] | リソースのlabelを追加または編集する |
logs | kubectl logs POD [-c CONTAINER] [--follow] [flags] | PODのログを表示する |
patch | kubectl patch (-f FILENAME \ | TYPE NAME \ | TYPE/NAME) --patch PATCH [flags] | パッチを適用しリソースのフィールドを更新する |
port-forward | kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags] | ローカルのポートを別のpodへ転送する |
proxy | kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags] | Kubernetes API serverへのプロキシを実行する |
replace | kubectl replace -f FILENAME | ファイル、標準出力からリソースを置き換える |
rolling-update | kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE \ | -f NEW_CONTROLLER_SPEC) [flags] | 指定されたPODを順次更新していく |
run | kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [flags] | 指定したイメージをクラスタで実行する |
scale | kubectl scale (-f FILENAME \ | TYPE NAME \ | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags] | PODの数を変更する |
stop | kubectl stop | 非推奨 delete を参照 |
version | kubectl version [--client] [flags] | k8sのバージョンを表示する |
output option
一部の表示コマンドでは出力のフォーマット、ソートの指定をするオプションが存在します。
どのコマンドがどのオプションを利用可能化は別途参照
構文:
$ kubectl [command] [TYPE] [NAME] -o=<output_format>
表示フォーマット | 説明 |
---|---|
-o=custom-columns= | カンマ区切りの表にして表示する |
-o=custom-columns-file= | で指定されたテンプレートに従って表示する |
-o=json | json形式で表示する |
-o=jsonpath= | 必要なjsonのキーを指定して表示する |
-o=jsonpath-file= | 内で指定されたjsonのキーを指定して表示する |
-o=name | リソース名のみ表示する |
-o=wide | 追加情報を加えて表示する。PODの場合はNode名も表示する |
-o=yaml | YAML形式で表示する |
コマンド例
kubectl create
# example-service.yaml の内容に従ってサービスを作成する
$ kubectl create -f example-service.yaml
# example-controller.yamlの内容に従ってレプリケーションコントローラーを作成する
$ kubectl create -f example-controller.yaml
# <directory>内にある任意のファイル .yaml, .yml, .json に従ってオブジェクトを作成する
$ kubectl create -f <directory>
kubectl get
# 全てのpodをplain-textで表示する
$ kubectl get pods
# 全てのpodを追加情報を含めてplain-textで表示する (node名も表示する)
$ kubectl get pods -o wide
# 指定したreplicationcontrollerを plain-text で表示する。'replicationcontroller'は'rc'と省略も可能
$ kubectl get replicationcontroller <rc-name>
# replicationcontrollerとserviceの情報をplain-textで表示する
$ kubectl get rc,services
# 未初期化のものを含めてdaemonsets(ds)を表示する
$ kubectl get ds --include-uninitialized
# node名server01で動いているpodを表示する
$ kubectl get pods --field-selector=spec.nodeName=server01
kubectl describe
# <node-name>で指定したnodeの詳細を表示
$ kubectl describe nodes <node-name>
# <pod-name>で指定したpodの詳細を表示
$ kubectl describe pods/<pod-name>
# <rc-name>で指定したreplication controller含まれているpodの詳細情報を表示
# 確認: replication controllerによって作成されたpodにはreplication controllerのプレフィックスが付く
$ kubectl describe pods <rc-name>
# 初期化済みの全podの詳細を表示する
$ kubectl describe pods --include-uninitialized=false
kubectl delete
# pod.yaml fileに記述されているnameとtypeのpodを削除する
$ kubectl delete -f pod.yaml
# name=<label-name>で渡されたlabel名が一致するpodとserviceを削除する
$ kubectl delete pods,services -l name=<label-name>
# name=<label-name>で渡されたlabel名が一致するpodとserviceを未初期化も含めて削除する
$ kubectl delete pods,services -l name=<label-name> --include-uninitialized
# 全てのpodを削除する
$ kubectl delete pods --all
kubectl exec
# <pod-name>で指定したpodで'date'コマンドを実行し出力する。デフォルトでは1番目のコンテナから出力する
$ kubectl exec <pod-name> date
# pod <pod-name>の中のコンテナ<container-name>で'date'コマンドを実行する
$ kubectl exec <pod-name> -c <container-name> date
# pod <pod-name>でTTY と /bin/bashを実行する
$ kubectl exec -ti <pod-name> /bin/bash
kubectl logs
# pod <pod-name>からlogのスナップショットを取得する.
$ kubectl logs <pod-name>
# Start streaming the logs from pod <pod-name>からlogのストリーミング取得します。 Linuxの'tail -f' と似たような内容です
$ kubectl logs -f <pod-name>