9

我遵循了 microsoft在 Azure Kubernetes 服务 (AKS) 上部署 HTTPS 入口控制器的这个文档,并成功部署了一个带有 nginx 入口控制器的托管 Kubernetes 集群 (AKS)。它可以按预期与 https 一起使用。

但是,响应格式为subdomain.eastus2.cloudapp.azure.com的域。但是我想使用我自己的自定义域www.somedomain.com。然后,我将 CNAME 条目添加到我的自定义域,指向 kubernetes 集群配置的公共 IP 地址。

但是,当我这样做时,我会在浏览器上得到响应

默认后端 - 404

看起来我需要更改 Azure(或某处)中的公共 IP 地址,以便它了解它将被自定义域以及 azure 子域使用。

我看过命令:

AZ网络

命令。但是,尚不清楚这是否是正确的命令。有谁知道我如何进行所需的更改,以便我的自定义 FQDN 可以正确路由到我的 kubernetes 集群?

谢谢

4

3 回答 3

8

这是对我有用的yaml。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: webapp-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - subdomain.eastus2.cloudapp.azure.com
    - subdomain.domain.com
    secretName: tls-secret
  rules:
  - host: subdomain.eastus2.cloudapp.azure.com
    http:
      paths:
      - path: /
        backend:
          serviceName: aks-helloworld
          servicePort: 80
  - host: subdomain.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: aks-helloworld
          servicePort: 80

请参阅此处了解已完成的示例:在 Azure Kubernetes 服务 (AKS) 上部署 HTTPS 入口控制器

于 2018-08-15T08:48:02.103 回答
4

“默认后端 404”表示它正在访问入口控制器。如果它被拒绝或未达到,我期望没有“默认后端”位的通用 404。此响应意味着它正在访问入口控制器,但入口控制器不知道将其发送到哪里。这是因为没有与该请求的主机匹配的入口路由/资源。创建该路由/资源的步骤特定于域,因此入口规则仅匹配 azure 域而不匹配自定义域。我认为您需要返回并为您的自定义域重复入口资源和证书步骤,因为这些步骤是特定于域的。

于 2018-08-14T20:50:31.980 回答
3

在过去的几天里,我遇到了同样的问题,并且遇到了一个很棒的分步指南,它允许我使用自定义域和使用 Letsencrypt 配置证书。

如果您想使用您自己的自定义证书,您可能希望改为遵循本文

于 2018-11-30T14:39:31.750 回答