kubectl 获取不到node_K8S|kubectl实用技巧三则

15e38bdc05f136c89ed5229bf430c844.gif

介绍

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

去掉头部

kubectl通过get命令,可以获得很多信息:命名空间,服务,pod,节点等.比如获取命名空间
kubectl get nsNAME                   STATUS   AGEdefault                Active   21ddocker                 Active   21dkube-node-lease        Active   21dkube-public            Active   21dkube-system            Active   21dkubernetes-dashboard   Active   21d
我们需要获取第一列,但是第一行并不需要,初级一些的做法直接grep排除掉
kubectl get ns|grep -v NAME|awk '{print $1}'defaultdockerkube-node-leasekube-publickube-systemkubernetes-dashboard
awk老手可能就直接跳过第一行了
kubectl get ns|awk 'NR>1{print $1}'defaultdockerkube-node-leasekube-publickube-systemkubernetes-dashboard
其实不需要,第一行,直接不显示好了
kubectl get ns --no-headersdefault                Active   21ddocker                 Active   21dkube-node-lease        Active   21dkube-public            Active   21dkube-system            Active   21dkubernetes-dashboard   Active   21d
见过太多脚本跟第一行较劲了,其实只要加个参数就好了.

获取指定节点的所有pod

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

c4d2c0fbe77fb56c3eaa94be8f52eb06.png

也可以实现,优雅点怎么搞呢?
kubectl get pod -o wide  --field-selector spec.nodeName=docker-desktopNAME                     READY   STATUS    RESTARTS   AGE   IP          NODE             NOMINATED NODE   READINESS GATESnginx-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吗?最后留个作业:用deployment部署了一组nginx,怎样列出所有的nginx pod?
nginx-7bddbf796b-lvc4c   1/1   Running   0     20d

长按下图可以关注哟~

53ee480e6c2df9c7efd18357d29a942c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值