Kubernetes kubectl上下文与集群
在kubectl和kubernetes配置的世界中,上下文和集群之间有什么区别?例如,我看到以下命令:Kubernetes kubectl上下文与集群,kubernetes,kubectl,amazon-eks,Kubernetes,Kubectl,Amazon Eks,在kubectl和kubernetes配置的世界中,上下文和集群之间有什么区别?例如,我看到以下命令: Available Commands: current-context Displays the current-context delete-cluster Delete the specified cluster from the kubeconfig delete-context Delete the specified context from the kubeconf
Available Commands:
current-context Displays the current-context
delete-cluster Delete the specified cluster from the kubeconfig
delete-context Delete the specified context from the kubeconfig
get-clusters Display clusters defined in the kubeconfig
get-contexts Describe one or many contexts
rename-context Renames a context from the kubeconfig file.
set Sets an individual value in a kubeconfig file
set-cluster Sets a cluster entry in kubeconfig
set-context Sets a context entry in kubeconfig
在.kube/config中,我看到:
- context:
cluster: arn:aws:eks:us-west-2:91XXXXXXX71:cluster/ignitecluster
namespace: ignite
user: arn:aws:eks:us-west-2:91XXXXXXX71:cluster/ignitecluster
name: arn:aws:eks:us-west-2: 91XXXXXXX71:cluster/ignitecluster
集群为集群的Kubernetes API定义连接端点 用户定义连接到群集的凭据
上下文定义集群和用户。集群:Kubernetes使用共享网络将单个物理或虚拟机聚集到一个集群中,以在每个服务器之间进行通信。该集群是配置所有Kubernetes组件、功能和工作负载的物理平台 上下文:上下文只是一组包含Kubernetes群集、用户和命名空间的访问参数 当前上下文是当前kubectl的默认集群,所有kubectl命令都针对该集群运行。来自: 因此,contextX={clusterX,userX,namespaceX}Clusters 集群是配置所有Kubernetes组件、功能和工作负载的地方 Kubernetes中的集群由各自的证书颁发机构(CA)证书标识。例如,假设你有三个集群 使用者 Kubernetes中的用户由其各自的客户端/用户证书标识。例如,假设您有三个用户 上下文 因此,用户必须同时提供
集群
证书和用户
证书,以便在目标资源上验证和运行工作负载
我们需要提供三个证书来在任何集群上运行工作负载
- 群集的一个CA证书
- 用户的两个证书:私钥和公钥
Context2
意味着我们希望以admin
用户身份登录到Development
集群
Context4
表示我们希望以user1
用户身份登录development
集群中的private
命名空间
Context1
表示我们希望以user1
user身份登录到staging
集群
重要提示
上下文不会创建新用户/群集。上下文只需设置一个新的映射,使多个集群之间的切换更容易。好的,因此集群是唯一的,上下文是集群和用户的组合。可能有多个上下文。但是,可以使用当前上下文下的“kubectl config view”命令检查当前引用的默认值:{context in use}。而且,每个上下文都是集群+用户+命名空间的组合。若集群中并没有提到名称空间,那个么它表示一个默认名称空间。
A context is a group of access parameters.
Each context contains a Kubernetes cluster, a user, and a namespace.
The current context is the cluster that is currently the default for kubectl:
all kubectl commands run against that cluster
rewanth@ubuntu:~$ cat ~/.kube/config
...
clusters:
- cluster:
certificate-authority: /home/rewanth/.minikube/development-ca.crt
server: https://192.168.177.136:8443
name: development
...
rewanth@ubuntu:~$ cat ~/.kube/config
...
users:
- name: admin
user:
client-certificate: /home/rewanth/.minikube/admin.crt
client-key: /home/rewanth/.minikube/admin.key
...
rewanth@ubuntu:~$ cat ~/.kube/config
...
contexts:
- context:
cluster: staging
user: user1
name: Context1
- context:
cluster: development
user: admin
name: Context2
- context:
cluster: development
namespace: private
user: user1
name: Context4
...