Unable to register node “xxx“ with API server: Unauthorized
k8s二进制部署环境出现kubelet认证不了节点
出现这个情况的时候,第一个反应是先看apiserver证书是不是过期了
# 查看apiserver的service文件存储路径
systemctl status kube-apiserver | grep load
# 查找apiserver的启动参数,查看ca证书的存储路径
cat /usr/lib/systemd/system/kube-apiserver.service
# 查看EnviromentFile,或者直接可以看到启动参数,以实际的为准
grep 'ca.pem' /opt/k8s/etc/kubernetes/apiserver
# 使用openssl命令查看证书过期时间
openssl x509 -noout -text -in /opt/k8s/etc/kubernetes/ssl/ca.pem | grep Not
Not Before: Dec 21 09:39:00 2019 GMT
Not After : Dec 20 09:39:00 2023 GMT
可以看到,根证书并没有过期,此时就要去删除kubelet的证书,重启kubelet后重新生成证书,一般这样操作完,节点就正常Ready了
# 查看kubelet的service文件存储路径
systemctl status kubelet | grep load
# 查找kubelet的启动参数,查看kubelet.kubeconfig证书的存储路径
cat /usr/lib/systemd/system/kubelet.service
# 查看EnviromentFile,或者直接可以看到启动参数,以实际的为准
grep 'kubelet.kubeconfig' /opt/k8s/etc/kubernetes/kubelet
# 停止kubelet服务
systemctl stop kubelet
# 删除kubelet.kubeconfig文件,以自己的实际路径为准
rm -f /opt/etc/kubernetes/kubelet.kubeconfig
# 重新启动kubelet
systemctl start kubelet
但是这一顿操作完,节点依然是NotReady,kubelet的日志也依然是认证不了节点,于是我生气了
kubectl get csr --no-headers=true | awk '{print $1}' | xargs kubectl delete csr
删掉集群的csr证书后,再次重复上面的擦作,此时在去看csr,会出现和节点数量相同的证书,并且状态是Pending的,只需要重新approve一下,节点就都恢复到Ready的状态了
kubectl get csr | awk '/Pending/ {print $1}' | xargs kubectl certificate approve
Unable to register node “xxx“ with API server: Unauthorized的更多相关文章
- [Node.js] 08 - Web Server and REST API
有了 [Node.js] 07 - Html and Http 作为基础,再继续下面的内容. Node.js 路由 Node.js GET/POST请求 Node.js Web 模块 Node.js ...
- Derek解读Bytom源码-Api Server接口服务
作者:Derek 简介 Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom ...
- Node.js 常用 API
Node.js v6.11.2 Documentation(官方文档) Buffer Prior to the introduction of TypedArray in ECMAScript 20 ...
- Node.js RESTful API
什么是REST架构? REST表示代表性状态传输.REST是一种基于Web标准的架构,并使用HTTP协议. 它都是围绕着资源,其中每一个组件是资源和一个资源是由一个共同的接口使用HTTP的标准方法获得 ...
- k8s中的api server的ca证书,可以和front proxy ca证书一样么?
答案是: 绝对不可以! 因为请求先验证的是 --requestheader-client-ca-file CA 然后才是--client-ca-file. . 那获取的用户名就会通不过了. 所以会影响 ...
- K8S Api Server认证
目录 认证类型 基于CA证书的双向认证 apiserver端配置 生成客户端私钥和证书 master核心组件与apiserver的认证方式 HTTP Token认证 HTTP Basic认证 kube ...
- 十个书写Node.js REST API的最佳实践(上)
收录待用,修改转载已取得腾讯云授权 原文:10 Best Practices for Writing Node.js REST APIs 我们会通过本文介绍下书写Node.js REST API的最佳 ...
- Kubernetes API server工作原理
作为Kubernetes的使用者,每天用得最多的命令就是kubectl XXX了. kubectl其实就是一个控制台,主要提供的功能: 1. 提供Kubernetes集群管理的REST API接口,包 ...
- 资深专家深度剖析Kubernetes API Server第3章(共3章)
在本系列的前两部分中我们介绍了API Server的总体流程,以及API对象如何存储到etcd中.在本文中我们将探讨如何扩展API资源. 在一开始的时候,扩展API资源的唯一方法是扩展相关API源代码 ...
随机推荐
- Echart可视化学习(九)
文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 官网找到类似实例, 适当分析,并且 ...
- Win10+Java7环境配置
原文链接: https://www.toutiao.com/i6487838676326810125/ 安装包: jdk-7u79-windows-x64-20151024 打开安装目录 双击运行程序 ...
- leetcode 1021. 删除最外层的括号
问题描述 有效括号字符串为空 ("")."(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的 ...
- 【刷题-LeetCode】205. Isomorphic Strings
Isomorphic Strings Given two strings *s* and *t*, determine if they are isomorphic. Two strings are ...
- 关于BIO NIO和AIO的理解
转载自 :http://blog.csdn.net/anxpp/article/details/51512200 1.BIO编程 1.1.传统的BIO编程 网络编程的基本模型是C/S模型,即两个进程间 ...
- Servlet虚拟路径匹配规则
当 Servlet 容器接收到请求后,容器会将请求的 URL 减去当前应用的上下文路径,使用剩余的字符串作为映射 URL 与 Servelt 虚拟路径进行匹配,匹配成功后将请求交给相应的 Servle ...
- golang中的pair
package main import "fmt" type Reader interface { ReadBook() } type Writer interface { Wri ...
- java多态概述特点转型I
1 package face_09; 2 3 import com.sun.jdi.Method; 4 5 /* 6 * 对象的多态性. 7 * class 动物 8 * {} 9 * 10 * cl ...
- ansible command和shell的区别
1.command模块不支持管道符和变量等,如果要使用这些,需要shell模块. 2.在使用ansible中的时候,默认的模块是-m command,从而模块的参数不需要填写,直接使用即可
- ARP链路追踪
arp协议在TCP/IP模型中属于IP层(网络层),在OSI模型中属于链路层.arp协议即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议.它可以解决同一个局域网内主机或路由器的IP地址 ...