# 使用 kubectl 查看和切换 context

前面的节，我们分别使用 minikube 和 kind 创建了不同名字的 k8s 集群，kubectl 是和哪个集群通讯的呢？可以通过以下命令先看下全局信息

```bash
kubectl config view
```

可以看到输出了很多有用的信息：

```yaml
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://127.0.0.1:60712
  name: kind-hello-k8s
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://127.0.0.1:50225
  name: kind-test
- cluster:
    certificate-authority: /Users/feilong/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Wed, 16 Mar 2022 19:13:01 CST
        provider: minikube.sigs.k8s.io
        version: v1.25.2
      name: cluster_info
    server: https://127.0.0.1:49371
  name: minikube
contexts:
- context:
    cluster: kind-hello-k8s
    user: kind-hello-k8s
  name: kind-hello-k8s
- context:
    cluster: kind-test
    user: kind-test
  name: kind-test
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Wed, 16 Mar 2022 19:13:01 CST
        provider: minikube.sigs.k8s.io
        version: v1.25.2
      name: context_info
    namespace: default
    user: minikube
  name: minikube
current-context: kind-hello-k8s
kind: Config
preferences: {}
users:
- name: kind-hello-k8s
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
- name: kind-test
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
- name: minikube
  user:
    client-certificate: /Users/feilong/.minikube/profiles/minikube/client.crt
    client-key: /Users/feilong/.minikube/profiles/minikube/client.key
```

主要包括这几类信息：
* `clusters` 列出了所有的 k8s 集群，例如这里有两个kind创建的集群：`kind-hello-k8s` 和 `kind-test` 以及一个 minikube 创建的集群`minikube`
* `context` 列出了每个 k8s 集群对应的上下文信息
* `users` 列出了每个 k8s 集群的用户信息
* `current-context` 指定了当前 kubectl 连接的集群上下文，这里是 `kind-hello-k8s`


首先，通过`kubectl config get-contexts` 查看下有哪些集群上下文，通过`kubectl config current-context` 确认当前 k8s 集群上下文
![](./img/config_get.png)

其次，通过`kubectl get nodes`查看当前 kubectl 连接的集群`kind-hello-k8s`的节点列表:
![](./img/kubectl_get_nodes.png)

现在，通过`kubectl config use-context kind-test` 切换连接的 k8s 集群，然后再次查看信息
![](./img/kubectl_switch_context.png)

以下说法错误的是？

## 答案

kubectl 只能连接最后一次创建的 k8s 集群

## 选项

### A

kubectl 可以切换连接的集群上下文

### B

kubectl 查看当前连接的 k8s 集群节点信息

### C

kubectl 可以查看环境里装的不同的集群信息



