解决需求,k8s每次查看指定命名空间的资源都需要加 -n 命名空间 来指定命名空间,我们可以通过开源项目kubens
来切换当前命名空间,切换命名空间后,就无需每次都使用 -n 命令来指定命名空间了
1.安装kubens
[root@master-11 ~]# yum install -y git ##安装git'
[root@master-11 ~]# git clone https://github.com/ahmetb/kubectx.git ##clone项目
正克隆到 'kubectx'...
remote: Enumerating objects: 48, done.
remote: Counting objects: 100% (48/48), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 1246 (delta 13), reused 21 (delta 6), pack-reused 1198
接收对象中: 100% (1246/1246), 817.16 KiB | 664.00 KiB/s, done.
处理 delta 中: 100% (695/695), done.
[root@master-11 ~]# cp kubectx/kube* /usr/local/bin/ ##把相关文件放到可执行目录里
2.kubens常用操作
[root@master-11 ~]# kubens ##列出当前命名空间
default
kube-node-lease
kube-public
kube-system
当前所在的命名空间会用黑底标出
image.png
[root@master-11 ~]# kubens kube-system ##切换命名空间为kube-system
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "kube-system".
[root@master-11 ~]# kubectl get pods ##切换命名空间后,无需指定命名空间,即可查看切换后的命名空间资源
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-578894d4cd-k4ccx 1/1 Running 0 39h
calico-node-4svc2 1/1 Running 0 39h
calico-node-r8xlx 1/1 Running 0 7h42m
calico-node-vvksl 1/1 Running 0 7h47m
coredns-7ff77c879f-sz87s 1/1 Running 0 2d1h
coredns-7ff77c879f-v8vg8 1/1 Running 0 2d1h
etcd-master-11 1/1 Running 0 2d1h
kube-apiserver-master-11 1/1 Running 0 2d1h
kube-controller-manager-master-11 1/1 Running 16 2d1h
kube-proxy-4q2fg 1/1 Running 0 2d1h
kube-proxy-fpn7d 1/1 Running 0 7h42m
kube-proxy-mvwf7 1/1 Running 0 7h47m
kube-scheduler-master-11 1/1 Running 17 2d1h
metrics-server-57bc7f4584-zkbqz 1/1 Running 0 6h48m
[root@master-11 ~]# kubens - ##在最近两个命名空间来还切换 类似 cd -
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "default".