Kubernetes-kubectl-commands

提供:Dev Guides
移動先:案内検索

Kubernetes-Kubectlコマンド

*Kubectl* はKubernetesクラスターを制御します。 これは、セットアップが完了したときに任意のマシンのワークステーションで実行されるKubernetesの重要なコンポーネントの1つです。 クラスタ内のノードを管理する機能があります。
*Kubectl* コマンドは、Kubernetesオブジェクトとクラスターの対話と管理に使用されます。 この章では、kubernetesでkubectlを介して使用されるいくつかのコマンドについて説明します。
*kubectl annotate* -リソースの注釈を更新します。
$kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ...
KEY_N = VAL_N [--resource-version = version]

例えば、

kubectl annotate pods tomcat description = 'my frontend'
*kubectl api-versions* -クラスタ上のAPIのサポートされているバージョンを出力します。
$ kubectl api-version;
*kubectl apply* -ファイルまたはstdinでリソースを設定する機能があります。
$ kubectl apply –f <filename>
*kubectl attach* -これは実行中のコンテナに物を添付します。
$ kubectl attach <pod> –c <container>
$ kubectl attach 123456-7890 -c tomcat-conatiner
*kubectl autoscale* -これは、展開、レプリカセット、レプリケーションコントローラーなどのポッドの自動スケーリングに使用されます。
$ kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min = MINPODS] --
max = MAXPODS [--cpu-percent = CPU] [flags]
$ kubectl autoscale deployment foo --min = 2 --max = 10
*kubectl cluster-info* -クラスタ情報を表示します。
$ kubectl cluster-info
*kubectl cluster-info dump* -デバッグと診断のためにクラスターに関する関連情報をダンプします。
$ kubectl cluster-info dump
$ kubectl cluster-info dump --output-directory =/path/to/cluster-state
*kubectl config* -kubeconfigファイルを変更します。
$ kubectl config <SUBCOMMAD>
$ kubectl config –-kubeconfig <String of File name>
*kubectl config current-context* -現在のコンテキストを表示します。
$ kubectl config current-context
#deploys the current context
*kubectl config delete-cluster* -指定されたクラスターをkubeconfigから削除します。
$ kubectl config delete-cluster <Cluster Name>
*kubectl config delete-context* -指定されたコンテキストをkubeconfigから削除します。
$ kubectl config delete-context <Context Name>
*kubectl config get-clusters* -kubeconfigで定義されたクラスターを表示します。
$ kubectl config get-cluster
$ kubectl config get-cluster <Cluser Name>
*kubectl config get-contexts* -1つまたは複数のコンテキストについて説明します。
$ kubectl config get-context <Context Name>
*kubectl config set-cluster* -Kubernetesでクラスターエントリを設定します。
$ kubectl config set-cluster NAME [--server = server] [--certificateauthority =
path/to/certificate/authority] [--insecure-skip-tls-verify = true]
*kubectl config set-context* -kubernetesエントリポイントにコンテキストエントリを設定します。
$ kubectl config set-context NAME [--cluster = cluster_nickname] [--
user = user_nickname] [--namespace = namespace]
$ kubectl config set-context prod –user = vipin-mishra
*kubectl config set-credentials* -kubeconfigでユーザーエントリを設定します。
$ kubectl config set-credentials cluster-admin --username = vipin --
password = uXFGweU9l35qcif
*kubectl config set* -kubeconfigファイルに個々の値を設定します。
$ kubectl config set PROPERTY_NAME PROPERTY_VALUE
*kubectl config unset* -kubectlで特定のコンポーネントの設定を解除します。
$ kubectl config unset PROPERTY_NAME PROPERTY_VALUE
*kubectl config use-context* -kubectlファイルの現在のコンテキストを設定します。
$ kubectl config use-context <Context Name>
*kubectl config view*
$ kubectl config view
$ kubectl config view –o jsonpath='{.users[?(@.name == "e2e")].user.password}'
*kubectl cp* -ファイルとディレクトリをコンテナ間でコピーします。
$ kubectl cp <Files from source> <Files to Destinatiion>
$ kubectl cp/tmp/foo <some-pod>:/tmp/bar -c <specific-container>
*kubectl create* -またはstdinのファイル名でリソースを作成します。 これを行うために、JSONまたはYAML形式が受け入れられます。
$ kubectl create –f <File Name>
$ cat <file name> | kubectl create –f -

同じ方法で、 create コマンドと kubectl を使用して、リストされているように複数のものを作成できます。

  • 配備

  • 名前空間

  • クォータ

  • 秘密のドッカーレジストリ

  • 秘密の

  • 秘密のジェネリック

  • 秘密のTL

  • サービスアカウント

  • サービスclusterip

  • サービスロードバランサー

  • サービスノードポート

    *kubectl delete* -ファイル名、標準入力、リソース、名前でリソースを削除します。
