K3s证书过期了?5分钟教你用Rancher界面一键更新(附10年有效期脚本)
K3s证书管理实战Rancher界面操作与10年有效期自动化方案当K3s集群的证书突然过期整个运维团队可能陷入手忙脚乱的状态。服务中断、API不可用、监控告警接踵而至——这种场景对于使用轻量级Kubernetes发行版K3s的企业来说并不陌生。本文将彻底解决这个痛点通过Rancher可视化界面结合自动化脚本实现证书一键更新与长期有效期配置。1. K3s证书体系解析与过期预警K3s作为CNCF认证的轻量级Kubernetes发行版其证书体系与原生K8s类似但更加精简。理解证书结构是解决问题的第一步。核心证书类型k3s-servingAPI Server服务端证书server-ca集群根证书client-ca客户端认证证书request-header-ca聚合层证书注意默认情况下这些证书的有效期均为12个月过期会导致集群组件间通信中断。证书过期前通常会有以下征兆kubectl get nodes返回x509: certificate has expired or is not yet validRancher界面显示集群状态为Unavailable组件日志中出现TLS握手失败错误预防性检查命令# 检查证书过期时间 openssl x509 -enddate -noout -in /var/lib/rancher/k3s/server/tls/server-ca.crt # 集群状态检查 k3s kubectl get componentstatus2. Rancher可视化证书更新流程相比命令行操作Rancher提供了更友好的图形界面来完成证书更新。以下是详细操作步骤登录Rancher控制台导航到目标集群进入集群 - 系统项目 - 资源 - 密文找到k3s-serving证书并点击编辑记录当前证书中的域名和IP信息后续脚本需要删除现有证书系统会自动生成新证书关键界面操作要点更新过程中无需重启集群新证书有效期仍为12个月操作对工作负载无影响常见问题处理若界面显示权限不足检查用户是否为集群所有者角色更新后等待2-3分钟让变更生效如遇问题可通过系统 - 日志查看组件状态3. 10年有效期证书自动化方案每年手动更新证书显然不是理想方案。通过以下脚本可实现长期有效的证书配置准备工作从主节点获取根证书cp /var/lib/rancher/k3s/server/tls/server-ca.* ~/ chmod 600 ~/server-ca.*创建自动化脚本k3s-cert-renew.sh#!/bin/bash # 参数配置 DOMAINSkubernetes,kubernetes.default,kubernetes.default.svc IPS10.43.0.1,127.0.0.1 openssl genrsa -out server.key 2048 cat csr.conf EOF [req] req_extensions v3_req distinguished_name dn [dn] [v3_req] basicConstraints CA:FALSE keyUsage digitalSignature, keyEncipherment extendedKeyUsage serverAuth subjectAltName alt_names [alt_names] DNS.1 kubernetes DNS.2 kubernetes.default DNS.3 kubernetes.default.svc IP.1 10.43.0.1 IP.2 127.0.0.1 EOF openssl req -new -key server.key -out server.csr -config csr.conf openssl x509 -req -in server.csr -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt -days 3650 -extensions v3_req -extfile csr.conf执行脚本生成新证书chmod x k3s-cert-renew.sh ./k3s-cert-renew.sh4. Rancher证书替换与验证生成新证书后通过Rancher界面完成最终替换编辑k3s-serving密文将tls.crt替换为生成的server.crt内容将tls.key替换为生成的server.key内容保存变更验证步骤# 检查新证书有效期 openssl x509 -enddate -noout -in server.crt # 测试API访问 curl -k https://localhost:6443/version # 检查组件状态 k3s kubectl get componentstatus证书更新后建议执行以下维护操作备份新证书到安全位置更新文档记录证书过期时间设置日历提醒在到期前检查5. 企业级证书管理建议对于生产环境建议采用以下进阶方案证书轮换策略对比方案类型有效期操作复杂度风险等级适用场景默认自动更新1年低中测试环境脚本长期证书自定义中低稳定生产环境外部CA管理自定义高低安全合规要求高监控方案集成Prometheus监控证书过期时间- job_name: certificate_expiry metrics_path: /probe params: module: [http_2xx] static_configs: - targets: - example.com:443 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: blackbox-exporter:9115Grafana仪表盘配置告警规则灾备方案保留旧证书副本至少7天准备快速回滚脚本在多云环境部署备用集群
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2423240.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!