这是我的~/.kube/config文件:
apiVersion: v1
clusters:
- cluster:
server: https://192.168.10.190:6443
name: cluster-1
- cluster:
server: https://192.168.99.101:8443
name: cluster-2
contexts:
- context:
cluster: cluster-1
user: kubernetes-admin-1
name: cluster-1
- context:
cluster: cluster-2
user: kubernetes-admin-2
name: cluster-2
kind: Config
preferences: {}
users:
- name: kubernetes-admin-1
user:
client-certificate: /home/user/.minikube/credential-for-cluster-1.crt
client-key: /home/user/.minikube/credential-for-cluster-1.key
- name: kubernetes-admin-2
user:
client-certificate: /home/user/.minikube/credential-for-cluster-2.crt
client-key: /home/user/.minikube/credential-for-cluster-2.key我的理解是,cluster-1和cluster-2是kubernetes物理集群(Control Plane)。
每个物理集群都有多个虚拟集群(Namespaces)。
如果我的理解是正确的,那么使用上面的kubeConfig,的kubectl语法是获取集群中所有名称空间的
发布于 2022-08-16 18:11:33
简单地说,您可以在kubeconfig中的现有集群中获得所有ns
for context in $(kubectl config view -o jsonpath='{.clusters[*].name}'); do
kubectl config use-context $context ;
kubectl get ns;
done
#or
for context in $(kubectl config view -o jsonpath='{.clusters[*].name}'); do kubectl config use-context $context ;kubectl get ns;done您可以使用下面的命令(当前上下文)从每个集群中获取所有命名空间
kubectl get namespace上面的内容将在当前上下文中返回namespace,因此您有两个集群,这意味着您需要两个不同的上下文才能从两个集群中获取所有的命名空间。
kubeconfig文件中的上下文元素用于以方便的名称对访问参数进行分组。每个上下文都有三个参数:集群、命名空间和用户。默认情况下,kubectl命令行工具使用来自当前上下文的参数与集群通信。
名称空间就是资源的隔离。例如
不能在单个名称空间中创建具有相同名称的两个部署,因为这些资源是名称空间作用域的。
因此,您可以在develop、stage和production命名空间中部署多个部署。

发布于 2022-08-16 18:02:09
在kubernetes中,没有物理或虚拟集群这样的东西。库贝贡图由三部分组成。
kube-admin,也可以是普通的开发人员。用户可以拥有定义用户可以操作哪些资源的角色(RBAC)。现在,对于名称空间,它们的工作方式类似于linux网络名称空间。把它想象成一栋房子里面住着一家人。如果你住的房子里有一个鲍勃·纽曼,你就叫他鲍勃。如果鲍勃住在另一所房子里,你会把他称为鲍勃·纽曼。名称空间在逻辑上将集群内的资源分割开来。您可以拥有例如监视名称空间、工资单名称空间、后端名称空间。这房子不一样
发布于 2022-08-16 18:02:36
希望这个答案能帮助你:
使用上下文管理多个集群
假设我们有多个集群要管理员,所以我们有多个kubeconfig文件。
但是每次使用--kubeconfig选项使用kubectl命令都不是那么有效!
使用上下文访问多个集群
kubeconfig文件中定义所有集群和用户什么是语境?
在kubeconfig文件中,我们有:
kubeconfig文件中引用它们的名称Context上下文
kubeconfigkubectl config命令current-context kubectl配置当前上下文上下文中的命名空间
每个上下文实际上由3个组件组成。
default命名空间。假设大多数情况下,我们使用的是一个特定的名称空间(default除外),并且对每个kubectl命令使用--namespace会有些烦人.
~/.kube/config文件上下文:- context:集群: kubernetes命名空间:kubernetes#刚刚添加!用户:kubernetes-管理名称: kubernetes-admin@kuberneteshttps://stackoverflow.com/questions/73378096
复制相似问题