$ kubectl delete –f ([-f FILENAME] | TYPE [(NAME | -l label | --all)])
*kubectl describe* -kubernetesの特定のリソースについて説明します。 リソースまたはリソースのグループの詳細を表示します。
$ kubectl describe <type> <type name>
$ kubectl describe pod tomcat
*kubectl drain* -これは、メンテナンス目的でノードを排出するために使用されます。 メンテナンスのためにノードを準備します。 これにより、ノードが使用不可としてマークされ、作成される新しいコンテナに割り当てられなくなります。
$ kubectl drain tomcat –force
*kubectl edit* -サーバー上のリソースを終了するために使用されます。 これにより、コマンドラインツールを介して受け取ることができるリソースを直接編集できます。
$ kubectl edit <Resource/Name | File Name)
Ex.
$ kubectl edit rc/tomcat
*kubectl exec* -これはコンテナでコマンドを実行するのに役立ちます。
$ kubectl exec POD <-c CONTAINER > -- COMMAND < args...>
$ kubectl exec tomcat 123-5-456 date
*kubectl expose* -これは、ポッド、レプリケーションコントローラー、サービスなどのKubernetesオブジェクトを新しいKubernetesサービスとして公開するために使用されます。 これには、実行中のコンテナまたは *yaml* ファイルから公開する機能があります。
$ kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol = TCP|UDP]
[--target-port = number-or-name] [--name = name] [--external-ip = external-ip-ofservice]
[--type = type]
$ kubectl expose rc tomcat –-port=80 –target-port = 30000
$ kubectl expose –f tomcat.yaml –port = 80 –target-port =
*kubectl get* -このコマンドは、Kubernetesリソースに関するクラスター上のデータを取得できます。
$ kubectl get [(-o|--output=)json|yaml|wide|custom-columns=...|custom-columnsfile=...|
go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...]
(TYPE [NAME | -l label] | TYPE/NAME ...) [flags]

例えば、

$ kubectl get pod <pod name>
$ kubectl get service <Service name>
*kubectl logs* -ポッド内のコンテナのログを取得するために使用されます。 ログを印刷すると、ポッドでコンテナー名を定義できます。 PODにコンテナが1つしかない場合、その名前を定義する必要はありません。
$ kubectl logs [-f] [-p] POD [-c CONTAINER]
Example
$ kubectl logs tomcat.
$ kubectl logs –p –c tomcat.8
*kubectl port-forward* -1つまたは複数のローカルポートをポッドに転送するために使用されます。
$ kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT
[...[LOCAL_PORT_N:]REMOTE_PORT_N]
$ kubectl port-forward tomcat 3000 4000
$ kubectl port-forward tomcat 3000:5000
*kubectl replace* -リソースをファイル名または *stdin* で置き換えることができます。
$ kubectl replace -f FILENAME
$ kubectl replace –f tomcat.yml
$ cat tomcat.yml | kubectl replace –f -
*kubectl rolling-update* -複製コントローラーでローリング更新を実行します。 一度にPODを更新することにより、指定された複製コントローラーを新しい複製コントローラーに置き換えます。
$ kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --
image = NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
$ kubectl rolling-update frontend-v1 –f freontend-v2.yaml
*kubectl rollout* -展開のロールアウトを管理できます。
$ Kubectl rollout <Sub Command>
$ kubectl rollout undo deployment/tomcat

上記とは別に、次のようなロールアウトを使用して複数のタスクを実行できます-

  • ロールアウト履歴

  • ロールアウト一時停止

  • ロールアウト再開

  • ロールアウトステータス

  • ロールアウトの取り消し

    *kubectl run* -Runコマンドには、Kubernetesクラスターでイメージを実行する機能があります。
$ kubectl run NAME --image = image [--env = "key = value"] [--port = port] [--
replicas = replicas] [--dry-run = bool] [--overrides = inline-json] [--command] --
[COMMAND] [args...]
$ kubectl run tomcat --image = tomcat:7.0
$ kubectl run tomcat –-image = tomcat:7.0 –port = 5000
*kubectl scale* -Kubernetes Deployments、ReplicaSet、Replication Controller、またはジョブのサイズをスケーリングします。
$ kubectl scale [--resource-version = version] [--current-replicas = count] --
replicas = COUNT (-f FILENAME | TYPE NAME )
$ kubectl scale –-replica = 3 rs/tomcat
$ kubectl scale –replica = 3 tomcat.yaml
*kubectl set image* -ポッドテンプレートのイメージを更新します。
$ kubectl set image (-f FILENAME | TYPE NAME)
CONTAINER_NAME_1 = CONTAINER_IMAGE_1 ... CONTAINER_NAME_N = CONTAINER_IMAGE_N
$ kubectl set image deployment/tomcat busybox = busybox ngnix = ngnix:1.9.1
$ kubectl set image deployments, rc tomcat = tomcat6.0 --all
*kubectl set resources* -リソースのコンテンツを設定するために使用されます。 ポッドテンプレートを使用して、オブジェクトのリソース/制限を更新します。
$ kubectl set resources (-f FILENAME | TYPE NAME) ([--limits = LIMITS & --
requests = REQUESTS]
$ kubectl set resources deployment tomcat -c = tomcat --
limits = cpu = 200m,memory = 512Mi
*kubectl top node* -CPU/メモリ/ストレージの使用状況を表示します。 topコマンドを使用すると、ノードのリソース消費を確認できます。
$ kubectl top node [node Name]

同じコマンドをポッドでも使用できます。