kubernetes集群证书更新
kubeadm 默认证书为一年,一年过期后,会导致api service不可用,使用过程中会出现:x509: certificate has expired or is not yet valid.
方案一 通过修改kubeadm 调整证书过期时间
修改代码,调整过期时间
方案二 通过自动轮换证书默认开启
以下方案通过第二种方法模拟集群证书过期
准备
本次集群版本1.15
备份集群证书(略)
cd /etc/kubernetes
tar czvf kubernetes.tar.gz kubernetes
Master节点:
[root@k8s-master .kube]# hwclock --show 2020年01月21日 星期二 15时16分34秒 -0.856601 秒 [root@k8s-master .kube]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready master 167d v1.15.0 k8s-node1 Ready node 166d v1.15.0 [root@k8s-master .kube]# kubeadm alpha certs check-expiration CERTIFICATE EXPIRES RESIDUAL TIME EXTERNALLY MANAGED admin.conf Jan 20, 2021 07:09 UTC 364d no apiserver Jan 20, 2021 07:09 UTC 364d no apiserver-etcd-client Jan 20, 2021 07:09 UTC 364d no apiserver-kubelet-client Jan 20, 2021 07:09 UTC 364d no controller-manager.conf Jan 20, 2021 07:09 UTC 364d no etcd-healthcheck-client Jan 20, 2021 07:09 UTC 364d no etcd-peer Jan 20, 2021 07:09 UTC 364d no etcd-server Jan 20, 2021 07:09 UTC 364d no front-proxy-client Jan 20, 2021 07:09 UTC 364d no scheduler.conf Jan 20, 2021 07:09 UTC 364d no [root@k8s-master .kube]#
先生成集群配置文件
kubeadm config view > /root/kubeadm.yaml
要提前备份一下集群配置文件,当集群证书过期后 此命令也不能执行了
修改时间让集群过期
[root@k8s-master .kube]# date -s "2021-08-08" 2021年 08月 08日 星期日 00:00:00 CST [root@k8s-master .kube]# date 2021年 08月 08日 星期日 00:00:02 CST [root@k8s-master .kube]# kubectl get nodes Unable to connect to the server: x509: certificate has expired or is not yet valid [root@k8s-master .kube]#
更新证书
[root@k8s-master ~]# kubeadm alpha certs renew all --config=/root/kubeadm.yaml certificate embedded in the kubeconfig file for the admin to use and for kubeadm itself renewed certificate for serving the Kubernetes API renewed certificate the apiserver uses to access etcd renewed certificate for the API server to connect to kubelet renewed certificate embedded in the kubeconfig file for the controller manager to use renewed certificate for liveness probes to healtcheck etcd renewed certificate for etcd nodes to communicate with each other renewed certificate for serving etcd renewed certificate for the front proxy client renewed certificate embedded in the kubeconfig file for the scheduler manager to use renewed [root@k8s-master ~]# kubeadm alpha certs check-expiration CERTIFICATE EXPIRES RESIDUAL TIME EXTERNALLY MANAGED admin.conf Aug 07, 2022 16:02 UTC 364d no apiserver Aug 07, 2022 16:02 UTC 364d no apiserver-etcd-client Aug 07, 2022 16:02 UTC 364d no apiserver-kubelet-client Aug 07, 2022 16:02 UTC 364d no controller-manager.conf Aug 07, 2022 16:02 UTC 364d no etcd-healthcheck-client Aug 07, 2022 16:02 UTC 364d no etcd-peer Aug 07, 2022 16:02 UTC 364d no etcd-server Aug 07, 2022 16:02 UTC 364d no front-proxy-client Aug 07, 2022 16:02 UTC 364d no scheduler.conf Aug 07, 2022 16:02 UTC 364d no
重启master节点三个容器:
[root@k8s-master .kube]# docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd'|xargs docker restart 98257170f1fb k8s_kube-apiserver_kube-apiserver-k8s-master_kube-system_db9cf46161351d3a7f76537093caa0b8_10 82c07f5d9b6f k8s_etcd_etcd-k8s-master_kube-system_2da345f314df09b06ba8257f5457dbed_6 Error response from daemon: No such container: 201c7a840312 Error response from daemon: No such container: kube-apiserver --ad… Error response from daemon: No such container: 18 Error response from daemon: No such container: months Error response from daemon: No such container: ago Error response from daemon: No such container: Up Error response from daemon: No such container: 18 Error response from daemon: No such container: months Error response from daemon: No such container: 2c4adeb21b4f Error response from daemon: No such container: etcd --advertise-cl… Error response from daemon: No such container: 18 Error response from daemon: No such container: months Error response from daemon: No such container: ago Error response from daemon: No such container: Up Error response from daemon: No such container: 18 Error response from daemon: No such container: months [root@k8s-master .kube]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready master 2y1d v1.15.0 k8s-node1 Ready node 2y1d v1.15.0 [root@k8s-master .kube]# date 2021年 08月 08日 星期日 00:04:33 CST [root@k8s-master .kube]#
注意同步配置文件:
cp /etc/kubernetes/admin.conf /root/.kube/config
删除.kube下的缓存目录
总结
当集群证书过期时操作步骤:
1.提前备份集群配置文件
kubeadm config view > /root/kubeadm.yaml
2.更新集群证书
kubeadm alpha certs renew all --config=/root/kubeadm.yaml
3.同步配置文件,清除.kube下缓存
cp /etc/kubernetes/admin.conf /root/.kube/config
kubernetes集群证书更新的更多相关文章
- k8s kubernetes 集群 证书更新操作
转载自https://www.cnblogs.com/kuku0223/p/12978716.html 1. 各个证书过期时间 /etc/kubernetes/pki/apiserver.crt #1 ...
- kubernetes集群证书过期之后--转发
步骤 如果有多master,需要在每个master上进行以下操作. 需要进行以下步骤 重新生成证书 重新生成对应的配置文件 重启docker 和 kubelet 拷贝kubectl 客户端文件 [ro ...
- 基于TLS证书手动部署kubernetes集群(下)
一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已经部署好了etcd集群.flannel网络以及每个节点的docker,接下来部署master节 ...
- Kubernetes集群中Service的滚动更新
Kubernetes集群中Service的滚动更新 二月 9, 2017 0 条评论 在移动互联网时代,消费者的消费行为已经“全天候化”,为此,商家的业务系统也要保持7×24小时不间断地提供服务以满足 ...
- Kubernetes 集群部署(1) -- 自签 TLS 证书
集群功能各模块功能描述: Master节点:主要由四个模块组成,APIServer,schedule, controller-manager, etcd APIServer: APIServer负责对 ...
- (转)基于TLS证书手动部署kubernetes集群(下)
转:https://www.cnblogs.com/wdliu/p/9152347.html 一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已 ...
- K8S 使用Kubeadm搭建高可用Kubernetes(K8S)集群 - 证书有效期100年
1.概述 Kubenetes集群的控制平面节点(即Master节点)由数据库服务(Etcd)+其他组件服务(Apiserver.Controller-manager.Scheduler...)组成. ...
- 和我一步步部署 kubernetes 集群
和我一步步部署 kubernetes 集群 本系列文档介绍使用二进制部署最新 kubernetes v1.6.1 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群: 在部署的过程中, ...
- Traefik实现Kubernetes集群服务外部https访问
转载请注明出处:http://www.cnblogs.com/wayneiscoming/p/7707942.html traefik 是一个前端http反向代理服务器以及负载均衡器,支持多种微服务后 ...
随机推荐
- list.add(int index, E element)和list.addAll(list1)
List.add(int index, E element): 在列表的指定位置插入指定元素(可选操作).将当前处于该位置的元素(如果有的话)和所有后续元素向右移动(在其索引中加 1). 参数:ind ...
- SpringCloud之服务调用
1.Ribbon 1.1负载均衡LB 全称Load Balance,将用户的请求平摊到多个服务器上,从而达到系统的HA.集中式LB:在服务消费者和服务提供者之间使用独立的LB设施,如硬件,由该设施负责 ...
- Java基础语法:包机制
为了更好地组织类,Java 提供了包(package)机制. 这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class).接口(interface).枚举(enumerations)和注释( ...
- 看完我的笔记不懂也会懂----MarkDown使用指南
目录 语法 [TOC] 自动生成目录 1. 标题 2. 文本强调 3. 列表 4. 图片 5. 超链接 6. 文本引用 7. 分割线 8. 代码 9. 任务列表 (MPE专属) 10. 表格 11. ...
- 看完就懂--CSS选择器优先级的计算
CSS选择器优先级的计算 什么是选择器的优先级 优先级的计算与比较(一) - 优先级具有可加性 - 选择器优先级不会超过自身最大数量级 - 同等优先级情况下,后写的覆盖前写的 - 并集选择器之间的优先 ...
- Go benchmark 一清二楚
前言 基准测试(benchmark)是 go testing 库提供的,用来度量程序性能,算法优劣的利器. 在日常生活中,我们使用速度 m/s(单位时间内物体移动的距离)大小来衡量一辆跑车的性能,同理 ...
- MySQL注入时常用函数
注入常用函数 数据库相关 database() --- 返回当前数据库名 @@datadir --- 读取数据库路径 @@basedir --- 读取数据库安全路径 @@version_compile ...
- 你不知道的Scheduled定时任务骚操作
目录 一.什么是定时任务 二.项目依赖 三.注解式定时任务 3.1 cron 3.2 fixedDelay 3.3 fixedDelayString 3.4 fixedRate 3.5 fixedRa ...
- Fastjson <=1.2.24-反序列化-任意命令执行
漏洞分析 https://www.secpulse.com/archives/72391.html 复现参考 https://www.cnblogs.com/hack404/p/11980791.ht ...
- Linux-mysql服务级别对DB的操作要领[导出-导入(执行SQL)]及修改数据库名称
A:docker容器的mysql docker exec -it mysql bash -- 进入容器 备份脚本 mysqldump -uroot -p123456 --databases dbNam ...