はじめに
Kubectlは、Kubernetesクラスターを制御するためのコマンドのセットです。すべてのKubernetesコマンドにはAPIエンドポイントがあり、kubectlの主な目的はAPIへのHTTPリクエストを実行することです。
自分でHTTPリクエストを発行することは可能ですが(たとえば、curlを使用して)、kubectlは、このプロセスをより快適で簡単にするように設計されています。
このチュートリアルでは、すべての一般的なkubectl操作について説明し、構文に慣れるための例を示します。
kubectlコマンドのリスト
kubectlを使用します Kubernetesを使用する際のクイックリファレンスとして以下にリストされているコマンド。
リソースの一覧表示
1つ以上のポッド、レプリケーションコントローラー、サービス、またはデーモンセットを一覧表示するには、 kubectl getを使用します コマンド。
すべての名前空間のプレーンテキストリストを生成します:
kubectl get namespaces すべてのポッドのプレーンテキストリストを表示します:
kubectl get pods ノード名などの情報を含む、すべてのポッドの詳細なプレーンテキストリストを生成します。
kubectl get pods -o wide 特定のノードサーバーで実行されているすべてのポッドのリストを表示します。
kubectl get pods --field-selector=spec.nodeName=[server-name] 特定のレプリケーションコントローラーをプレーンテキストで一覧表示します:
kubectl get replicationcontroller [replication-controller-name] すべてのレプリケーションコントローラーとサービスのプレーンテキストリストを生成します。
kubectl get replicationcontroller,services すべてのデーモンセットのプレーンテキストリストを表示します:
kubectl get daemonset リソースの作成
kubectl createを使用して、サービス、デプロイメント、ジョブ、名前空間などのリソースを作成します コマンド。
たとえば、新しい名前空間を作成するには、次のように入力します。
kubectl create namespace [namespace-name] JSONまたはYAMLファイルからリソースを作成します:
kubectl create -f [filename] リソースの適用と更新
リソースを適用または更新するには、 kubectl applyを使用します 指図。この操作のソースは、ファイルまたは標準入力( stdin )のいずれかです。 。
[service-name] .yamlファイルに含まれている定義を使用して新しいサービスを作成します:
kubectl apply -f [service-name].yaml [controller-name] .yamlファイルに含まれている定義を使用して新しいレプリケーションコントローラーを作成します:
kubectl apply -f [controller-name].yaml ディレクトリ内の.yaml、.yml、または.jsonファイルで定義されたオブジェクトを作成します:
kubectl apply -f [directory-name]
kubectl editを使用して、テキストエディタでリソースを構成することにより、リソースを更新できます。 指図。このコマンドは、 kubectl getの組み合わせです。 およびkubectl apply 。
たとえば、サービスを編集するには、次のように入力します。
kubectl edit svc/[service-name] このコマンドは、デフォルトのエディターでファイルを開きます。別のエディターを使用するには、コマンドの前でエディターを指定します。
KUBE_EDITOR=”[editor-name]” kubectl edit svc/[service-name] リソースの状態の表示
任意の数のリソースの状態を詳細に表示するには、 kubectl describeを使用します 指図。デフォルトでは、出力には初期化されていないリソースもリストされます。
特定のノードに関する詳細を表示する:
kubectl describe nodes [node-name] 特定のポッドに関する詳細を表示する:
kubectl describe pods [pod-name] 名前とタイプがpod.jsonにリストされているポッドに関する詳細を表示します :
kubectl describe -f pod.json 特定のレプリケーションコントローラーによって管理されるすべてのポッドの詳細を表示します:
kubectl describe pods [replication-controller-name] すべてのポッドの詳細を表示する:
kubectl describe pods リソースの削除
ファイルまたはstdinからリソースを削除するには、 kubectl deleteを使用します コマンド。
pod.yamlにリストされている名前とタイプを使用してポッドを削除します:
kubectl delete -f pod.yaml 特定のラベルが付いたすべてのポッドとサービスを削除します:
kubectl delete pods,services -l [label-key]=[label-value] すべてのポッド(初期化されていないポッドを含む)を削除します:
kubectl delete pods --all コマンドの実行
kubectl execを使用します コンテナでコマンドを発行したり、コンテナでシェルを開いたりします。
ポッド内の最初のコンテナで実行されたコマンドからの出力を受信します:
kubectl exec [pod-name] -- [command] ポッド内の特定のコンテナで実行されたコマンドから出力を取得します:
kubectl exec [pod-name] -c [container-name] -- [command] / bin / bashを実行します 特定のポッドから。受信した出力は最初のコンテナからのものです:
kubectl exec -ti [pod-name] -- /bin/bash kubeconfigファイルの変更
kubectl config kubeconfigファイルを表示および変更できます。このコマンドの後には通常、別のサブコマンドが続きます。
現在のコンテキストを表示します:
kubectl config current-context kubeconfigでクラスターエントリを設定します:
kubectl config set-cluster [cluster-name] --server=[server-name] kubeconfigのエントリの設定を解除します:
kubectl config unset [property-name] コンテナログの印刷
ポッド内のコンテナからログを印刷するには、kubectl logsを使用します コマンド。
ログの印刷:
kubectl logs [pod-name] ポッドからログをストリーミングするには、次を使用します:
kubectl logs -f [pod-name] リソースタイプの短い名前
kubectlの一部 上記のコマンドは、長さが原因で不便に思われる場合があります。このため、一般的なkubectlリソースタイプの名前 短いバージョンもあります。
上記のコマンドについて考えてみます。
kubectl create namespace [namespace-name] このコマンドは次のように実行することもできます:
kubectl create ns [namespace-name] kubectlの短縮名の完全なリストは次のとおりです。
| 短い名前 | ロングネーム |
|---|---|
csr | certificatesigningrequests |
cs | componentstatuses |
cm | configmaps |
ds | daemonsets |
deploy | deployments |
ep | endpoints |
ev | events |
hpa | horizontalpodautoscalers |
ing | ingresses |
limits | limitranges |
ns | namespaces |
no | nodes |
pvc | persistentvolumeclaims |
pv | persistentvolumes |
po | pods |
pdb | poddisruptionbudgets |
psp | podsecuritypolicies |
rs | replicasets |
rc | replicationcontrollers |
quota | resourcequotas |
sa | serviceaccounts |
svc | services |
kubectlチートシート
この記事にリストされているすべてのコマンドは、以下の1ページのリファレンスシートにあります。 kubectlコマンドPDFをダウンロードして、後で使用できるように保存します。
チートシートをダウンロード