kubernetes - 无法通过 SSL 终止使用 cert-manager 和 nginx 入口控制器
问题描述
我正在 GKE 上尝试使用 SSL 终止的 nginx-ingress 以用于用例。我已经访问了数百万个有关此过程的博客,这些博客使用 cert-manager 和 nginx 入口控制器,但在我的情况下它们都不起作用。
这当然意味着我做错了什么。但我不确定是什么。这是我所做的:
- 创建在 ClusterIP 上公开的示例应用程序
- 部署 nginx-ingress
- 创建发行人
- 使用颁发者创建 nginx 入口。
结果:
描述 nginx 入口后,事件区域显示none
. 这意味着一切都是空白的。请求证书、http 验证等没有发生任何事情。
nginx入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-staging
kubernetes.io/tls-acme: 'true'
spec:
rules:
-
host: wptls.ml
http: {paths: [{path: /, backend: {serviceName: web, servicePort: 80}}]}
tls:
-
secretName: tls-staging-cert
hosts: [wptls.ml]
clusterissuer.yml:
apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
spec:
acme:
server: 'https://acme-staging-v02.api.letsencrypt.org/directory'
email: xyz@gmail.com
privateKeySecretRef:
name: letsencrypt-sec-staging
http01: {}
我不确定是否还有其他需要做的事情。
解决方案
Try Ingress extra annotation likes
nginx.ingress.kubernetes.io/ssl-passthrough: "true" nginx.ingress.kubernetes.io/secure-backends: "true" https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/
推荐阅读
- c# - 如何在不使用实体框架且仅使用 ADO.NET 的情况下将我的实体映射到 .Net Core 项目中的表
- python - 无法按预期递增整数
- android - 从 url 下载图像并在列表视图中显示
- ssis - 从大型数据湖存储读取时出错
- android-studio - 将 Android Studio 更新到版本 3.4.2
- javascript - 计数器没有根据功能改变颜色
- javascript - 使用 ES6 样式导入的 mocha 测试
- nginx - 为什么 Nginx 将我的子域重定向到域根目录?
- google-apps-script - 如何在谷歌脚本中构建这种类型的 UI?
- android - 有什么方法可以知道用户的 InApp 和订阅购买是否已经在全新的应用安装时恢复?