k8s内部证书快过期时 不中断服务更新阿里云证书
当内部证书即将过期时,我们可以使用 cert-manager 自动续期证书,并确保服务不中断。下面是使用 cert-manager 在生产环境续期证书的示例:
安装 cert-manager: 可以通过在 Kubernetes 集群中部署 cert-manager 来完成安装。
配置 ClusterIssuer: 创建一个 ClusterIssuer 资源,该资源描述了如何使用 cert-manager 获取证书。以下是使用 Let’s Encrypt 的生产环境配置示例:
apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: alicloud-issuer spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: example@example.com privateKeySecretRef: name: alicloud-issuer-account-key solvers: - selector: dnsZones: - example.com dns01: alicloud: accessKeyId: ALIBABA_CLOUD_ACCESS_KEY_ID accessKeySecret: ALIBABA_CLOUD_ACCESS_KEY_SECRET region: cn-beijing
修改证书引用: 修改 ingress 资源中使用的证书,从而引用新的 ClusterIssuer 资源。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress annotations: kubernetes.io/ingress.class: nginx cert-manager.io/cluster-issuer: “letsencrypt-prod” spec: tls: - hosts: - example.com secretName: example-com-tls rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: example-service port: name: http cert-manager 会在证书过期前自动更新证书,从而确保服务的连续性。