例如,我有两个名称空间k8s-app1和k8s-app2
我可以使用下面的命令列出来自特定名称空间的所有pod
kubectl get pods -n <namespace>
我们需要将namespace附加到所有命令中,以列出来自各自名称空间的对象。是否有一种方法可以设置特定的名称空间和列表对象而不显式地包括名称空间?
例如,我有两个名称空间k8s-app1和k8s-app2
我可以使用下面的命令列出来自特定名称空间的所有pod
kubectl get pods -n <namespace>
我们需要将namespace附加到所有命令中,以列出来自各自名称空间的对象。是否有一种方法可以设置特定的名称空间和列表对象而不显式地包括名称空间?
当前回答
您可以使用以下名为kubectx的包,它可以很容易地在使用kubectx的集群之间切换
以及使用kubens在名称空间之间切换
其他回答
Kubectx—用于切换上下文/集群。可以安装“brew install kubectx” Kubens—用于在集群中的名称空间之间切换。也可以安装“brew install kubens”
看看https://krew.sigs.k8s.io/他们有很多不同用例的插件。
安装 https://krew.sigs.k8s.io/docs/user-guide/setup/install/
kubectl krew install kubens
然后运行以下命令将为您设置当前上下文
kubens <namespace>
一个解决方案
npm install -g k8ss
k8ss switch --namespace=your_namespace
kubectl get pods
TLDR;按要求解释
有一个名为k8ss的npm包,它代表K8S在集群和名称空间之间切换。
完整的用法是
k8ss switch --cluster=your_new_cluster --namespace=your_new_namespace
与您的示例一样,您只需要切换名称空间,因此无需任何配置就可以使用该命令(因为您已经在~/.kube/config中放置了配置文件)。
高级用法
如果您需要在不同的集群之间切换,那么您需要在主目录中放置多个配置文件。在这种情况下,您可以访问README包以了解更多信息。
我希望我的回答简明扼要,并参考官方文件:
答:
kubectl config set-context --current --namespace=my-namespace
来自:
https://kubernetes.io/docs/reference/kubectl/cheatsheet/
# permanently save the namespace for all subsequent kubectl commands in that context.
kubectl config set-context --current --namespace=ggckad-s2
您可以使用以下名为kubectx的包,它可以很容易地在使用kubectx的集群之间切换
以及使用kubens在名称空间之间切换