[英]How to add new subdomain to existing kubernetes cluster
完全是 Kubernetes 的初学者,我相信这对于任何 Kubernetes 专家来说都是一个简单的问题
长话短说:在我的 CTO 辞职后,我继承了一个 Kubernetes 集群。 我的目标是让我们公司的新子域可以访问新应用程序
语境:
我的问题:
我不知道如何使入口路由器“工作”......我通过添加主机和服务名称更新了入口 yaml 配置,并且我使用了命令 kubectl apply -f ingress.yaml 来更新入口配置。 但新主机无法访问。 我什至添加了一个新主机(我们公司的一个子域),它的 serviceName 是一个已经运行的服务,可以在不同的子域上访问——希望我能在我的新子域上看到已经在工作的应用程序。 但是,这个新的子域并没有将我引导到应用程序,chrome 给了我以下输出:
server IP address could not be found.
ERR_NAME_NOT_RESOLVED
我在这里缺少什么吗? 我不应该能够在我的入口 yaml 的底部添加一个新主机并给它一个已经工作的服务的 serviceName 吗? 然后能够从不同的子域访问已经运行的应用程序?
任何帮助都将非常感激 - 这是我漫长旅程的最后一步! 这是我添加到入口 yaml 的内容的片段——这与另一个条目完全匹配,除了主机名是 www3 而不是 www
- host: www3.changed-for-privacy.com
http:
paths:
- path: /*
backend:
serviceName: changed-for-privacy-www
servicePort: 80
我相信你在 Kubernetes 方面所做的一切都很好。 如果/当在您的 Ingress 中收到时,对某个域的请求被正确路由到后端服务。
值得注意的是您从Chrome
显示的错误。 这意味着地址解析问题出在您的客户端,而不是集群。 您需要确保在笔记本电脑上设置本地 DNS 解析,以便您的www3.changed-for-privacy.com
将解析为knownIPAddress
。 例如,如果您已将Ingress
externalIP 设置为192.168.10.10
。 然后你必须在/etc/hosts/
文件中添加一个条目(如果你在 linux 上),如下所示:
www3.changed-for-privacy.com 192.168.10.10
这将确保来自浏览器对您的域的请求落在Ingress
外部 IP(当然应该是可路由的)上,并且您可能会发现您的集群工作正常!
作为一个更持久的解决方案,您当然会要求您的应用程序域已注册,以便存在它的公共 DNS 记录,该记录将映射到您的Ingress
对象的公共externalIP
IP,您将不会遇到此问题。
问题已解决!
幸运的是,这与 Kubernetes 无关! 我的域指向 cloudflare 域名服务器……当时我没有意识到。 我假设该域指向 AWS 名称服务器。 我在 AWS 的 Route 53 中查看,当我尝试在浏览器中访问域时,我惊讶地发现添加新的 CNAME 记录会导致 DNS 名称解析错误。
在 cloudflare 中添加新的 A 记录解决了我的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.