1

我正在 GKE 上尝试使用 SSL 终止的 nginx-ingress 以用于用例。我已经访问了数百万个有关此过程的博客,这些博客使用 cert-manager 和 nginx 入口控制器,但在我的情况下它们都不起作用。

这当然意味着我做错了什么。但我不确定是什么。这是我所做的:

  1. 创建在 ClusterIP 上公开的示例应用程序
  2. 部署 nginx-ingress
  3. 创建发行人
  4. 使用颁发者创建 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: {}

我不确定是否还有其他需要做的事情。

4

1 回答 1

1

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/
于 2019-02-05T10:35:56.007 回答