目 录CONTENT

文章目录

Kubernetes集群外网访问配置指南:TLS/SSL证书更新详解

Administrator
2025-07-28 / 0 评论 / 1 点赞 / 5 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Kubernetes集群外网访问配置指南:TLS/SSL证书更新详解

背景说明

在云服务器上搭建的Kubernetes集群若使用内网IP,需通过外网(如Lens工具)访问时,必须将集群的外网IP或域名添加到TLS/SSL证书中。本文将为您详解证书更新全流程,助您轻松实现外网访问。

操作步骤

🌟 操作前必读

重要提醒
⚠️ 操作前务必备份原始证书文件!

cp -rp /etc/kubernetes /etc/kubernetes.bak

🔍 查看现有证书信息

  • 进入证书目录
    cd /etc/kubernetes/pki
    
  • 查看证书详情
    openssl x509 -in apiserver.crt -noout -text|grep -A 2 'Alternative'
    # 输出示例:
    X509v3 Subject Alternative Name:
      DNS:k8s-master, DNS:kubernetes, DNS:kubernetes.default, DNS:kubernetes.default.svc, DNS:kubernetes.default.svc.cluster.local, IP Address:10.96.0.1, IP Address:192.168.80.128
    

    输出示例显示当前仅允许通过内网IP访问,若需域名访问需配置hosts指向该IP。

🔧 证书更新准备

  • 备份证书(安全第一!):
    cd /etc/kubernetes/pki
    mv apiserver.crt apiserver.crt.bak
    mv apiserver.key apiserver.key.bak
    
  • 生成默认配置文件
    kubeadm config print init-defaults > /etc/kubernetes/kubeadm-config.yaml
    

✍️ 修改配置文件

  • 编辑配置文件
    打开 kubeadm-config.yaml,在 certSANs 字段中添加新域名或IP:
    certSANs:
      - k8s.example.com  # 新增域名
      - 192.168.80.128   # 集群内网IP(若需保留内网访问)
      - 10.96.0.1        # 集群服务IP(必须保留!)
      # 保留原有默认域名
      - kubernetes
      - kubernetes.default
      - kubernetes.default.svc
      - kubernetes.default.svc.cluster.local
    
    如果集群的配置文件中没有certSANs配置段,你可以直接加在类似下面的位置处:
    apiServer:
      certSANs:
    ....
    

🔄 重新生成证书

  • 执行证书生成命令
    kubeadm init phase certs apiserver --config /etc/kubernetes/kubeadm-config.yaml
    
    init_apiserver.png

🔍 验证证书更新

  • 再次查看证书详情
    openssl x509 -in apiserver.crt -noout -text|grep -A 2 'Alternative'
    

🔁 重启API服务

  • 高可用集群:直接重启kube-apiserver进程,kubelet会自动拉起。
  • 单节点集群
    # 通过移动yaml文件触发重启(业务低峰期操作!)
    mv /etc/kubernetes/manifests/kube-apiserver.yaml /root/
    mv /root/kube-apiserver.yaml /etc/kubernetes/manifests
    

🌐 访问配置

更新kubeconfig文件中的server地址

apiVersion: v1
clusters:
- cluster:
    server: https://k8s.example.com:6443  # 替换为您的域名或IP

k8s_access

🎉 完成!

保存配置后,即可通过公网IP或域名访问集群。本地域名需配置hosts文件哦!

📌 小贴士:操作前请确保已全面测试,建议在非生产环境验证流程。

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区