首页 > 解决方案 > 有没有办法向 Kubernates Ingress (nginx) 添加注释?

问题描述

目前,要使用 Let's encrypt 生成证书,必须添加这些注释

kubernetes.io/ingress.class=nginx
certmanager.k8s.io/cluster-issuer=letsencrypt-prod ### your cluster issuer name
kubernetes.io/tls-acme="true"

不幸的是,对于更大的 HA 系统,在创建新入口时手动添加有点痛苦。

这可以通过将注释应用于所有入口的单个命令来完成,这也需要在工作之后。

标签: kuberneteskubernetes-ingressnginx-ingressrancherrke

解决方案


您可以使用以下脚本对所有命名空间中的所有入口进行大规模更新。

for namespace in `kubectl get ns -o name | awk -F '/' '{print $2}'`
do
  for ingress in 'kubectl get ingress -o name | awk -F '/' '{print $2}'`
  do
    echo "Working on $ingress in $namespace"
    kubectl -n $namespace annotate ingress $ingress kubernetes.io/ingress.class=nginx
    kubectl -n $namespace annotate ingress $ingress certmanager.k8s.io/cluster-issuer=letsencrypt-prod
    kubectl -n $namespace annotate ingress $ingress kubernetes.io/tls-acme="true"
  done
done

推荐阅读