【问题标题】:How to assign an hostname to an Azure Application Gateway with AGIC如何使用 AGIC 将主机名分配给 Azure 应用程序网关
【发布时间】:2024-04-12 02:25:01
【问题描述】:

我正在使用 Azure Kubernetes 服务在 k8s 上部署 Web 应用程序,并且我正在使用 Application Gateway Ingress Controller 转发来自 k8s 集群外部的请求。

我是这样定义 Ingress 的:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-path-prefix: /
    appgw.ingress.kubernetes.io/use-private-ip: "true"
    appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
  - hosts:
    - my.hostname.com
    secretName: my-cert
  rules:
  - host: my.hostname.com
    http:
      paths:
      - backend:
          serviceName: my-backend
          servicePort: 80

my-cert 是我创建的一个秘密,其中包含我公司前段时间购买的 SSL 证书,该证书对所有名称 *.hostname.com 都有效(示例)。

现在,如果我应用此 YAML,则 AGIC 将使用密钥进行配置(我可以从 AGIC 的 pod 日志中看到一切正常),但我无法通过 URL my.hostname.com 访问我的应用程序,无论是通过 HTTP 还是通过 HTTPS .

如果我从 Ingress 定义中删除 host: my.hostname.com 行,我可以通过应用程序网关的私有 IP 访问应用程序。

您知道我在使用 AGIC 时是否必须执行一些特殊操作来将主机名分配给我的应用程序网关?

【问题讨论】:

  • 据我检查here 你的- hosts 应该还有2个缩进,你能尝试添加它并再次测试吗?
  • @Jakub 我认为这不是格式问题,因为 kubectl 检查格式并在出现错误时发出警告。无论如何,我找到了解决方案(我提出了答案)

标签: azure kubernetes kubernetes-ingress azure-aks azure-application-gateway


【解决方案1】:

好的,我找到了问题/解决方案。我只需将my.hostname.com 主机名分配给公司域控制器中的专用网络IP。这样,在公司网络中,主机名可以解析为 IP

【讨论】:

    最近更新 更多