kubectl get csr 显示No Resources Found的解决记录

在添加了CA证书并部署了kube-apiserver,kube-controller-manager以及kube-scheduler几个k8s的master组件后,添加kubelet组件,同时生成证书认证的配置文件.

kubelet 启动时向 kube-apiserver 发送 TLS bootstrapping 请求,需要先将 bootstrap token 文件中的 kubelet-bootstrap 用户赋予 system:node-bootstrapper 角色,然后 kubelet 才有权限创建认证请求(certificatesigning requests)。

文件token.csv内容:

e21b2365eb6e3c86a670dec0bdb511cc,kubelet-bootstrap,10001,"system:kubelet-bootstrap"
#正常情况下只需创建一次认证即可.配置根据token.csv中的内容自行修改.
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

得到kubelet kubeconfig文件后,使用命令kubectl get csr可以看到还未认证的节点. 使用命令kubectl certificate approve {NodeName}可以加入TLS认证. 再使用命令kubectl get csr可以看到CONDITION项已经由Pending变为Approved:

NAMEAGEREQUESTORCONDITION
node-csr-Tju4S-Nabh5S-rinQVhIylvAv0_6eIJOtXalWgGO4_A25mkubelet-bootstrapApproved,Issued

但若是无意中修改了证书,或者以前的kubelet的bootstrap.kubeconfig配置文件未删除,使用命令kubectl get csr则会显示No Resources Found,这时请检查:

  • 1.kubelet 使用的 bootstrap.kubeconfig 文件中User 是否是 kubelet-boostrap,是否包含 token
  • 2.token 是否位于 kube-apiserver 使用的 token.csv 文件中;

若还是不行,则可能以前有以前认证过的配置残留,尝试删除/etc/kubernetes/bootstrap.kubeconfig文件后,重启kubelet即可.

转载于:https://my.oschina.net/idoop/blog/1512295

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值