kubectl上下文与集群

4 kubernetes kubectl 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 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
Run Code Online (Sandbox Code Playgroud)

在.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
Run Code Online (Sandbox Code Playgroud)

Rew*_*ool 16

集群

集群是配置所有 Kubernetes 组件、功能和工作负载的地方。

Kubernetes 中的集群由其各自的证书颁发机构 (CA) 证书标识。例如,假设您有三个集群。

集群数据表

rewanth@ubuntu:~$ cat ~/.kube/config
...
clusters:
- cluster:
    certificate-authority: /home/rewanth/.minikube/development-ca.crt
    server: https://192.168.177.136:8443
  name: development
...
Run Code Online (Sandbox Code Playgroud)

用户

Kubernetes 中的用户由其各自的客户端/用户证书标识。例如,假设您有三个用户。

用户数据表

rewanth@ubuntu:~$ cat ~/.kube/config
...
users:
- name: admin
  user:
    client-certificate: /home/rewanth/.minikube/admin.crt
    client-key: /home/rewanth/.minikube/admin.key
...
Run Code Online (Sandbox Code Playgroud)

上下文

因此,用户必须同时提供cluster证书和user证书才能在目标资源上验证和运行工作负载。

我们需要提供三个证书才能在任何集群上运行工作负载。

  • 一个集群的 CA 证书
  • 用户的两个证书:私钥和公钥

Context通过结合用户集群配置/证书使这项工作更容易。

上下文数据表

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
...
Run Code Online (Sandbox Code Playgroud)

所以,简单的引用Context2意味着我们要以用户身份登录Development集群admin

Context4意味着我们要以用户身份登录集群中的private命名空间。developmentuser1

Context1意味着我们要以用户身份登录staging集群user1

重要的提示

上下文不会创建新用户/集群。上下文只是设置一个新的映射,使多个集群之间的切换更容易。


Vik*_*har 8

集群:Kubernetes 使用共享网络将单个物理或虚拟机聚集到一个集群中,以便在每个服务器之间进行通信。该集群是配置所有 Kubernetes 组件、功能和工作负载的物理平台。

上下文:上下文只是一组包含 Kubernetes 集群、用户和命名空间的访问参数。

当前上下文是 kubectl 当前默认的集群,所有 kubectl 命令都针对该集群运行。


Vas*_*pov 5

集群为集群的Kubernetes API定义连接端点。

用户定义用于连接到群集的凭据。

上下文定义了群集和用户。

  • 好的,所以集群是唯一的,上下文是集群和用户的组合 (4认同)