本文永久链接: https://www.xtplayer.cn/ingress/set-ingress-default-ssl-cert/

rke1

  1. 创建 ingress default ssl cert secret
kubectl -n ingress-nginx \
create secret tls ingress-default-cert \
--cert=mycert.cert --key=mycert.key
  1. 编辑集群 YAML,在 ingress 配置下添加如下 extra_args 参数
ingress:
provider: "nginx"
extra_args:
default-ssl-certificate: "ingress-nginx/ingress-default-cert"
  1. 重启 ingress pod
kubectl delete pod -l app=ingress-nginx -n ingress-nginx

rke2

  1. 在 kube-system 命名空间下创建一个名为 custom-ingress-default-ssl-cert 的密文,可以在 ui 操作也可以用以下命令创建:
kubectl -n kube-system \
create secret tls custom-ingress-default-ssl-cert \
--cert=mycert.cert --key=mycert.key
# 其中的 mycert.cert 和 mycert.key 为脚本创建出来的 tls 证书。
  1. 将以下 yaml 导入 rke2-k8s 集群,ingress 会自动更新配置
# /var/lib/rancher/rke2/server/manifests/rke2-ingress-nginx-config.yaml
---
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: rke2-ingress-nginx
namespace: kube-system
spec:
valuesContent: |-
controller:
extraArgs:
default-ssl-certificate: "kube-system/custom-ingress-default-ssl-cert"