diff --git a/content/ja/docs/reference/kubectl/cheatsheet.md b/content/ja/docs/reference/kubectl/cheatsheet.md new file mode 100644 index 0000000000000..aad9ab711611f --- /dev/null +++ b/content/ja/docs/reference/kubectl/cheatsheet.md @@ -0,0 +1,385 @@ +--- +title: kubectl Cheat Sheet +content_template: templates/concept +card: + name: reference + weight: 30 +--- + +{{% capture overview %}} + +こちらも参照ください: [Kubectl 概要](/docs/reference/kubectl/overview/) 、 [JsonPath ガイド](/docs/reference/kubectl/jsonpath)。 + +このページは `kubectl` コマンドの概要です。 + +{{% /capture %}} + +{{% capture body %}} + +# kubectl - チートシート + +## Kubectlコマンドの補完 + +### BASH + +```bash +source <(kubectl completion bash) # 現在のbashシェルにコマンド補完を設定するには、最初にbash-completionパッケージをインストールする必要があります。 +echo "source <(kubectl completion bash)" >> ~/.bashrc # bashシェルでのコマンド補完を永続化するために.bashrcに追記します。 +``` + +また、エイリアスを使用している場合にも`kubectl`コマンドを補完することができます。 + +```bash +alias k=kubectl +complete -F __start_kubectl k +``` + +### ZSH + +```bash +source <(kubectl completion zsh) # 現在のzshシェルでコマンド補完を設定する +echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc # zshシェルでのコマンド補完を永続化するために.zshrcに追記します。 +``` + +## Kubectlコンテキストの設定 + +`kubectl`がどのkubernetesクラスターと通信するかを設定します。 +設定ファイル詳細については[kubeconfigを使用した複数クラスターとの認証](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)をご覧ください。 + +```bash +kubectl config view # マージされたkubeconfigの設定を表示。 + +# 複数のkubeconfigファイルを同時に読み込む場合はこのように記述します。 +KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 + +kubectl config view + +# e2eユーザのパスワードを取得。 +kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' + +kubectl config view -o jsonpath='{.users[].name}' # 最初のユーザ名ーを表示 +kubectl config view -o jsonpath='{.users[*].name}' # ユーザー名のリストを表示 +kubectl config get-contexts # コンテキストのリストを表示 +kubectl config current-context # 現在のコンテキストを表示 +kubectl config use-context my-cluster-name # デフォルトのコンテキストをmy-cluster-nameに設定 + +# basic認証をサポートする新たなクラスターをkubeconfigに追加する +kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword + +# 現在のコンテキストでkubectlのサブコマンドのネームスペースを永続的に変更する +kubectl config set-context --current --namespace=ggckad-s2 + +# 特定のユーザー名と名前空間を使用してコンテキストを設定します +kubectl config set-context gce --user=cluster-admin --namespace=foo \ + && kubectl config use-context gce + +kubectl config unset users.foo # ユーザーfooを削除 +``` + +## Apply + +`apply`はkubernetesリソースを定義するファイルを通じてアプリケーションを管理します。 `kubectl apply`を実行して、クラスター内のリソースを作成および更新します。 これは、本番環境でkubernetesアプリケーションを管理する推奨方法です。 +詳しくは[Kubectl Book](https://kubectl.docs.kubernetes.io)をご覧ください。 + + +## Objectの作成 + +kubernetesのマニフェストファイルは、jsonまたはyamlで定義できます。ファイル拡張子として、`.yaml`や`.yml`、`.json`が使えます。 + +```bash +kubectl apply -f ./my-manifest.yaml # リソースの作成する +kubectl apply -f ./my1.yaml -f ./my2.yaml # 複数のファイルからリソースを作成する +kubectl apply -f ./dir # dirディレクトリに存在するマニフェストファイルからリソースを作成する +kubectl apply -f https://git.io/vPieo # urlで公開されているファイルからリソースを作成する +kubectl create deployment nginx --image=nginx # 単一のnginx Deploymentを作成します +kubectl explain pods,svc # PodおよびServiceマニフェストのドキュメントを取得します。 + +# 標準入力から複数のYAMLオブジェクトを作成する + +cat < pod.yaml +kubectl attach my-pod -i # 実行中のコンテナに接続する +kubectl port-forward my-pod 5000:6000 # ローカルマシンのポート5000を、my-podのポート6000に転送します +kubectl exec my-pod -- ls / # 既存のPodでコマンドを実行(単一コンテナの場合) +kubectl exec my-pod -c my-container -- ls / # 既存のPodでコマンドを実行 (複数コンテナがある場合) +kubectl top pod POD_NAME --containers # 特定のPodとそのコンテナのメトリクスを表示します +``` + +## ノードおよびクラスターとの対話処理 + +```bash +kubectl cordon my-node # my-nodeにスケーリングされないように設定 +kubectl drain my-node # メンテナンスの準備としてmy-nodeで動作中のPodを空にする +kubectl uncordon my-node # my-nodeにスケーリングされるように設定 +kubectl top node my-node # 特定のノードのメトリクスを表示 +kubectl cluster-info # kubernetesクラスターのマスターとサービスのアドレスを表示します +kubectl cluster-info dump # 現在のクラスター状態を標準出力にダンプします +kubectl cluster-info dump --output-directory=/path/to/cluster-state # 現在のクラスター状態を/path/to/cluster-stateにダンプします + +# special-userキーとNoScheduleエフェクトを持つTaintが既に存在する場合、その値は指定されたとおりに置き換えられます。 +kubectl taint nodes foo dedicated=special-user:NoSchedule +``` + +### リソースタイプ + +サポートされているすべてのリソースタイプを、それらが[API group](/docs/concepts/overview/kubernetes-api/#api-groups)か[Namespaced](/docs/concepts/overview/working-with-objects/namespaces)、[Kind](/docs/concepts/overview/working-with-objects/kubernetes-objects)に関わらずその短縮名をリストします。 + +```bash +kubectl api-resources +``` + +APIリソースを探索するためのその他の操作: + +```bash +kubectl api-resources --namespaced=true # 名前空間付きの全てのリソースを表示 +kubectl api-resources --namespaced=false # 名前空間のないすべてのリソースを表示 +kubectl api-resources -o name # 全てのリソースを単純な出力(リソース名のみ)で表示 +kubectl api-resources -o wide # 全てのリソースを拡張された形(別名 "wide")で表示 +kubectl api-resources --verbs=list,get # "list"および"get"操作をサポートする全てのリソースを表示 +kubectl api-resources --api-group=extensions # "extensions" APIグループの全てのリソースを表示 +``` + +### 出力のフォーマット + +特定の形式で端末ウィンドウに詳細を出力するには、サポートされている`kubectl`コマンドに`-o`または`--output`フラグを追加します。 + +出力フォーマット | 説明 +---------------- | ----------- +`-o=custom-columns=` | カスタムカラムを使用してコンマ区切りのテーブルを表示します +`-o=custom-columns-file=` | ``ファイル内のカスタムカラムテンプレートを使用してテーブルを表示します +`-o=json` | JSON形式のAPIオブジェクトを出力する +`-o=jsonpath=