kubernetes - 有没有办法向 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
推荐阅读
- php - SOAP 请求适用于 Postman,而不适用于 PHP
- javascript - 更新 HTML 文件文件夹中的所有 href 锚链接
- php - 使用 Godaddy 共享主机和 VPS 服务器配置 Apache solr 4.5.1
- c - 生产者消费者问题中的竞争条件
- scala - 地图数据类型创建
- android - 在 Android Studio for Mapbox 上删除或移动“重置北”按钮
- javascript - 如何从 jQuery 获取动态生成的输入字段的值到 JSON 对象中?
- php - 当通过 Nginx 和 php-fpm 处理 php 文件时,谁拥有该进程?NGINX 还是 PHP-FPM?
- laravel - 如何在 laravel encore admin 中禁用删除操作
- ubuntu-16.04 - apt-get install 出现问题