K8S|kubectl实用技巧三则

作为k8s玩家,kubectl是几乎每天都敲十几遍的搭档.但是你对你的搭档熟悉吗?至少本篇提到的这三则,是一个三年选手,刚知道的...

去掉头部

kubectl通过get命令,可以获得很多信息:命名空间,服务,pod,节点等.
比如获取命名空间

kubectl get ns
NAME                   STATUS   AGE
default                Active   21d
docker                 Active   21d
kube-node-lease        Active   21d
kube-public            Active   21d
kube-system            Active   21d
kubernetes-dashboard   Active   21d

我们需要获取第一列,但是第一行并不需要,初级一些的做法直接grep排除掉

kubectl get ns|grep -v NAME|awk '{print $1}'
default
docker
kube-node-lease
kube-public
kube-system
kubernetes-dashboard

awk老手可能就直接跳过第一行了

kubectl get ns|awk 'NR>1{print $1}'
default
docker
kube-node-lease
kube-public
kube-system
kubernetes-dashboard

其实不需要,第一行,直接不显示好了

kubectl get ns --no-headers
default                Active   21d
docker                 Active   21d
kube-node-lease        Active   21d
kube-public            Active   21d
kube-system            Active   21d
kubernetes-dashboard   Active   21d

见过太多脚本跟第一行较劲了,其实只要加个参数就好了.

获取指定节点的所有pod

我们知道get时,加了-o wide参数,会多显示两列,分别是pod ip和node ip.
既然想取指定节点的所有pod,那就把所有pod列出来,然后再grep节点就好了.

kubectl get pod -o wide|grep docker-desktop
nginx-7bddbf796b-lvc4c   1/1     Running   0          20d   10.1.0.41   docker-desktop   <none>           <none>
redis-5bbcdf5c5c-sfdck   1/1     Running   0          20d   10.1.0.42   docker-desktop   <none>           <none>


也可以实现,优雅点怎么搞呢?

kubectl get pod -o wide  --field-selector spec.nodeName=docker-desktop
NAME                     READY   STATUS    RESTARTS   AGE   IP          NODE             NOMINATED NODE   READINESS GATES
nginx-7bddbf796b-lvc4c   1/1     Running   0          20d   10.1.0.41   docker-desktop   <none>           <none>
redis-5bbcdf5c5c-sfdck   1/1     Running   0          20d   10.1.0.42   docker-desktop   <none>           <none>

获取指定label的节点

前面提到资源池了,同样资源池的节点的label是一样的,那么问题来了:怎么列出同一个资源池的节点?
这还不简单吗?直接--show-labels然后grep啊.
非也非也
比如:
有个节点的label是:role=front
正确的命令是

kubectl get no -l role=front

结语

k8s是用上了,你的玩法够k8ser吗?

转载请注明: 转自Rainbird的个人博客
   本文链接: K8S|kubectl实用技巧三则


相关博文

About rainbird

IOS攻城狮
This entry was posted in K8S and tagged , , , , , , , . Bookmark the permalink.

发表评论