
# 本地集群KubeConfig文件
#### 获取本地集群KubeConfig文件
KubeConfig是Kubernetes集群中组织有关集群、用户、命名空间和身份认证机制信息的配置文件，Kubectl使用KubeConfig来获取集群的信息并与API server进行通信。
获取本地集群的KubeConfig需要使用ucs-ctl工具，获取步骤如下:
1. 使用ucs-ctl获取集群名称。 
   ```
   ./ucs-ctl get cluster
   ```
   ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001877230770.png "点击放大")
   
   
2. 使用ucs-ctl导出指定集群的KubeConfig。 
   ```
   ./ucs-ctl get kubeconfig -c test-redhat86 -o kubeconfig
   ```
   ![](https://support.huaweicloud.com/usermanual-ucs/public_sys-resources/note_3.0-zh-cn.png)
   可以使用ucs-ctl get kubeconfig -h查看获取KubeConfig所使用到的参数。
   - -c, --cluster string：指定待导出KubeConfig的集群名。
   
   - -e, --eip string：指定API server的eip。
   
   - -o, --output string：指定KubeConfig导出文件名。
   
   - -p, --secretPath string：指定待导出KubeConfig的加密物料路径。
    
   
   
 
#### 更新本地集群证书文件
为应对本地集群证书信息泄露或过期情况，或进行例行的安全维护，可以使用ucs-ctl对本地集群的证书文件进行更新。
- 更新证书可以选择tls或者ca类型。
```
./ucs-ctl kcm update-cert {cluster_name} --mode tls
```
![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000002267116829.png "点击放大")
- 若需要再次更新，需先删除证书目录的文件，然后进行更新，否则将会报错：error: "update cert recordFile\[\\"var/paas/ucs/**{cluster_name}**/cert_update/status.json\\"\] already exists, please use the option \\"-- retry or -r\\"to retry it".
```
rm -rf /var/paas/ucs/{cluster_name}/cert_update
```
#### 使用本地集群KubeConfig文件
拿到ucs-ctl生成的KubeConfig之后，还需要使KubeConfig在节点上生效，步骤如下：
1. 复制KubeConfig到节点上。 
   ```
   scp /local/path/to/kubeconfig user@remote:/remote/path/to/kubeconfig
   ```
   
   
2. 如果当前节点添加过EnableSecretEncrypt环境变量，需要先取消。 
   ```
   unset EnableSecretEncrypt
   ```
   
   
3. 使KubeConfig生效，可选方法： 
   - 方法一：复制到默认位置。
     ```
     mv /remote/path/to/kubeconfig $HOME/.kube/config
     ```
     
   
   - 方法二：环境变量指定。
     ```
     export KUBECONFIG=/remote/path/to/kubeconfig
     ```
     
   
   - 方法三：命令行参数指定。
     ```
     kubectl --kubeconfig=/remote/path/to/kubeconfig
     ```
     
   
   
   
   
上述操作之后，就可以访问本地集群的API server了。关于KubeConfig更详细的用法可参考：[使用kubeconfig文件组织集群访问Kubernetes](https://kubernetes.io/zh-cn/docs/concepts/configuration/organize-cluster-access-kubeconfig/)。
