AWS Kubernetes/k8s kubeamd 初始化后kube-controller-manager pod CrashLoopBackOff 错误启动不了

问题出现在版本1.22和1.21中,同样的配置在1.19和1.20版本中成功配置没有问题。

kubeadm init
初始化后提示成功,在master第二个节点 kubeadm join时提示
could not find a JWS signature

于是回到第一个master上看一下cluster info信息
kubectl get configmap cluster-info --namespace=kube-public -o yaml
非常奇怪的是没有jws段,jws是一个证书的签名用来验证证书的token,这里提一下它并不安全最好不要用于所有节点,可以通过kubeadm create token xxx来创建。
没有jws段那么判断没有生效的token,但是用

kubeadm token list
可以看到token全部正常有效,这个问题就很奇怪了。

在阅读bootstrap-tokens鉴权kubeadm实现细节后发现,原来cluster info中的aws需要在kube-controller-manager运行后创建。

这时才发现kube-controller-manager的pod没有起来,我们知道kubeadm文档中说过如果init后pod有没有成功生效的那么就要发issue证明是kubeadm坏了,这个判断大概率不成立,肯定是kubeadm配置错误。

kubectl describe kube-controller-manager -nkube-system
kubectl logs -n kube-system kube-controller-manager

后提示:
Error: unknown flag: --horizontal-pod-autoscaler-use-rest-clients

原来1.21的kube-controller-manager不再支持这个参数。
去掉后pod成功启动

posted @   today4king  阅读(759)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示
主题色彩