我已经遵循了Microsoft Deploy an HTTPS ingress controller on Azure Kubernetes Service (AKS)的这份文档,并且已经成功地部署了具有nginx入口控制器的托管Kubernetes集群(AKS)。可以按预期与https一起使用。
但是,响应格式为 subdomain.eastus2.cloudapp.azure.com 的域。但是,我想使用自己的自定义域 www.somedomain.com 。然后,我将一个CNAME条目添加到我的自定义域中,指向由kubernetes集群配置的公共IP地址。
但是,当我这样做时,我会在
的浏览器上得到响应默认后端-404
似乎我需要在Azure(或其他地方)中更改公共ip地址,以便它了解自定义域以及azure子域都将使用它。
我看过以下命令:
az网络
命令。但是,还不清楚这是否是正确的命令。有谁知道我如何进行必要的更改,以便可以将自定义FQDN正确路由到我的kubernetes集群?
谢谢
答案 0 :(得分:2)
“默认后端404”表示它正在攻击入口控制器。如果它被拒绝或没有达到我希望没有“默认后端”位的通用404。此响应表示它正在击中入口控制器,但是inress控制器不知道将其发送到何处。这是因为没有匹配该请求主机的入口路由/资源。创建该路由/资源的步骤是特定于域的,因此入口规则仅适用于蔚蓝的域,而不适用于自定义域。我认为您需要返回并重复自定义域的入口资源和证书步骤,因为这些步骤是特定于域的。
答案 1 :(得分:2)
这是为我工作的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
请参见此处的示例示例:Deploy an HTTPS ingress controller on Azure Kubernetes Service (AKS)
答案 2 :(得分:0)
最近几天我一直面临着同样的问题,遇到awesome step-by-step guide,这使我可以使用Letsencrypt来使用自定义域和供应证书。
如果您要使用自己的自定义证书,则可能需要follow this article instead