おそらく、kubenetesのコマンドで一番たたくのではないかと思う「kubectl get」
各種リソースや設定情報などを取得できる。
取得できるリソース
(個人的に)よく使うものは以下の4つ。
これ以外はkubernetesを勉強していくうちに使うことになるだろう。。。
node
クラスタを構成する物理(仮想)ノードを確認できる。
$ kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 7d15h v1.17.3
k8s-worker01 Ready <none> 7d15h v1.17.3
k8s-worker02 Ready <none> 7d15h v1.17.3
pod
デプロイされているpodを確認できる。
$ kubectl get pods
No resources found in default namespace.
オプションを何もつけないと、defaultのnamespaceのpodが表示される。
default以外のpodを確認する場合は、-nオプションでnamespaceを指定する。
$ kubectl -n kube-system get pods
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-77c4b7448-6prr9 1/1 Running 5 7d15h
calico-node-2hc9b 1/1 Running 5 7d15h
calico-node-cgdgk 1/1 Running 5 7d15h
calico-node-tkcz5 1/1 Running 5 7d15h
coredns-6955765f44-55wbn 1/1 Running 5 7d15h
coredns-6955765f44-bhdvr 1/1 Running 5 7d15h
etcd-k8s-master 1/1 Running 5 7d15h
kube-apiserver-k8s-master 1/1 Running 5 7d15h
kube-controller-manager-k8s-master 1/1 Running 5 7d15h
kube-proxy-8pngh 1/1 Running 5 7d15h
kube-proxy-gqt42 1/1 Running 5 7d15h
kube-proxy-pq2fb 1/1 Running 5 7d15h
kube-scheduler-k8s-master 1/1 Running 5 7d15h
metrics-server-fbc46dc5f-9k6kt 1/1 Running 2 24h
ちなみに、pods/pod/poどれでも結果は同じ。
service
デプロイされているserviceを確認できる。
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d15h
ちなみに、services/service/svcどれでも結果は同じ。
-n でnamespaceを指定すると、そのnamespaceのserviceを表示できる。
replicaset
デプロイされているreplicasetを確認できる。
$ kubectl -n sock-shop get replicaset
NAME DESIRED CURRENT READY AGE
carts-5fc45568c4 1 1 1 2d23h
carts-db-64ff6c747f 1 1 1 2d23h
catalogue-69b7ff5bb4 1 1 1 2d23h
catalogue-db-69cf48ff8 1 1 1 2d23h
front-end-6fc8dff6ff 1 1 1 2d23h
orders-74c6b45f4f 1 1 1 2d23h
orders-db-df75f545f 1 1 1 2d23h
payment-7f95f9f77 1 1 1 2d23h
queue-master-85f5644bf5 1 1 1 2d23h
rabbitmq-c7b9db6cc 1 1 1 2d23h
session-db-67fd8d6d7 1 1 1 2d23h
shipping-745b9d8755 1 1 1 2d23h
user-559d7f794f 1 1 1 2d23h
user-db-87f548457 1 1 1 2d23h
オプション
-o wide
デフォルトよりも多くの情報が表示される。
$ kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master Ready master 7d15h v1.17.3 10.20.30.10 <none> CentOS Linux 7 (Core) 3.10.0-1062.12.1.el7.x86_64 docker://19.3.6
k8s-worker01 Ready <none> 7d15h v1.17.3 10.20.30.20 <none> CentOS Linux 7 (Core) 3.10.0-1062.12.1.el7.x86_64 docker://19.3.6
k8s-worker02 Ready <none> 7d15h v1.17.3 10.20.30.30 <none> CentOS Linux 7 (Core) 3.10.0-1062.12.1.el7.x86_64 docker://19.3.6
$ kubectl -n kube-system get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
calico-kube-controllers-77c4b7448-6prr9 1/1 Running 5 7d15h 192.168.235.210 k8s-master <none> <none>
calico-node-2hc9b 1/1 Running 5 7d15h 10.20.30.10 k8s-master <none> <none>
calico-node-cgdgk 1/1 Running 5 7d15h 10.20.30.20 k8s-worker01 <none> <none>
calico-node-tkcz5 1/1 Running 5 7d15h 10.20.30.30 k8s-worker02 <none> <none>
coredns-6955765f44-55wbn 1/1 Running 5 7d15h 192.168.235.209 k8s-master <none> <none>
coredns-6955765f44-bhdvr 1/1 Running 5 7d15h 192.168.235.208 k8s-master <none> <none>
etcd-k8s-master 1/1 Running 5 7d15h 10.20.30.10 k8s-master <none> <none>
kube-apiserver-k8s-master 1/1 Running 5 7d15h 10.20.30.10 k8s-master <none> <none>
kube-controller-manager-k8s-master 1/1 Running 5 7d15h 10.20.30.10 k8s-master <none> <none>
kube-proxy-8pngh 1/1 Running 5 7d15h 10.20.30.30 k8s-worker02 <none> <none>
kube-proxy-gqt42 1/1 Running 5 7d15h 10.20.30.20 k8s-worker01 <none> <none>
kube-proxy-pq2fb 1/1 Running 5 7d15h 10.20.30.10 k8s-master <none> <none>
kube-scheduler-k8s-master 1/1 Running 5 7d15h 10.20.30.10 k8s-master <none> <none>
metrics-server-fbc46dc5f-9k6kt 1/1 Running 2 24h 192.168.69.222 k8s-worker02 <none> <none>
-o yaml
yaml形式で出力する。
$ kubectl -n sock-shop get pod carts-5fc45568c4-r4fqk -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
cni.projectcalico.org/podIP: 192.168.69.224/32
cni.projectcalico.org/podIPs: 192.168.69.224/32
creationTimestamp: "2020-03-01T13:36:01Z"
generateName: carts-5fc45568c4-
labels:
name: carts
pod-template-hash: 5fc45568c4
・・・
-n namespace
上で既に出てきてるので、割愛
-A
-Aを指定すると、全てのnamespaceのリソースを表示してくれる。
namespaceを忘れたときに便利だけど、リソースが多い場合にはたくさん表示されてしまう。
$ kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-77c4b7448-6prr9 1/1 Running 5 7d15h
kube-system calico-node-2hc9b 1/1 Running 5 7d15h
kube-system calico-node-cgdgk 1/1 Running 5 7d15h
kube-system calico-node-tkcz5 1/1 Running 5 7d15h
kube-system coredns-6955765f44-55wbn 1/1 Running 5 7d16h
・・・
sock-shop session-db-67fd8d6d7-f2s96 1/1 Running 3 2d23h
sock-shop shipping-745b9d8755-nvqng 1/1 Running 3 2d23h
sock-shop user-559d7f794f-65sxs 1/1 Running 3 2d23h
sock-shop user-db-87f548457-ldqvh 1/1 Running 3 2d23h
-L label
label に指定したラベルを持つリソースを抽出して、そのラベルも表示します。
$ kubectl -n sock-shop get pod -L name
NAME READY STATUS RESTARTS AGE NAME
carts-5fc45568c4-r4fqk 1/1 Running 3 2d23h carts
carts-db-64ff6c747f-vlghp 1/1 Running 3 2d23h carts-db
・・・
-l lavel
label に指定したラベルを持つリソースを抽出します。-Lと違って抽出するだけで表示はしません。
$ kubectl -n sock-shop get pod -l name
NAME READY STATUS RESTARTS AGE
carts-5fc45568c4-r4fqk 1/1 Running 3 2d23h
carts-db-64ff6c747f-vlghp 1/1 Running 3 2d23h
・・・
-l lavel=value
label に指定したラベルに_value_が指定されたリソースを抽出します。
$ kubectl -n sock-shop get pod -l name=carts
NAME READY STATUS RESTARTS AGE
carts-5fc45568c4-r4fqk 1/1 Running 3 3d
-Lとも組み合わせて使えます。
$ kubectl -n sock-shop get pod -l name=carts -L name
NAME READY STATUS RESTARTS AGE NAME
carts-5fc45568c4-r4fqk 1/1 Running 3 3d carts
まとめ
とりあえず現時点でkubectl getコマンドでよく使うオプションを集めてみました。
他のオプションも色々試してみて追加していきたいと思います。
なお、kubectl get allと全てのリソースを表示することもできます。
これに-Aもつけるとすべてのnamespaceのリソースも表示できるので、何ができているのか全て知りたい場合はこのコマンドを使うのもアリかなと思います。
小規模なクラスタでもこれだけダーッと出てくるので、grepかけるとかしないと使いにくいかなとは思います。
$ kubectl get all -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/calico-kube-controllers-77c4b7448-6prr9 1/1 Running 5 7d15h
kube-system pod/calico-node-2hc9b 1/1 Running 5 7d15h
kube-system pod/calico-node-cgdgk 1/1 Running 5 7d15h
kube-system pod/calico-node-tkcz5 1/1 Running 5 7d15h
kube-system pod/coredns-6955765f44-55wbn 1/1 Running 5 7d16h
kube-system pod/coredns-6955765f44-bhdvr 1/1 Running 5 7d16h
kube-system pod/etcd-k8s-master 1/1 Running 5 7d16h
kube-system pod/kube-apiserver-k8s-master 1/1 Running 5 7d16h
kube-system pod/kube-controller-manager-k8s-master 1/1 Running 5 7d16h
kube-system pod/kube-proxy-8pngh 1/1 Running 5 7d16h
kube-system pod/kube-proxy-gqt42 1/1 Running 5 7d16h
kube-system pod/kube-proxy-pq2fb 1/1 Running 5 7d16h
kube-system pod/kube-scheduler-k8s-master 1/1 Running 5 7d16h
kube-system pod/metrics-server-fbc46dc5f-9k6kt 1/1 Running 2 24h
loadtest pod/load-test-7f75b94bb8-dxf6c 1/1 Running 3 3d
loadtest pod/load-test-7f75b94bb8-njm97 1/1 Running 3 3d
sock-shop pod/carts-5fc45568c4-r4fqk 1/1 Running 3 3d
sock-shop pod/carts-db-64ff6c747f-vlghp 1/1 Running 3 3d
sock-shop pod/catalogue-69b7ff5bb4-pm988 1/1 Running 3 3d
sock-shop pod/catalogue-db-69cf48ff8-5sztl 1/1 Running 3 3d
sock-shop pod/front-end-6fc8dff6ff-4lxmn 1/1 Running 4 3d
sock-shop pod/orders-74c6b45f4f-42rns 1/1 Running 3 3d
sock-shop pod/orders-db-df75f545f-vvth6 1/1 Running 3 3d
sock-shop pod/payment-7f95f9f77-n5v7p 1/1 Running 3 3d
sock-shop pod/queue-master-85f5644bf5-pgdkt 1/1 Running 3 3d
sock-shop pod/rabbitmq-c7b9db6cc-bb5hn 2/2 Running 6 3d
sock-shop pod/session-db-67fd8d6d7-f2s96 1/1 Running 3 3d
sock-shop pod/shipping-745b9d8755-nvqng 1/1 Running 3 3d
sock-shop pod/user-559d7f794f-65sxs 1/1 Running 3 3d
sock-shop pod/user-db-87f548457-ldqvh 1/1 Running 3 3d
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d16h
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 7d16h
kube-system service/metrics-server ClusterIP 10.109.240.83 <none> 443/TCP 25h
sock-shop service/carts ClusterIP 10.110.120.109 <none> 80/TCP 3d
sock-shop service/carts-db ClusterIP 10.109.174.164 <none> 27017/TCP 3d
sock-shop service/catalogue ClusterIP 10.108.116.129 <none> 80/TCP 3d
sock-shop service/catalogue-db ClusterIP 10.110.226.123 <none> 3306/TCP 3d
sock-shop service/front-end NodePort 10.107.92.139 <none> 80:30001/TCP 3d
sock-shop service/orders ClusterIP 10.107.232.34 <none> 80/TCP 3d
sock-shop service/orders-db ClusterIP 10.103.162.21 <none> 27017/TCP 3d
sock-shop service/payment ClusterIP 10.108.6.76 <none> 80/TCP 3d
sock-shop service/queue-master ClusterIP 10.97.129.100 <none> 80/TCP 3d
sock-shop service/rabbitmq ClusterIP 10.104.194.103 <none> 5672/TCP,9090/TCP 3d
sock-shop service/session-db ClusterIP 10.108.6.216 <none> 6379/TCP 3d
sock-shop service/shipping ClusterIP 10.105.98.147 <none> 80/TCP 3d
sock-shop service/user ClusterIP 10.100.7.156 <none> 80/TCP 3d
sock-shop service/user-db ClusterIP 10.108.238.79 <none> 27017/TCP 3d
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/calico-node 3 3 3 3 3 kubernetes.io/os=linux 7d15h
kube-system daemonset.apps/kube-proxy 3 3 3 3 3 beta.kubernetes.io/os=linux 7d16h
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/calico-kube-controllers 1/1 1 1 7d15h
kube-system deployment.apps/coredns 2/2 2 2 7d16h
kube-system deployment.apps/metrics-server 1/1 1 1 25h
loadtest deployment.apps/load-test 2/2 2 2 3d
sock-shop deployment.apps/carts 1/1 1 1 3d
sock-shop deployment.apps/carts-db 1/1 1 1 3d
sock-shop deployment.apps/catalogue 1/1 1 1 3d
sock-shop deployment.apps/catalogue-db 1/1 1 1 3d
sock-shop deployment.apps/front-end 1/1 1 1 3d
sock-shop deployment.apps/orders 1/1 1 1 3d
sock-shop deployment.apps/orders-db 1/1 1 1 3d
sock-shop deployment.apps/payment 1/1 1 1 3d
sock-shop deployment.apps/queue-master 1/1 1 1 3d
sock-shop deployment.apps/rabbitmq 1/1 1 1 3d
sock-shop deployment.apps/session-db 1/1 1 1 3d
sock-shop deployment.apps/shipping 1/1 1 1 3d
sock-shop deployment.apps/user 1/1 1 1 3d
sock-shop deployment.apps/user-db 1/1 1 1 3d
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/calico-kube-controllers-77c4b7448 1 1 1 7d15h
kube-system replicaset.apps/coredns-6955765f44 2 2 2 7d16h
kube-system replicaset.apps/metrics-server-5cc8d5c4df 0 0 0 25h
kube-system replicaset.apps/metrics-server-78f448b976 0 0 0 24h
kube-system replicaset.apps/metrics-server-fbc46dc5f 1 1 1 24h
loadtest replicaset.apps/load-test-7f75b94bb8 2 2 2 3d
sock-shop replicaset.apps/carts-5fc45568c4 1 1 1 3d
sock-shop replicaset.apps/carts-db-64ff6c747f 1 1 1 3d
sock-shop replicaset.apps/catalogue-69b7ff5bb4 1 1 1 3d
sock-shop replicaset.apps/catalogue-db-69cf48ff8 1 1 1 3d
sock-shop replicaset.apps/front-end-6fc8dff6ff 1 1 1 3d
sock-shop replicaset.apps/orders-74c6b45f4f 1 1 1 3d
sock-shop replicaset.apps/orders-db-df75f545f 1 1 1 3d
sock-shop replicaset.apps/payment-7f95f9f77 1 1 1 3d
sock-shop replicaset.apps/queue-master-85f5644bf5 1 1 1 3d
sock-shop replicaset.apps/rabbitmq-c7b9db6cc 1 1 1 3d
sock-shop replicaset.apps/session-db-67fd8d6d7 1 1 1 3d
sock-shop replicaset.apps/shipping-745b9d8755 1 1 1 3d
sock-shop replicaset.apps/user-559d7f794f 1 1 1 3d
sock-shop replicaset.apps/user-db-87f548457 1 1 1 3d