有没有办法给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系统,在创建新入口时手动添加会有点麻烦。

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

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

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

您可能想要进行

kubectl annotate ingress kubernetes.io/ingress.class=nginx --all

通过这种方式,您不需要知道ingress服务的名称,因为它适用于所有这些服务。

相关内容

  • 没有找到相关文章

最新更新