You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在K8s测试集群中完全禁用证书以省去维护成本?

关于K8s测试环境证书维护的解决方案

首先明确:Kubernetes没有官方提供“一键禁用所有安全机制”的选项,安全认证是K8s组件通信的基础逻辑,完全禁用会直接破坏集群的正常运行,同时带来极高的安全风险——哪怕是测试环境,也可能出现误操作、恶意访问等问题,因此不建议这么做。

针对你提到的“数十个测试集群证书维护耗费精力”的问题,推荐以下更务实的解决方案:

1. 延长证书有效期

在创建集群时,通过kubeadm自定义配置文件设置超长的证书有效期(比如10年),从根源上减少证书更新的频率。

示例kubeadm配置文件(kubeadm-config.yaml):

apiServer:
  certSANs:
  - "localhost"
  - "127.0.0.1"
  - "kubernetes.default.svc.cluster.local"
etcd:
  local:
    dataDir: /var/lib/etcd
certificateValidity:
  # 设置客户端和服务端证书有效期为10年(3650天)
  clientCertificate: 3650
  serverCertificate: 3650
kubernetesVersion: v1.25.0
networking:
  serviceSubnet: 10.96.0.0/12
  podSubnet: 10.244.0.0/16

创建集群时执行:

kubeadm init --config=kubeadm-config.yaml

2. 开启自动证书轮换

K8s从v1.15版本开始支持kubeadm自动证书轮换功能,开启后证书到期前会自动更新,无需手动干预。

  • 集群初始化时,确保kubeadm配置中启用自动轮换:
    在kubeadm-config.yaml中添加:
    featureGates:
      RotateKubeletServerCertificate: true
    
  • 对于已存在的集群,修改kube-controller-manager的启动参数,添加--cluster-signing-duration=87600h(设置签名证书有效期为10年),kubelet会自动轮换自身的服务端证书。

3. 批量自动化维护

如果已经有大量运行中的测试集群,可以用脚本或配置管理工具批量执行证书更新操作:

比如写一个简单的Shell脚本,遍历所有集群的kubeconfig文件,自动执行证书更新:

#!/bin/bash
# 假设所有集群的kubeconfig放在~/kubeconfigs目录下
for config in ~/kubeconfigs/*.conf; do
  export KUBECONFIG=$config
  echo "更新集群 $(basename $config) 的证书..."
  kubeadm certs renew all
  # 重启相关组件(根据集群部署方式调整,比如kubeadm部署的集群需要重启以下服务)
  systemctl restart kube-apiserver kube-controller-manager kube-scheduler etcd
done

内容的提问来源于stack exchange,提问作者linehrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:40:46