带有入口控制器AKS的自定义域和Azure Kubernetes
我遵循了微软的这篇文档,并成功地使用nginx入口控制器部署了一个托管Kubernetes集群(AKS)。它可以像预期的那样使用https 但是,响应格式为subdomain.eastus2.cloudapp.azure.com的域。但是,我想使用自己的自定义域www.somedomain.com。然后,我向自定义域添加一个CNAME条目,指向kubernetes集群配置的公共ip地址 但是,当我这样做时,我会在的浏览器上得到响应 默认后端-404 看起来我需要更改Azure(或其他地方)中的公共ip地址,以便它了解自定义域以及Azure子域将使用该地址 我看了一下命令: az网络 指挥部。然而,目前还不清楚这是否是正确的命令。有人知道如何进行所需的更改,以便将自定义FQDN正确路由到kubernetes群集吗带有入口控制器AKS的自定义域和Azure Kubernetes,azure,kubernetes,azure-aks,Azure,Kubernetes,Azure Aks,我遵循了微软的这篇文档,并成功地使用nginx入口控制器部署了一个托管Kubernetes集群(AKS)。它可以像预期的那样使用https 但是,响应格式为subdomain.eastus2.cloudapp.azure.com的域。但是,我想使用自己的自定义域www.somedomain.com。然后,我向自定义域添加一个CNAME条目,指向kubernetes集群配置的公共ip地址 但是,当我这样做时,我会在的浏览器上得到响应 默认后端-404 看起来我需要更改Azure(或其他地方)中的公
谢谢,默认后端404表示它正在访问入口控制器。如果它被拒绝或没有达到我希望一个通用404没有'默认后端'位。此响应意味着它正在命中入口控制器,但inress控制器不知道将其发送到何处。这是因为没有与该请求的主机匹配的入口路由/资源。创建路由/资源的步骤特定于域,因此入口规则只匹配azure域,而不匹配自定义域。我认为您需要返回并重复自定义域的入口资源和证书步骤,因为这些步骤是特定于域的。以下是为我工作的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
请参见此处了解已完成的示例:在过去几天中,我一直面临相同的问题,并遇到了一个允许我在Letsencrypt中使用自定义域和设置证书的问题
如果您想使用自己的自定义证书,您可能需要Great-它可以工作Ryan:-)。谢谢。我只是用新域向yaml文件添加了另一个路由。我之前设置了CNAME,因此入口控制器立即开始正确路由。我已经在下面添加了完整的yaml,以防它对其他人有帮助。您可以尝试将自定义FQDN指向Kubernetes群集的Azure FQDN。感谢链接。令人遗憾的是,微软正在推广Azure DNS,而不是指导如何与外部DNS提供商解决问题。您好,首先感谢您发布完整的yml。您是否必须创建Azure DNS资源等?或者使用外部DNS并将A记录指向入口控制器就足够了?