Kubectlの基本①

Kubectlは、Kubernetesクラスターに対してコマンドを実行するためのコマンドラインインターフェイスです。

構文

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

単一のポッドの詳細をYAML形式のオブジェクトとして出力

kubectl get pod pod-2019-08-07 -o yaml

kubectl get -1つ以上のリソースをリストします。

kubectl get pods
kubectl get pods -o wide

kubectl describe -1つ以上のリソースの詳細な状態を表示します。

kubectl describe nodes <node-name>
kubectl describe pods/<pod-name>

kubectl exec -ポッド内のコンテナーに対してコマンドを実行します。

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

kubectl logs -ポッド内のコンテナーのログを印刷します。

kubectl logs <pod-name>
kubectl logs -f <pod-name>

--------------------------------------------

kubernetes チュートリアル実行

--------------------------------------------

https://kubernetes.io/docs/tutorials/hello-minikube/

 

■Minikubeクラスターを作成する

ターミナルを起動し、ブラウザ上でkubectlを起動する

 

kubectl createコマンドを使用して、ポッドを管理するデプロイメントを作成します。

kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node

出力:

deployment.apps/hello-node created

 

展開を表示します。

kubectl get deployments

出力:

NAME READY UP-TO-DATE AVAILABLE AGE
hello-node 1/1 1 1 55s

 

ポッドを表示します。

kubectl get pods

出力:

NAME READY STATUS RESTARTS AGE
hello-node-55b49fb9f8-g577z 1/1 Running 0 8m17s

 

■サービスを作成する

作成する前のサービスを表示します。

kubectl get services

出力:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6m40s

 

kubectl expose次のコマンドを使用して、ポッドをパブリックインターネットに公開します

kubectl expose deployment hello-node --type=LoadBalancer --port=8080

作成したサービスを表示します。

kubectl get services

出力:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.102.123.144 <pending> 8080:32543/TCP 5s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6m40s