带有入口控制器 AKS 的自定义域和 Azure Kubernetes

oss*_*too 9 azure kubernetes azure-aks

我遵循了微软在 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 集群?

谢谢

oss*_*too 7

这是对我有用的 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
Run Code Online (Sandbox Code Playgroud)

请参见此处的示例:在 Azure Kubernetes 服务 (AKS) 上部署 HTTPS 入口控制器


Rya*_*son 4

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

  • 太棒了 - 它有效瑞安:-)。多谢。我只是使用新域向 yaml 文件添加了另一条路由。我之前设置了 CNAME,因此入口控制器立即开始正确路由。我在下面添加了完整的 yaml,以防对其他人有帮助。 (2认同)