kubectl避免频繁切换命名空间技巧

该博客介绍了一个Bash函数,用于简化kubectl命令的使用,特别是切换命名空间的操作。通过在.bashrc文件中添加这个函数,kubectl会自动记住上次使用的命名空间,使得在后续的命令中无需再次指定-n或--namespace参数。用户可以直接运行如`kgetpods`来获取指定命名空间的Pods,而无需每次都输入完整的命名空间。
摘要由CSDN通过智能技术生成

        使用 kubectl 命令时,最烦人的就是频繁的切换命名空间了,查看什么资源都得加命名空间,每次敲命令在习惯也会很烦。今天在网上看到一篇文章,很有用,可以记住上一次使用 kubectl 时操作的命名空间。

代码如下:

function k() {
    cmdline=`HISTTIMEFORMAT="" history | awk '$2 == "kubectl" && (/-n/ || /--namespace/) {for(i=2;i<=NF;i++)printf("%s ",$i);print ""}' | tail -n 1`
    regs=('\-n [\w\-\d]+' '\-n=[\w\-\d]+' '\-\-namespace [\w\-\d]+' '\-\-namespace=[\w\-\d]+')
    for i in "${!regs[@]}"; do
        reg=${regs[i]}
        nsarg=`echo $cmdline | grep -o -P "$reg"`
        if [[ "$nsarg" == "" ]]; then
            continue
        fi
        cmd="kubectl $nsarg $@"
        echo "$cmd"
        $cmd
        return
    done
    cmd="kubectl $@"
    echo "$cmd"
    $cmd
}
 

可以将此代码放入 .bashrc 或者其它的开机自启文件中(永久生效需重启)。因为很多服务器都不会轻易重启,建议在使用时直接复制到命令行执行(即临时生效)

使用方法如下:

使用 kubectl -n xxx 之后,-n 会被记住,然后直接使用 k get xxx 不需要加 -n,即可,下次切换命名空间时,还是使用 kubectl -n xxx

COPY$ kubectl get pods -n nginx 
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-c94f957b8-4t4f8   1/1     Running   3          35d
nginx-deployment-c94f957b8-gj4j7   1/1     Running   3          35d
$ k get pods 
kubectl -n nginx get pods
NAME                               READY   STATUS    RESTARTS   AGE
nginx-deployment-c94f957b8-4t4f8   1/1     Running   3          35d
nginx-deployment-c94f957b8-gj4j7   1/1     Running   3          35d
$ k get svc
kubectl -n nginx get svc
NAME        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
nginx-svc   ClusterIP   10.105.99.220   <none>        8080/TCP   43d
$ k get ingress
kubectl -n nginx get ingress
NAME           CLASS    HOSTS                 ADDRESS          PORTS     AGE
test-ingress   <none>   feiyi.yanjiang.chai   172.16.182.193   80, 443   38d
$ kubectl get pods -n istio-system 
NAME                                    READY   STATUS    RESTARTS   AGE
istio-ingressgateway-76bdc8cbf6-4lzmb   1/1     Running   0          4d
istio-tracing-8549b858b6-ztvwh          1/1     Running   0          3d23h
istiod-1-6-10-5789bdcb9f-jp5ng          1/1     Running   0          4d
kiali-655dd5cfdc-c4hxd                  1/1     Running   0          3d23h
$ k get pods
kubectl -n istio-system get pods
NAME                                    READY   STATUS    RESTARTS   AGE
istio-ingressgateway-76bdc8cbf6-4lzmb   1/1     Running   0          4d
istio-tracing-8549b858b6-ztvwh          1/1     Running   0          3d23h
istiod-1-6-10-5789bdcb9f-jp5ng          1/1     Running   0          4d
kiali-655dd5cfdc-c4hxd                  1/1     Running   0          3d23h

参考链接:https://k8s.imroc.io/trick/efficient-kubectl/--https://www.feiyiblog.com/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

情绪零碎碎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值