Kubernetes中名称空间和上下文之间的区别是什么?

Kubernetes中名称空间和上下文之间的区别是什么?,kubernetes,google-kubernetes-engine,kubectl,minikube,Kubernetes,Google Kubernetes Engine,Kubectl,Minikube,在许多示例中,我发现在kubectl客户机之前指定likekubectl--context dev--namespace default{other commands}。在k8的环境中,我可以清楚地看到它们之间的区别吗?上下文是与kubectl使用的特定集群(用户名/apiserver主机)的连接。您可以通过这种方式管理多个集群。 命名空间是特定群集内的逻辑分区,用于管理资源和约束。您可以使用多个上下文来针对多个不同的Kubernetes群集。您可以使用kubectl config use co

在许多示例中,我发现在kubectl客户机之前指定like
kubectl--context dev--namespace default{other commands}
。在k8的环境中,我可以清楚地看到它们之间的区别吗?

上下文是与kubectl使用的特定集群(用户名/apiserver主机)的连接。您可以通过这种方式管理多个集群。
命名空间是特定群集内的逻辑分区,用于管理资源和约束。

您可以使用多个上下文来针对多个不同的Kubernetes群集。您可以使用
kubectl config use context
命令在群集之间快速切换


名称空间是在多个用户之间划分群集资源的一种方式(通过资源配额)。名称空间用于多个用户分布在多个团队或项目中的环境。

Kubernetes中的
上下文是一组访问参数。每个上下文包含一个Kubernetes集群、一个用户和一个命名空间。当前上下文是当前为
kubectl
的默认集群:所有
kubectl
命令都针对该集群运行。已使用的每个
上下文
都将在
.kubeconfig
上可用


同时,虚拟集群是一种在同一物理集群内支持多个虚拟集群的方法。这通常与RBAC管理以及RBAC管理相关

kubernetes术语“上下文”仅适用于kubernetes客户端,即运行kubectl命令的位置。 kubernetes服务器端不识别这个术语“上下文”

例如,在命令提示符中,即作为客户端:

  • 调用“
    kubectl get pods-n'dev'
    ”时,您 正在检索位于命名空间“dev”下的POD列表
  • 调用“
    kubectl get deployments-n'dev'
    ”时,您将 正在检索位于命名空间“dev”下的部署列表
如果您知道目前基本上只针对“dev”名称空间,那么不必一直在每个kubectl命令中添加“-n'dev'”,您可以:

  • 创建名为“context dev”的上下文
  • 为此上下文指定命名空间='dev'
  • 设置当前上下文='context-dev'
  • 这样,您的上述命令将简化为以下内容:

    • kubectl获得吊舱
    • kubectl获得部署
    您可以设置不同的上下文,例如“context dev”、“context staging”等,其中每个上下文都是针对不同名称空间的

    我在这里的解释只是围绕名称空间,但这只是一个示例。除了指定名称空间之外,在上下文中,您还将实际指定要针对的集群