詳細kubectlコマンドラインツールの使用方法

ユーザーは、コマンドラインを介してクラスタKubernetesを操作することを可能にするクライアントCLIツールとしてkubectl。サブコマンドおよび使用kubectlのこのセクションでは、詳細に説明します。

2.2.1 kubectlの使用法の概要

 kubectlコマンドライン構文は次のとおりです。

$ kubectl [command] [TYPE] [NAME] [flags]

 ここで、コマンド、TYPE、NAME、フラグは以下の意味を有します。

  • (1)コマンド:サブコマンドコマンド操作Kubernetesクラスタリソースオブジェクトのために、そのようなように作成、削除、記述し、取得し、適用しています。
  • (2)TYPE:リソースオブジェクトの種類、大文字と小文字を区別し、缶、又は複数の短い形は単数形で表現しました。TYPEの例は、以下の3つが等価です。
$ kubectl get pod pod1
$ kubectl get pods pod1
$ kubectl get po pod1
  • (3)名称:リソース・オブジェクトの名前は、大文字と小文字が区別されます。名前を指定しない場合、システムは、例えば$ kubectl GETポッドは、すべてのポッドのリストを返します、TYPEに属するすべてのオブジェクトのリストを返します。
  • (4)フラグ:オプションのパラメータkubectlサブコマンド、例えば「-s」URLアドレス指定apiserver代わりにデフォルト値を使用します。

kubectlリソース表2.9に示すように動作可能なオブジェクトタイプ。
<センター>表2.9 kubectl動作可能なリソース・オブジェクト・タイプ</センター>

リソース・オブジェクトの名前 略語
クラスタ
componentstatuses CS
configmaps CM
daemonsets DS
展開 配備します
エンドポイント EP
イベント EV
horizo​​ntalpodautoscalers HPA
ingresses ING
ジョブズ
limitranges 限界
ノード いいえ
名前空間 NS
networkpolicies
statefulsets
persistentvolumeclaims PVC
persistentvolumes PV
ポッド PO
podsecuritypolicies PSP
podtemplate
replicasets RS
replicationcontrollers RC
resourcequotas クォータ
cronジョブ
秘密
serviceaccounts
サービス SVC
storageclasses SC
thirdpartyresources

 それは同時に、コマンドラインのリソース複数のオブジェクトを操作することができ、複数名のタイプの組み合わせは、以下のように例があります。

  • より多くの情報へのアクセスのポッド:
$ kubectl get pods pod1 pod2
  • さまざまなオブジェクトから情報を取得します。
$ kubectl get pod/pod1 rc/rc1
  • 同時に複数のアプリケーションファイルYAML、複数-fファイルのパラメータとして表現。
$ kubectl get pod -f pod1.yaml -f pod2.yaml
$ kubectl create -f pod1.yaml -f rc1.yaml -f service1.yaml 

2.2.4 kubectl出力形式

 Kubectlコマンドフォーマット表示、-oパラメータで指定された出力フォーマットの複数の結果:

$ kubectl [command] [TYPE] [NAME] -o=<output_format>

 サブコマンドの出力は、表2.12に示すように、選択可能な出力フォーマット。

出力フォーマット 説明
-o =カスタム列= <スペック> カンマで区切られたカスタムの出力列名、
-o =カスタムcolimnsファイル= <ファイル名> ファイル出力からカスタム列名を取得します。
ああ= JSON JSON形式で結果を表示
-o = jsonpath = <テンプレート> 出力jsonpath表現定義されたフィールド情報
-o = jsonpathファイル= <ファイル名> ファイルから定義されたフィールド情報出力jsonpath表現
-o =名前 出力リソースオブジェクトの名前のみ
-o =ワイド 出力の追加情報。ポッドのために、出力ノード名ポッドが位置しています
O = YAML 結果ショー形式のYAML

 一般的な出力形式は、以下に例示します。
 (1)詳細ポッドを表示します。

$ kubectl get pod <pod-name> -o wide 

 (2)詳細ポッドYAMLフォーマットを表示するには:

$ kubectl get pod <pod-name> -o yaml 

 (3)ポッドのカラム名をカスタマイズするための情報を表示:

$ kubectl get pod <pod-name> -o=custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion 

 (4)出力ファイルのカスタムの列名に基づいて:

$ kubectl get pods <pod-name> -o=custom-columns-file=template.txt

 次のようにTemplate.txtファイルの内容は以下のとおりです。

NAME                RSRC
metadata.name       metadata.resourceVersion

 出力

$ kubectl get pods chaosfomoney-deployment-64ccd59bdc-h72gh -o=custom-columns-file=template.txt 
NAME                                       RSRC
chaosfomoney-deployment-64ccd59bdc-h72gh   101119

 さらに、出力は、フィールドでソートすることができ、式でjsonpathパラメータ--sort-によって指定されます。

$ kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>

 例えば、名前でソートするには:

$ kubectl get pods
NAME                                       READY     STATUS    RESTARTS AGE chaosfomoney-deployment-64ccd59bdc-h72gh 1/1 Running 0 1d chaosfomoney-deployment-64ccd59bdc-spnpj 1/1 Running 0 1d chaosfomoney-deployment-64ccd59bdc-xhnjr 1/1 Running 0 1d $ kubectl get pods --sort-by=.metadata.name NAME READY STATUS RESTARTS AGE chaosfomoney-deployment-64ccd59bdc-h72gh 1/1 Running 0 1d chaosfomoney-deployment-64ccd59bdc-spnpj 1/1 Running 0 1d chaosfomoney-deployment-64ccd59bdc-xhnjr 1/1 Running 0 1d 

2.2.5 kubectl動作例

 このセクションでは、いくつかの頻繁に使用されるkubectl動作を例に挙げて説明します。

1.リソースオブジェクトを作成します。

 RC時は、あなたがサービスを作成し、YAMLプロファイルに従って:

$ kubectl create -f my-service.yaml -f my-rc.yaml 

 根据<directory>目录下所有.yaml、.yml、.json文件的定义进行创建操作;

$ kubectl create -f <directory>

2. 查看资源对象

 查看所有Pod列表:

$ kubectl get pods

 查看rc和service列表:

$ kubectl get rc,service

3. 描述资源对象

 显示Node的详细信息:

$ kubectl describe nodes <node-name>

 显示Pod的详细信息

$ kubectl describe pods <pod-name>

 显示由RC管理的Pod的信息:

$ kubectl describe pods <rc-name>

4.删除资源对象

 基于pod.yaml定义的名称删除Pod:

$ kubectl delete -f pod.yaml

 删除所有包含某个label的Pod和Service:

$ kubectl delete pod,service -l name=<label-name>

 删除所有Pod:

$ kubectl delete pods --all

5. 执行容器的命令

 执行Pod的date命令,默认使用Pod的第1个容器执行:

$ kubectl exec <pod-name> date

 指定Pod中某个容器执行date命令:

$ kubectl exec <pod-name> -c <container-name> date 

 通过bash获得Pod中某个容器的TTY,相当于登陆容器:

$ kubectl exec -ti <pod-name> -c <container-name> /bin/bash 

查看容器的日志

 查看容器输出到stdout的日志:

$ kubectl logs <pod-name>

 跟踪查看容器的日志,相当于tail -f命令的结果:

$ kubectl logs -f <pod-name> -c <container-name>

おすすめ

転載: www.cnblogs.com/sea520/p/11404864.html