温馨提示×

centos k8s怎么加证书

小樊
40
2026-10-06 08:05:41
栏目: 智能运维

在 CentOS 上搭建 Kubernetes(k8s)并“加证书”,通常有三种常见场景,我先帮你区分一下,然后分别说做法:


一、场景 1:K8s 集群本身使用的证书(最常用)

比如 kube-apiserver、etcd、kubelet 等组件证书

1️⃣ 使用 kubeadm(推荐)

kubeadm 默认自动生成证书,一般在:

/etc/kubernetes/pki/

查看证书:

ls /etc/kubernetes/pki/

查看某个证书有效期:

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not

2️⃣ 证书过期后续签

kubeadm certs renew all

然后重启相关组件:

systemctl restart kubelet

二、场景 2:给 Ingress / 域名加 HTTPS 证书(非常常见)

比如 https://example.com

方式 A:用 cert-manager(最推荐)

1️⃣ 安装 cert-manager

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml

2️⃣ 创建 ClusterIssuer(以 Let’s Encrypt 为例)

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: your@email.com
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx

3️⃣ Ingress 使用证书

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  tls:
  - hosts:
    - example.com
    secretName: example-tls
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-svc
            port:
              number: 80

三、场景 3:自己生成自签证书并手动加

1️⃣ 生成证书

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout tls.key \
  -out tls.crt \
  -subj "/CN=example.com"

2️⃣ 创建 Secret

kubectl create secret tls example-tls \
  --cert=tls.crt \
  --key=tls.key

3️⃣ Ingress 引用

spec:
  tls:
  - hosts:
    - example.com
    secretName: example-tls

四、如果你愿意,我可以更精准帮你

你可以告诉我:

  1. ✅ 是 kubeadm 还是二进制安装
  2. ✅ 是 集群证书 / Ingress HTTPS / 内部通信
  3. ✅ CentOS 版本(7 还是 8 / Stream)
  4. ✅ 是否有域名 + 公网 IP

我可以直接给你 可复制的命令或 yaml。

0 踩