Kubernetes コマンドライン ツール kubectl は、Kubernetes クラスターに対してコマンドを実行するために使用されます。 kubectl を使用して、サービスのクラスター リソースを検査および管理し、ログを表示します。 Kubernetes クラスターに関する情報を取得するために一般的に使用されるコマンドは次のとおりです。
- kubectl get 指定された API オブジェクトに関する情報を表示します。
- kubectl 記述 指定された API オブジェクトに関する詳細を提供します。
- kubectl ログ コンテナからのログ出力を表示します。
kubectl ツールの使用方法が不明な場合は、kubectl help および kubectl
kubectl コマンドの実行中に以下のエラーが発生した場合:
kubectl: command not found
選択したディストリビューションに従って、以下のパッケージをインストールしてみてください。
分布 | コマンド |
---|---|
OS X | brew install kubernetes-cli |
Debian | apt-get install kubernetes-client |
CentOS | yum install kubernetes-client |
Fedora | dnf install kubernetes-client |
kubectl コマンドの例
1. リソースに関する情報をより詳細に一覧表示する:
$ kubectl get pod|service|deployment|ingress|... -o wide
2. 指定されたポッドをラベル「unhealthy」と値「true」で更新します。
$ kubectl label pods name unhealthy=true
3. さまざまなタイプのすべてのリソースをリストします:
$ kubectl get all
4. ノードまたはポッドのリソース (CPU/メモリ/ストレージ) の使用状況を表示します。
$ kubectl top pod|node
5. マスター サービスとクラスター サービスのアドレスを出力します。
$ kubectl cluster-info
6. 特定のフィールドの説明を表示する:
$ kubectl explain pods.spec.containers
7. Pod または指定されたリソース内のコンテナーのログを出力します。
$ kubectl logs pod_name
8. 既存のポッドでコマンドを実行します:
$ kubectl exec pod_name -- ls /
9. exec コマンドを使用して、実行中のコンテナでコマンドを実行することもできます:
$ kubectl exec -it pod_name -- bash
10. コンテナー内で bash やその他の端末を使用できない場合は、実行中のプロセスにいつでも接続できます。
$ kubectl attach -it pod_name
11. cp コマンドを使用して、コンテナーとの間でファイルをコピーすることもできます:
$ kubectl cp [pod-name]:[/path/to/remote/file] [/path/to/local/file]
12. ネットワーク経由で Pod にアクセスする場合は、port-forward コマンドを使用して、ネットワーク トラフィックをローカル マシンから Pod に転送できます。
$ kubectl port-forward [pod-name] 8080:80
13. Kubernetes イベントを表示する場合は、kubectl get events コマンドを使用して、特定の名前空間内のすべてのオブジェクトに関する最新の 10 個のイベントのリストを表示できます。
$ kubectl get events
14. クラスターがリソースをどのように使用しているかに関心がある場合は、top コマンドを使用して、ノードまたは Pod で使用されているリソースのリストを表示できます。このコマンド:
$ kubectl top nodes
15. obj.yaml に単純なオブジェクトが格納されているとします。 kubectl を使用して Kubernetes でこのオブジェクトを作成するには、以下を実行します。
$ kubectl apply -f obj.yaml
16. 同様に、オブジェクトに変更を加えた後、apply コマンドを再度使用してオブジェクトを更新できます。
$ kubectl apply -f obj.yaml
17. オブジェクトを削除したい場合は、以下を実行するだけです:
$ kubectl delete -f obj.yaml
18. ラベルと注釈はオブジェクトのタグです。たとえば、bar という名前の Pod に color=red ラベルを追加するには、次のコマンドを実行します:
$ kubectl label pods bar color=red
19. サポートされている Kubernetes オブジェクトのタイプごとにサポートされているフィールドのリストを表示したい場合は、explain コマンドを使用できます。
$ kubectl explain pods
20. 特定のオブジェクトに関するより詳細な情報に関心がある場合は、describe コマンドを使用してください:
$ kubectl describe [resource-name] [obj-name]