美文网首页
【k8s】kubectl使用小技巧

【k8s】kubectl使用小技巧

作者: Bogon | 来源:发表于2022-12-13 11:43 被阅读0次

作为k8s玩家,kubectl是几乎每天都敲十几遍的搭档.但是你对你的搭档熟悉吗?

1. 去掉头部

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

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

2. 获取指定节点的所有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>

3. 获取指定label的节点

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

kubectl get no -l role=front

k8s是用上了,你的玩法够k8ser吗?
最后留个作业:
用deployment部署了一组nginx,怎样列出所有的nginx pod?

nginx-7bddbf796b-lvc4c   1/1   Running   0     20d

kubectl  get  pod/svc/deploy  -l     app=nginx

相关文章

网友评论

      本文标题:【k8s】kubectl使用小技巧

      本文链接:https://www.haomeiwen.com/subject/rioqqdtx.html