k8s证书管理命令及续期

Kubernetes 证书管理

Kubernetes 使用多种证书来确保集群组件之间的安全通信。以下是关于 Kubernetes 证书管理的详细介绍:

主要证书类型

  1. CA (Certificate Authority) 证书

    • 集群的根证书,用于签署其他所有证书
    • 通常位于 /etc/kubernetes/pki/ca.crt/etc/kubernetes/pki/ca.key
  2. API Server 证书

    • 用于验证 API Server 的身份
    • 包含所有可能的 API Server 访问名称 (DNS 和 IP)
  3. kubelet 客户端证书

    • 允许 API Server 与 kubelet 通信
  4. etcd 相关证书

    • etcd 服务器证书
    • etcd 对等通信证书
    • etcd 客户端证书
  5. Service Account 密钥对

    • 用于签署 Service Account token

证书管理工具

kubeadm 证书命令

# 检查证书过期情况
kubeadm certs check-expiration

# 更新所有证书
kubeadm certs renew all

# 更新特定证书,如 apiserver
kubeadm certs renew apiserver

手动管理证书

  1. 生成证书签名请求 (CSR)

    openssl req -new -key new.key -out new.csr -subj "/CN=example-user"
    
  2. 批准 CSR

    kubectl certificate approve <csr-name>
    

证书自动续期

Kubernetes 从 v1.15 开始支持证书自动续期功能:

  1. kubelet 证书自动续期

    • 通过 --rotate-certificates 参数启用
    • 需要配置正确的 --cluster-dns--cluster-domain
  2. kubeadm 集群

    • 默认启用自动续期
    • 证书在过期前 30 天自动更新

最佳实践

  1. 定期检查证书过期

    openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -dates
    
  2. 备份证书目录

    cp -r /etc/kubernetes/pki /backup/pki
    
  3. 使用外部 CA

    • 对于生产环境,考虑使用企业级 CA 而非 Kubernetes 自签证书
  4. 监控证书过期

    • 设置监控系统检查证书过期时间
  5. 证书轮换策略

    • 制定定期轮换策略,即使证书未过期也定期更换

常见问题处理

  1. 证书过期症状

    • API Server 无法启动
    • kubectl 命令返回证书错误
    • 节点状态变为 NotReady
  2. 修复过期证书

    • 对于 kubeadm 集群,使用 kubeadm certs renew
    • 对于手动部署集群,需要重新生成并分发证书
  3. 查看集群证书信息

    kubectl get csr
    kubectl get certificatesigningrequests
    

通过良好的证书管理实践,可以确保 Kubernetes 集群的安全性和持续可用性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值