Merge upstream work for release-1.19
This commit is contained in:
@@ -8,16 +8,10 @@ card:
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
[Kubectl概要](/docs/reference/kubectl/overview/)と[JsonPathガイド](/docs/reference/kubectl/jsonpath)も合わせてご覧ください。
|
||||
|
||||
このページは`kubectl`コマンドの概要です。
|
||||
|
||||
|
||||
このページには、一般的によく使われる`kubectl`コマンドとフラグのリストが含まれています。
|
||||
|
||||
<!-- body -->
|
||||
|
||||
# kubectl - チートシート
|
||||
|
||||
## Kubectlコマンドの補完
|
||||
|
||||
### BASH
|
||||
@@ -37,14 +31,14 @@ complete -F __start_kubectl k
|
||||
### ZSH
|
||||
|
||||
```bash
|
||||
source <(kubectl completion zsh) # 現在のzshシェルでコマンド補完を設定します
|
||||
source <(kubectl completion zsh) # 現在のzshシェルにコマンド補完を設定します
|
||||
echo "[[ $commands[kubectl] ]] && source <(kubectl completion zsh)" >> ~/.zshrc # zshシェルでのコマンド補完を永続化するために.zshrcに追記します。
|
||||
```
|
||||
|
||||
## Kubectlコンテキストの設定
|
||||
|
||||
`kubectl`がどのKubernetesクラスターと通信するかを設定します。
|
||||
設定ファイル詳細については[kubeconfigを使用した複数クラスターとの認証](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)をご覧ください。
|
||||
設定ファイル詳細については[kubeconfigを使用した複数クラスターとの認証](/ja/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)をご覧ください。
|
||||
|
||||
```bash
|
||||
kubectl config view # マージされたkubeconfigの設定を表示します。
|
||||
@@ -63,10 +57,10 @@ kubectl config get-contexts # コンテキストのリ
|
||||
kubectl config current-context # 現在のコンテキストを表示します
|
||||
kubectl config use-context my-cluster-name # デフォルトのコンテキストをmy-cluster-nameに設定します
|
||||
|
||||
# basic認証をサポートする新たなクラスターをkubeconfigに追加します
|
||||
# basic認証をサポートする新たなユーザーをkubeconfigに追加します
|
||||
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword
|
||||
|
||||
# 現在のコンテキストでkubectlのサブコマンドのネームスペースを永続的に変更します
|
||||
# 現在のコンテキストでkubectlのサブコマンドの名前空間を永続的に変更します
|
||||
kubectl config set-context --current --namespace=ggckad-s2
|
||||
|
||||
# 特定のユーザー名と名前空間を使用してコンテキストを設定します
|
||||
@@ -76,7 +70,7 @@ kubectl config set-context gce --user=cluster-admin --namespace=foo \
|
||||
kubectl config unset users.foo # ユーザーfooを削除します
|
||||
```
|
||||
|
||||
## Apply
|
||||
## Kubectl Apply
|
||||
|
||||
`apply`はKubernetesリソースを定義するファイルを通じてアプリケーションを管理します。`kubectl apply`を実行して、クラスター内のリソースを作成および更新します。これは、本番環境でKubernetesアプリケーションを管理する推奨方法です。
|
||||
詳しくは[Kubectl Book](https://kubectl.docs.kubernetes.io)をご覧ください。
|
||||
@@ -141,18 +135,18 @@ EOF
|
||||
|
||||
```bash
|
||||
# Getコマンドで基本的な情報を確認します
|
||||
kubectl get services # 現在のネームスペース上にあるすべてのサービスのリストを表示します
|
||||
kubectl get pods --all-namespaces # すべてのネームスペース上にあるすべてのPodのリストを表示します
|
||||
kubectl get pods -o wide # 現在のネームスペース上にあるすべてのPodについてより詳細なリストを表示します
|
||||
kubectl get services # 現在の名前空間上にあるすべてのサービスのリストを表示します
|
||||
kubectl get pods --all-namespaces # すべての名前空間上にあるすべてのPodのリストを表示します
|
||||
kubectl get pods -o wide # 現在の名前空間上にあるすべてのPodについてより詳細なリストを表示します
|
||||
kubectl get deployment my-dep # 特定のDeploymentを表示します
|
||||
kubectl get pods # 現在のネームスペース上にあるすべてのPodのリストを表示します
|
||||
kubectl get pods # 現在の名前空間上にあるすべてのPodのリストを表示します
|
||||
kubectl get pod my-pod -o yaml # PodのYAMLを表示します
|
||||
|
||||
# Describeコマンドで詳細な情報を確認します
|
||||
kubectl describe nodes my-node
|
||||
kubectl describe pods my-pod
|
||||
|
||||
# 名前順にソートしたリストを表示します
|
||||
# 名前順にソートしたServiceのリストを表示します
|
||||
kubectl get services --sort-by=.metadata.name
|
||||
|
||||
# Restartカウント順にPodのリストを表示します
|
||||
@@ -165,33 +159,33 @@ kubectl get pv --sort-by=.spec.capacity.storage
|
||||
kubectl get pods --selector=app=cassandra -o \
|
||||
jsonpath='{.items[*].metadata.labels.version}'
|
||||
|
||||
# 'ca.crt'のようなピリオドが含まれるキーの値を取得します
|
||||
kubectl get configmap myconfig \
|
||||
-o jsonpath='{.data.ca\.crt}'
|
||||
|
||||
# すべてのワーカーノードを取得します(セレクターを使用して、
|
||||
# 「node-role.kubernetes.io/master」という名前のラベルを持つ結果を除外します)
|
||||
kubectl get node --selector='!node-role.kubernetes.io/master'
|
||||
|
||||
# 現在のネームスペースでrunning状態のPodをリストを表示します
|
||||
# 現在の名前空間でrunning状態のPodのリストを表示します
|
||||
kubectl get pods --field-selector=status.phase=Running
|
||||
|
||||
# すべてのノードのExternal IPをリストを表示します
|
||||
# すべてのノードのExternal IPのリストを表示します
|
||||
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'
|
||||
|
||||
# 特定のRCに属するPodの名前のリストを表示します
|
||||
# `jq`コマンドは複雑なjsonpathを変換する場合に便利であり、https://stedolan.github.io/jq/で見つけることが可能です
|
||||
|
||||
sel=${$(kubectl get rc my-rc --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')%?}
|
||||
echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})
|
||||
|
||||
# すべてのPod(またはラベル付けをサポートする他のKubernetesオブジェクト)のラベルのリストを表示します
|
||||
|
||||
kubectl get pods --show-labels
|
||||
|
||||
# どのノードがready状態か確認します
|
||||
|
||||
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \
|
||||
&& kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True"
|
||||
|
||||
# Podで現在使用中のSecretをすべて表示します
|
||||
|
||||
kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq
|
||||
|
||||
# すべてのPodのInitContainerのコンテナIDのリストを表示します
|
||||
@@ -199,17 +193,21 @@ kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secre
|
||||
kubectl get pods --all-namespaces -o jsonpath='{range .items[*].status.initContainerStatuses[*]}{.containerID}{"\n"}{end}' | cut -d/ -f3
|
||||
|
||||
# タイムスタンプでソートされたEventのリストを表示します
|
||||
|
||||
kubectl get events --sort-by=.metadata.creationTimestamp
|
||||
|
||||
# クラスターの現在の状態を、マニフェストが適用された場合のクラスターの状態と比較します。
|
||||
kubectl diff -f ./my-manifest.yaml
|
||||
|
||||
# Nodeから返されるすべてのキーをピリオド区切りの階層表記で生成します。
|
||||
# 複雑にネストされたJSON構造をもつキーを指定したい時に便利です
|
||||
kubectl get nodes -o json | jq -c 'path(..)|[.[]|tostring]|join(".")'
|
||||
|
||||
# Pod等から返されるすべてのキーをピリオド区切り階層表記で生成します。
|
||||
kubectl get pods -o json | jq -c 'path(..)|[.[]|tostring]|join(".")'
|
||||
```
|
||||
|
||||
## リソースのアップデート
|
||||
|
||||
version 1.11で`rolling-update`は廃止されました、代わりに`rollout`コマンドをお使いください(詳しくはこちらをご覧ください [CHANGELOG-1.11.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.11.md))。
|
||||
|
||||
```bash
|
||||
kubectl set image deployment/frontend www=image:v2 # frontend Deploymentのwwwコンテナイメージをv2にローリングアップデートします
|
||||
kubectl rollout history deployment/frontend # frontend Deploymentの改訂履歴を確認します
|
||||
@@ -219,11 +217,6 @@ kubectl rollout status -w deployment/frontend # frontend Depl
|
||||
kubectl rollout restart deployment/frontend # frontend Deployment を再起動します
|
||||
|
||||
|
||||
# これらのコマンドは1.11から廃止されました
|
||||
kubectl rolling-update frontend-v1 -f frontend-v2.json # (廃止) frontend-v1 Podをローリングアップデートします
|
||||
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 # (廃止) リソース名とイメージを変更します
|
||||
kubectl rolling-update frontend --image=image:v2 # (廃止) frontendのイメージを変更します
|
||||
kubectl rolling-update frontend-v1 frontend-v2 --rollback # (廃止) 現在実行中のローリングアップデートを中止します
|
||||
cat pod.json | kubectl replace -f - # 標準入力から渡されたJSONに基づいてPodを置き換えます
|
||||
|
||||
# リソースを強制的に削除してから再生成し、置き換えます。サービスの停止が発生します
|
||||
@@ -260,7 +253,6 @@ kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1",
|
||||
```
|
||||
|
||||
## リソースの編集
|
||||
|
||||
任意のエディターでAPIリソースを編集します。
|
||||
|
||||
```bash
|
||||
@@ -301,10 +293,10 @@ kubectl logs -f my-pod # Podのログをストリ
|
||||
kubectl logs -f my-pod -c my-container # 複数のコンテナがあるPodで、特定のコンテナのログをストリームで確認します(標準出力)
|
||||
kubectl logs -f -l name=myLabel --all-containers # name-myLabelラベルを持つすべてのコンテナのログをストリームで確認します(標準出力)
|
||||
kubectl run -i --tty busybox --image=busybox -- sh # Podをインタラクティブシェルとして実行します
|
||||
kubectl run nginx --image=nginx --restart=Never -n
|
||||
mynamespace # 特定のネームスペースでnginx Podを実行します
|
||||
kubectl run nginx --image=nginx --restart=Never # nginx Podを実行し、マニフェストファイルををpod.yamlという名前で書き込みます
|
||||
--dry-run -o yaml > pod.yaml
|
||||
kubectl run nginx --image=nginx -n
|
||||
mynamespace # 特定の名前空間でnginx Podを実行します
|
||||
kubectl run nginx --image=nginx # nginx Podを実行し、マニフェストファイルをpod.yamlという名前で書き込みます
|
||||
--dry-run=client -o yaml > pod.yaml
|
||||
kubectl attach my-pod -i # 実行中のコンテナに接続します
|
||||
kubectl port-forward my-pod 5000:6000 # ローカルマシンのポート5000を、my-podのポート6000に転送します
|
||||
kubectl exec my-pod -- ls / # 既存のPodでコマンドを実行(単一コンテナの場合)
|
||||
@@ -315,9 +307,9 @@ kubectl top pod POD_NAME --containers # 特定のPodとそのコ
|
||||
## ノードおよびクラスターとの対話処理
|
||||
|
||||
```bash
|
||||
kubectl cordon my-node # my-nodeにスケーリングされないように設定します
|
||||
kubectl cordon my-node # my-nodeをスケーリングされないように設定します
|
||||
kubectl drain my-node # メンテナンスの準備としてmy-nodeで動作中のPodを空にします
|
||||
kubectl uncordon my-node # my-nodeにスケーリングされるように設定します
|
||||
kubectl uncordon my-node # my-nodeをスケーリングされるように設定します
|
||||
kubectl top node my-node # 特定のノードのメトリクスを表示します
|
||||
kubectl cluster-info # Kubernetesクラスターのマスターとサービスのアドレスを表示します
|
||||
kubectl cluster-info dump # 現在のクラスター状態を標準出力にダンプします
|
||||
@@ -329,7 +321,7 @@ kubectl taint nodes foo dedicated=special-user:NoSchedule
|
||||
|
||||
### リソースタイプ
|
||||
|
||||
サポートされているすべてのリソースタイプを、それらが[API group](/ja/docs/concepts/overview/kubernetes-api/#api-groups)か[Namespaced](/docs/concepts/overview/working-with-objects/namespaces)、[Kind](/docs/concepts/overview/working-with-objects/kubernetes-objects)に関わらずその短縮名をリストします。
|
||||
サポートされているすべてのリソースタイプを、それらが[API group](/ja/docs/concepts/overview/kubernetes-api/#api-groups)か[Namespaced](/ja/docs/concepts/overview/working-with-objects/namespaces)、[Kind](/ja/docs/concepts/overview/working-with-objects/kubernetes-objects)に関わらずその短縮名をリストします。
|
||||
|
||||
```bash
|
||||
kubectl api-resources
|
||||
@@ -352,7 +344,7 @@ kubectl api-resources --api-group=extensions # "extensions" APIグループの
|
||||
|
||||
出力フォーマット | 説明
|
||||
---------------- | -----------
|
||||
`-o=custom-columns=<spec>` | カスタムカラムを使用してコンマ区切りのテーブルを表示します
|
||||
`-o=custom-columns=<spec>` | コンマ区切りされたカスタムカラムのリストを指定してテーブルを表示します
|
||||
`-o=custom-columns-file=<filename>` | `<filename>`ファイル内のカスタムカラムテンプレートを使用してテーブルを表示します
|
||||
`-o=json` | JSON形式のAPIオブジェクトを出力します
|
||||
`-o=jsonpath=<template>` | [jsonpath](/docs/reference/kubectl/jsonpath)式で定義されたフィールドを出力します
|
||||
@@ -361,13 +353,28 @@ kubectl api-resources --api-group=extensions # "extensions" APIグループの
|
||||
`-o=wide` | 追加の情報を含むプレーンテキスト形式で出力します。Podの場合、Node名が含まれます。
|
||||
`-o=yaml` | YAML形式のAPIオブジェクトを出力します
|
||||
|
||||
`-o=custom-columns`を使用したサンプル:
|
||||
|
||||
```bash
|
||||
# クラスター内で実行中のすべてのイメージ名を表示する
|
||||
kubectl get pods -A -o=custom-columns='DATA:spec.containers[*].image'
|
||||
|
||||
# "k8s.gcr.io/coredns:1.6.2"を除いたすべてのイメージ名を表示する
|
||||
kubectl get pods -A -o=custom-columns='DATA:spec.containers[?(@.image!="k8s.gcr.io/coredns:1.6.2")].image'
|
||||
|
||||
# 名前に関係なくmetadata以下のすべてのフィールドを表示する
|
||||
kubectl get pods -A -o=custom-columns='DATA:metadata.*'
|
||||
```
|
||||
|
||||
kubectlに関するより多くのサンプルは[カスタムカラムのリファレンス](/ja/docs/reference/kubectl/overview/#custom-columns)を参照してください。
|
||||
|
||||
### Kubectlのログレベルとデバッグ
|
||||
kubectlのログレベルは、レベルを表す整数が後に続く`-v`または`--v`フラグで制御されます。一般的なKubernetesのログ記録規則と関連するログレベルについて、[こちら](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md)で説明します。
|
||||
|
||||
ログレベル | 説明
|
||||
--------------| -----------
|
||||
`--v=0` | これは、クラスターオペレーターにログレベルが0であることを"常に"見えるようにするために役立ちます
|
||||
`--v=1` | 冗長性が必要ない場合は、妥当なデフォルトのログレベルです
|
||||
`--v=1` | ログレベルが必要ない場合に、妥当なデフォルトのログレベルです
|
||||
`--v=2` | サービスに関する重要な定常状態情報と、システムの重要な変更に関連する可能性がある重要なログメッセージを表示します。 これは、ほとんどのシステムで推奨されるデフォルトのログレベルです。
|
||||
`--v=3` | 変更に関するより詳細なログレベルを表示します
|
||||
`--v=4` | デバックにむいたログレベルで表示します
|
||||
@@ -380,13 +387,10 @@ kubectlのログレベルは、レベルを表す整数が後に続く`-v`また
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
* kubectlについてより深く学びたい方は[kubectl概要](/docs/reference/kubectl/overview/)をご覧ください。
|
||||
* kubectlについてより深く学びたい方は[kubectl概要](/ja/docs/reference/kubectl/overview/)や[JsonPath](/docs/reference/kubectl/jsonpath)をご覧ください。
|
||||
|
||||
* オプションについては[kubectl](/docs/reference/kubectl/kubectl/) optionsをご覧ください。
|
||||
|
||||
|
||||
* また[kubectlの利用パターン](/docs/reference/kubectl/conventions/)では再利用可能なスクリプトでkubectlを利用する方法を学べます。
|
||||
|
||||
* コミュニティ版[kubectlチートシート](https://github.com/dennyzhang/cheatsheet-kubernetes-A4)もご覧ください。
|
||||
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ card:
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
`kubectl`は、Kubernetesクラスターを制御するためのコマンドラインツールです。`kubectl`は、`$HOME/.kube`ディレクトリにある`config`という名前のファイルを探します。他の[kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)ファイルは、`KUBECONFIG`環境変数を設定するか、[`--kubeconfig`](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)フラグを設定することで指定できます。
|
||||
`kubectl`コマンドラインツールを使うと、Kubernetesクラスターを制御できます。環境設定のために、`kubectl`は、`$HOME/.kube`ディレクトリにある`config`という名前のファイルを探します。他の[kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)ファイルは、`KUBECONFIG`環境変数を設定するか、[`--kubeconfig`](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)フラグを設定することで指定できます。
|
||||
この概要では、`kubectl`の構文を扱い、コマンド操作を説明し、一般的な例を示します。サポートされているすべてのフラグやサブコマンドを含め、各コマンドの詳細については、[kubectl](/docs/reference/generated/kubectl/kubectl-commands/)リファレンスドキュメントを参照してください。インストール方法については、[kubectlのインストールおよびセットアップ](/ja/docs/tasks/tools/install-kubectl/)をご覧ください。
|
||||
|
||||
この概要では、`kubectl`の構文を扱い、コマンド操作を説明し、一般的な例を示します。サポートされているすべてのフラグやサブコマンドを含め、各コマンドの詳細については、[kubectl](/docs/reference/generated/kubectl/kubectl-commands/)リファレンスドキュメントを参照してください。インストール方法については、[kubectlのインストールおよびセットアップ](/ja/docs/tasks/kubectl/install/)をご覧ください。
|
||||
|
||||
|
||||
<!-- body -->
|
||||
@@ -29,11 +29,11 @@ kubectl [command] [TYPE] [NAME] [flags]
|
||||
|
||||
* `TYPE`: [リソースタイプ](#resource-types)を指定します。リソースタイプは大文字と小文字を区別せず、単数形や複数形、省略形を指定できます。例えば、以下のコマンドは同じ出力を生成します。
|
||||
|
||||
```shell
|
||||
kubectl get pod pod1
|
||||
kubectl get pods pod1
|
||||
kubectl get po pod1
|
||||
```
|
||||
```shell
|
||||
kubectl get pod pod1
|
||||
kubectl get pods pod1
|
||||
kubectl get po pod1
|
||||
```
|
||||
|
||||
* `NAME`: リソースの名前を指定します。名前は大文字と小文字を区別します。`kubectl get pods`のように名前が省略された場合は、すべてのリソースの詳細が表示されます。
|
||||
|
||||
@@ -49,7 +49,7 @@ kubectl [command] [TYPE] [NAME] [flags]
|
||||
|
||||
* リソースを1つ以上のファイルで指定する場合は、`-f file1 -f file2 -f file<#>`とします。
|
||||
|
||||
* 特に設定ファイルについては、YAMLの方がより使いやすいため、[JSONではなくYAMLを使用してください](/docs/concepts/configuration/overview/#general-configuration-tips)。<br/>
|
||||
* 特に設定ファイルについては、YAMLの方がより使いやすいため、[JSONではなくYAMLを使用してください](/ja/docs/concepts/configuration/overview/#一般的な設定のtips)。<br/>
|
||||
例: `kubectl get pod -f ./pod.yaml`
|
||||
|
||||
* `flags`: オプションのフラグを指定します。例えば、`-s`または`--server`フラグを使って、Kubernetes APIサーバーのアドレスやポートを指定できます。<br/>
|
||||
@@ -64,42 +64,59 @@ kubectl [command] [TYPE] [NAME] [flags]
|
||||
|
||||
以下の表に、`kubectl`のすべての操作の簡単な説明と一般的な構文を示します。
|
||||
|
||||
操作 | 構文 | 説明
|
||||
操作 | 構文 | 説明
|
||||
-------------------- | -------------------- | --------------------
|
||||
`alpha`| `kubectl alpha SUBCOMMAND [flags]` | アルファ機能に該当する利用可能なコマンドを一覧表示します。これらの機能は、デフォルトではKubernetesクラスターで有効になっていません。
|
||||
`annotate` | <code>kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]</code> | 1つ以上のリソースのアノテーションを、追加または更新します。
|
||||
`api-versions` | `kubectl api-versions [flags]` | 利用可能なAPIバージョンを表示します。
|
||||
`api-resources` | `kubectl api-resources [flags]` | 利用可能なAPIリソースを一覧表示します。
|
||||
`api-versions` | `kubectl api-versions [flags]` | 利用可能なAPIバージョンを一覧表示します。
|
||||
`apply` | `kubectl apply -f FILENAME [flags]`| ファイルまたは標準出力から、リソースの設定変更を適用します。
|
||||
`attach` | `kubectl attach POD -c CONTAINER [-i] [-t] [flags]` | 実行中のコンテナにアタッチして、出力ストリームを表示するか、コンテナ(標準入力)と対話します。
|
||||
`auth` | `kubectl auth [flags] [options]` | 認可を検査します。
|
||||
`autoscale` | <code>kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags]</code> | ReplicationControllerで管理されているPodのセットを、自動的にスケールします。
|
||||
`certificate` | `kubectl certificate SUBCOMMAND [options]` | 証明書のリソースを変更します。
|
||||
`cluster-info` | `kubectl cluster-info [flags]` | クラスター内のマスターとサービスに関するエンドポイント情報を表示します。
|
||||
`completion` | `kubectl completion SHELL [options]` | 指定されたシェル(bashまたはzsh)のシェル補完コードを出力します。
|
||||
`config` | `kubectl config SUBCOMMAND [flags]` | kubeconfigファイルを変更します。詳細は、個々のサブコマンドを参照してください。
|
||||
`convert` | `kubectl convert -f FILENAME [options]` | 異なるAPIバージョン間で設定ファイルを変換します。YAMLとJSONに対応しています。
|
||||
`cordon` | `kubectl cordon NODE [options]` | Nodeをスケジュール不可に設定します。
|
||||
`cp` | `kubectl cp <file-spec-src> <file-spec-dest> [options]` | コンテナとの間でファイルやディレクトリをコピーします。
|
||||
`create` | `kubectl create -f FILENAME [flags]` | ファイルまたは標準出力から、1つ以上のリソースを作成します。
|
||||
`delete` | <code>kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags]</code> | ファイル、標準出力、またはラベルセレクター、リソースセレクター、リソースを指定して、リソースを削除します。
|
||||
`describe` | <code>kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags]</code> | 1つ以上のリソースの詳細な状態を表示します。
|
||||
`diff` | `kubectl diff -f FILENAME [flags]`| ファイルまたは標準出力と、現在の設定との差分を表示します。
|
||||
`drain` | `kubectl drain NODE [options]` | メンテナンスの準備のためにNodeをdrainします。
|
||||
`edit` | <code>kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags]</code> | デファルトのエディタを使い、サーバー上の1つ以上のリソースリソースの定義を編集し、更新します。
|
||||
`exec` | `kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]` | Pod内のコンテナに対して、コマンドを実行します。
|
||||
`explain` | `kubectl explain [--recursive=false] [flags]` | 様々なリソースのドキュメントを取得します。例えば、Pod、Node、Serviceなどです。
|
||||
`expose` | <code>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]</code> | ReplicationController、Service、Podを、新しいKubernetesサービスとして公開します。
|
||||
`get` | <code>kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]</code> | 1つ以上のリソースを表示します。
|
||||
`kustomize` | `kubectl kustomize <dir> [flags] [options]` | kustomization.yamlファイル内の指示から生成されたAPIリソースのセットを一覧表示します。引数はファイルを含むディレクトリのPath,またはリポジトリルートに対して同じ場所を示すパスサフィックス付きのgitリポジトリのURLを指定しなければなりません。
|
||||
`label` | <code>kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]</code> | 1つ以上のリソースのラベルを、追加または更新します。
|
||||
`logs` | `kubectl logs POD [-c CONTAINER] [--follow] [flags]` | Pod内のコンテナのログを表示します。
|
||||
`options` | `kubectl options` | すべてのコマンドに適用されるグローバルコマンドラインオプションを一覧表示します。
|
||||
`patch` | <code>kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags]</code> | Strategic Merge Patchの処理を使用して、リソースの1つ以上のフィールドを更新します。
|
||||
`port-forward` | `kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]` | 1つ以上のリーカルポートを、Podに転送します。
|
||||
`plugin` | `kubectl plugin [flags] [options]` | プラグインと対話するためのユーティリティを提供します。
|
||||
`port-forward` | `kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]` | 1つ以上のローカルポートを、Podに転送します。
|
||||
`proxy` | `kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]` | Kubernetes APIサーバーへのプロキシーを実行します。
|
||||
`replace` | `kubectl replace -f FILENAME` | ファイルや標準出力から、リソースを置き換えます。
|
||||
`rolling-update` | <code>kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [flags]</code> | 指定されたReplicationControllerとそのPodを徐々に置き換えることで、ローリングアップデートを実行します。
|
||||
`run` | `kubectl run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=server|client|none] [--overrides=inline-json] [flags]` | 指定したイメージを、クラスタ上で実行します。
|
||||
`scale` | <code>kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags]</code> | していしたReplicationControllerのサイズを更新します。
|
||||
`rollout` | `kubectl rollout SUBCOMMAND [options]` | リソースのロールアウトを管理します。有効なリソースには、Deployment、DaemonSetとStatefulSetが含まれます。
|
||||
`run` | <code>kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client|none] [--overrides=inline-json] [flags]</code> | 指定したイメージを、クラスタ上で実行します。
|
||||
`scale` | <code>kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags]</code> | 指定したReplicationControllerのサイズを更新します。
|
||||
`set` | `kubectl set SUBCOMMAND [options]` | アプリケーションリソースを設定します。
|
||||
`taint` | `kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N [options]` | 1つ以上のNodeのtaintを更新します。
|
||||
`top` | `kubectl top [flags] [options]` | リソース(CPU/メモリー/ストレージ)の使用量を表示します。
|
||||
`uncordon` | `kubectl uncordon NODE [options]` | Nodeをスケジュール可に設定します。
|
||||
`version` | `kubectl version [--client] [flags]` | クライアントとサーバーで実行中のKubernetesのバージョンを表示します。
|
||||
`wait` | <code>kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available] [options]</code> | 実験中の機能: 1つ以上のリソースが特定の状態になるまで待ちます。
|
||||
|
||||
コマンド操作の詳細については、[kubectl](/docs/user-guide/kubectl/)リファレンスドキュメントを参照してください。
|
||||
コマンド操作について詳しく知りたい場合は、[kubectl](/docs/reference/kubectl/kubectl/)リファレンスドキュメントを参照してください。
|
||||
|
||||
## リソースタイプ {#resource-types}
|
||||
|
||||
以下の表に、サポートされているすべてのリソースと、省略されたエイリアスの一覧を示します。
|
||||
|
||||
(この出力は`kubectl api-resources`から取得でき、Kubernetes 1.13.3時点で正確です。)
|
||||
(この出力は`kubectl api-resources`から取得でき、Kubernetes 1.13.3時点で正確でした。)
|
||||
|
||||
| リソース名 | 短縮名 | APIグループ | 名前空間に属するか | リソースの種類 |
|
||||
|---|---|---|---|---|
|
||||
@@ -155,7 +172,7 @@ kubectl [command] [TYPE] [NAME] [flags]
|
||||
|
||||
## 出力オプション
|
||||
|
||||
ある特定のコマンドの出力に対してフォーマットやソートを行う方法については、以下の節を参照してください。どのコマンドが様々な出力オプションをサポートしているかについては、[kubectl](/docs/user-guide/kubectl/)リファレンスドキュメントをご覧ください。
|
||||
ある特定のコマンドの出力に対してフォーマットやソートを行う方法については、以下の節を参照してください。どのコマンドが様々な出力オプションをサポートしているかについては、[kubectl](/docs/reference/kubectl/kubectl/)リファレンスドキュメントをご覧ください。
|
||||
|
||||
### 出力のフォーマット
|
||||
|
||||
@@ -188,13 +205,12 @@ kubectl [command] [TYPE] [NAME] -o <output_format>
|
||||
kubectl get pod web-pod-13je7 -o yaml
|
||||
```
|
||||
|
||||
各コマンドでサポートされている出力フォーマットの詳細については、[kubectl](/docs/user-guide/kubectl/)リファレンスドキュメントを参照してください。
|
||||
各コマンドでサポートされている出力フォーマットの詳細については、[kubectl](/docs/reference/kubectl/kubectl/)リファレンスドキュメントを参照してください。
|
||||
|
||||
#### カスタムカラム {#custom-columns}
|
||||
|
||||
カスタムカラムを定義して、必要な詳細のみをテーブルに出力するには、`custom-columns`オプションを使います。カスタムカラムをインラインで定義するか、`-o custom-columns=<spec>`または`-o custom-columns-file=<filename>`のようにテンプレートファイルを使用するかを選択できます。
|
||||
|
||||
|
||||
##### 例
|
||||
|
||||
インラインで定義する例は、以下の通りです。
|
||||
@@ -215,10 +231,9 @@ kubectl get pods <pod-name> -o custom-columns-file=template.txt
|
||||
NAME RSRC
|
||||
metadata.name metadata.resourceVersion
|
||||
```
|
||||
|
||||
どちらのコマンドを実行した場合でも、以下の結果を得ます。
|
||||
|
||||
```shell
|
||||
```
|
||||
NAME RSRC
|
||||
submit-queue 610995
|
||||
```
|
||||
@@ -229,22 +244,21 @@ submit-queue 610995
|
||||
つまり、与えられた任意のリソースについて、サーバーはそのリソースに関連する列や行を返し、クライアントが表示できるようにします。
|
||||
これにより、サーバーが表示の詳細をカプセル化することで、同一クラスターに対して使用されているクライアント間で、一貫した人間が読みやすい出力が可能です。
|
||||
|
||||
この機能は、`kubectl`1.11以降ではデフォルトで有効になっています。無効にするには、`kubectl get`コマンドに`--server-print=false`フラグを追加します。
|
||||
この機能は、デフォルトで有効になっています。無効にするには、`kubectl get`コマンドに`--server-print=false`フラグを追加します。
|
||||
|
||||
##### 例
|
||||
|
||||
Podの状態に関する情報を表示するには、以下のようなコマンドを使用します。
|
||||
|
||||
|
||||
```shell
|
||||
kubectl get pods <pod-name> --server-print=false
|
||||
```
|
||||
|
||||
以下のように出力されます。
|
||||
|
||||
```shell
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
pod-name 1/1 Running 0 1m
|
||||
```
|
||||
NAME AGE
|
||||
pod-name 1m
|
||||
```
|
||||
|
||||
### オブジェクトリストのソート
|
||||
@@ -315,6 +329,7 @@ kubectl describe pods/<pod-name>
|
||||
|
||||
# ReplicationController <rc-name>が管理しているすべてのPodの詳細を表示します。
|
||||
# ReplicationControllerによって作成された任意のPodには、ReplicationControllerの名前がプレフィックスとして付与されます。
|
||||
kubectl describe pods <rc-name>
|
||||
|
||||
# すべてのPodの詳細を表示します。
|
||||
kubectl describe pods
|
||||
@@ -330,8 +345,8 @@ kubectl describe pods
|
||||
# pod.yamlファイルで指定されたタイプと名前を用いて、Podを削除します。
|
||||
kubectl delete -f pod.yaml
|
||||
|
||||
# name=<label-name>というラベルを持つPodとServiceをすべて削除します。
|
||||
kubectl delete pods,services -l name=<label-name>
|
||||
# '<label-key>=<label-value>'というラベルを持つPodとServiceをすべて削除します。
|
||||
kubectl delete pods,services -l <label-key>=<label-value>
|
||||
|
||||
# 初期化されていないPodを含む、すべてのPodを削除します。
|
||||
kubectl delete pods --all
|
||||
@@ -341,14 +356,13 @@ kubectl delete pods --all
|
||||
|
||||
```shell
|
||||
# Pod <pod-name>から、'date'を実行している時の出力を取得します。デフォルトでは、最初のコンテナから出力されます。
|
||||
kubectl exec <pod-name> date
|
||||
kubectl exec <pod-name> -- date
|
||||
|
||||
# Pod <pod-name>のコンテナ <container-name>から、'date'を実行している時の出力を取得します。
|
||||
kubectl exec <pod-name> -c <container-name> date
|
||||
kubectl exec <pod-name> -c <container-name> -- date
|
||||
|
||||
# インタラクティブな TTY を取得し、Pod <pod-name>から/bin/bashを実行します。デフォルトでは、最初のコンテナから出力されます。
|
||||
Get an interactive TTY and run /bin/bash from pod <pod-name>. By default, output is from the first container.
|
||||
kubectl exec -ti <pod-name> /bin/bash
|
||||
kubectl exec -ti <pod-name> -- /bin/bash
|
||||
```
|
||||
|
||||
`kubectl logs` - Pod内のコンテナのログを表示します。
|
||||
@@ -379,16 +393,20 @@ cat service.yaml | kubectl diff -f -
|
||||
# 任意の言語でシンプルなプラグインを作成し、生成される実行可能なファイルに
|
||||
# プレフィックス"kubectl-"で始まる名前を付けます。
|
||||
cat ./kubectl-hello
|
||||
#!/bin/bash
|
||||
```
|
||||
```shell
|
||||
#!/bin/sh
|
||||
|
||||
# このプラグインは、"hello world"という単語を表示します。
|
||||
echo "hello world"
|
||||
|
||||
# プラグインを書いたら、実行可能にします。
|
||||
sudo chmod +x ./kubectl-hello
|
||||
```
|
||||
プラグインを書いたら、実行可能にします。
|
||||
```bash
|
||||
chmod a+x ./kubectl-hello
|
||||
|
||||
# さらに、PATH内の場所に移動させます。
|
||||
sudo mv ./kubectl-hello /usr/local/bin
|
||||
sudo chown root:root /usr/local/bin
|
||||
|
||||
# これでkubectlプラグインを作成し、"インストール"できました。
|
||||
# 通常のコマンドのようにkubectlから呼び出すことで、プラグインを使用できます。
|
||||
@@ -399,14 +417,16 @@ hello world
|
||||
```
|
||||
|
||||
```shell
|
||||
# 単純にPATHから削除することで、プラグインを"アンインストール"できます。
|
||||
# 配置したPATHのフォルダから削除することで、プラグインを"アンインストール"できます。
|
||||
sudo rm /usr/local/bin/kubectl-hello
|
||||
```
|
||||
|
||||
`kubectl`で利用可能なプラグインをすべて表示するには、以下のように`kubectl plugin list`サブコマンドを使用します。
|
||||
`kubectl`で利用可能なプラグインをすべて表示するには、`kubectl plugin list`サブコマンドを使用してください。
|
||||
|
||||
```shell
|
||||
kubectl plugin list
|
||||
```
|
||||
出力は以下のようになります。
|
||||
```
|
||||
The following kubectl-compatible plugins are available:
|
||||
|
||||
@@ -414,9 +434,10 @@ The following kubectl-compatible plugins are available:
|
||||
/usr/local/bin/kubectl-foo
|
||||
/usr/local/bin/kubectl-bar
|
||||
```
|
||||
|
||||
`kubectl plugin list`コマンドは、実行不可能なプラグインや、他のプラグインの影に隠れてしまっているプラグインなどについて、警告することもできます。例えば、以下のようになります。
|
||||
```shell
|
||||
# このコマンドで、実行不可能なプラグインや、他のプラグインの影に隠れてしまっているプラグインなどについて、警告することもできます。
|
||||
sudo chmod -x /usr/local/bin/kubectl-foo
|
||||
sudo chmod -x /usr/local/bin/kubectl-foo # 実行権限を削除します。
|
||||
kubectl plugin list
|
||||
```
|
||||
```
|
||||
@@ -434,14 +455,19 @@ error: one plugin warning was found
|
||||
|
||||
```shell
|
||||
cat ./kubectl-whoami
|
||||
```
|
||||
次の例では、下記の内容を含んだ`kubectl-whoami`が既に作成済であることを前提としています。
|
||||
The next few examples assume that you already made `kubectl-whoami` have
|
||||
the following contents:
|
||||
```shell
|
||||
#!/bin/bash
|
||||
|
||||
# このプラグインは、`kubectl config`コマンドを使って
|
||||
# 現在選択されているコンテキストに基づいて、現在のユーザーに関する情報を提供します。
|
||||
kubectl config view --template='{{ range .contexts }}{{ if eq .name "'$(kubectl config current-context)'" }}Current user: {{ .context.user }}{{ end }}{{ end }}'
|
||||
kubectl config view --template='{{ range .contexts }}{{ if eq .name "'$(kubectl config current-context)'" }}Current user: {{ printf "%s\n" .context.user }}{{ end }}{{ end }}'
|
||||
```
|
||||
|
||||
上記のプラグインを実行すると、以下のように、KUBECONFIGファイルの中で現在選択されているユーザーを含む出力が得られます。
|
||||
上記のコマンドを実行すると、KUBECONFIGファイル内のカレントコンテキストのユーザーを含んだ出力を得られます。
|
||||
|
||||
```shell
|
||||
# ファイルを実行可能にします。
|
||||
@@ -454,10 +480,8 @@ kubectl whoami
|
||||
Current user: plugins-user
|
||||
```
|
||||
|
||||
プラグインについてより詳しく知りたい場合は、[example cli plugin](https://github.com/kubernetes/sample-cli-plugin)をご覧ください。
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
[kubectl](/docs/reference/generated/kubectl/kubectl-commands/)を使い始めてください。
|
||||
* [kubectl](/docs/reference/generated/kubectl/kubectl-commands/)を使い始めてください。
|
||||
|
||||
* プラグインについてより詳しく知りたい場合は, [example cli plugin](https://github.com/kubernetes/sample-cli-plugin)を御覧ください。
|
||||
|
||||
Reference in New Issue
Block a user