说明
容器服务 TKE 计划于北京时间2020年9月21日(周一)23:00 - 9月22日(周二)06:00进行操作停止下发 kubeconfig 文件。
问题背景
当前容器服务 TKE 在节点默认会放置带有 admin token 的 Kubeconfig 文件,用户可以通过此 Kubeconfig 文件方便的操作 Kubernetes 集群,但是当用户节点登录权限管理不慎,可能会导致集群面临安全风险,所以我们将停止下发 Kubeconfig 文件。
考虑到存量集群可能会在用户自定义脚本中使用 Kubeconfig 文件对集群进行一些初始化的操作,我们将下发一个权限相同但有效期仅为12小时的客户端证书,供用户初始化节点使用,证书过期之后,此 Kubeconfig 文件也相应作废。如仍需使用,请参考 问题影响及处理措施 进行操作。 问题影响及处理措施
问题现象
如用户习惯使用如下命令进行 TKE 集群登录节点进行 Kubectl 操作,命令及报错信息如下:
$ kubectl get node
The connection to the server localhost:8080 was refused - did you specify the right host or port?
$ kubectl get node
error: You must be logged in to the server (Unauthorized)
处理措施
2. 获取当前使用账号的凭证信息 Kubeconfig 文件,请参见 获取凭证。 3. 获取 Kubeconfig 文件后,可以选择开启内网访问,也可直接使用 Kubernetes 的 service IP。
开启内网访问:在集群详情页面中,选择左侧的基本信息,在“集群 APIServer 信息”中开启内网访问,并根据提示信息进行操作。
使用 Kubernetes 的 service IP:在集群详情页面中,选择左侧的服务与路由 > Service获取 default 命名空间下 Kubernetes 的 service IP。将 Kubeconfig 文件中 clusters.cluster.server 字段替换为 https://<IP
>:443 即可。
4. 拷贝 Kubeconfig 文件内容到新节点上的 $HOME/.kube/config
下。
5. 访问 Kubeconfig 集群,使用 kubectl get nodes
测试是否连通。
特殊场景处理
特殊场景
workload 已挂载 host 的 /root/.kube/config
或者 /home/ubuntu/.kube/config
文件进行使用。
处理措施
正确使用 Kubernetes 的 serviceaccount 进行 incluster 方式访问集群,请参见 Kubernetes官方文档。
本页内容是否解决了您的问题?