我有两个分区,每个都有主节点。今天,我创建了一个简单的入口nginx控制器,并成功地将DNS test.example.com指向了zone-1中的一个公网IP。但现在我想在zone-2中创建另一个nginx控制器,并使用cloud DNS将test.example.com指向该区域的公共IP地址。我应该采取什么方法?有什么最佳实践吗?
发布于 2021-11-15 15:08:54
你的问题不清楚,需要用任何最小的可重现的例子来改进。您可以找到manual here。
根据您的主题,您在裸机中使用Kubernetes集群,但是您提到使用云DNS。您是从哪里获得云DNS的?
如果您使用的是纯裸机,那么请考虑使用MetalLB。
MetalLB为不在受支持的云提供商上运行的Kubernetes集群提供了网络负载均衡器实现,有效地允许在任何集群中使用LoadBalancer服务。
但是这种方法还有一些其他的限制,其中之一是关于Ingress:
的入口对象的状态
$ kubectl get ingress
NAME HOSTS ADDRESS PORTS
test-ingress myapp.example.com 80尽管没有负载均衡器向NGINX入口控制器提供公共IP地址,但是通过设置入口-nginx服务的externalIPs字段,可以强制更新所有被管理的入口对象的状态。
请参考下面的示例:
给定以下3节点Kubernetes集群(添加外部IP作为示例,在大多数裸机环境中,此值为)
$ kubectl get node
NAME STATUS ROLES EXTERNAL-IP
host-1 Ready master 203.0.113.1
host-2 Ready node 203.0.113.2
host-3 Ready node 203.0.113.3用户可以编辑ingress-nginx服务并将以下字段添加到对象规范中
spec:
externalIPs:
- 203.0.113.1
- 203.0.113.2
- 203.0.113.3这将依次反映在Ingress对象上,如下所示:
$ kubectl get ingress -o wide
NAME HOSTS ADDRESS PORTS
test-ingress myapp.example.com 203.0.113.1,203.0.113.2,203.0.113.3 80查看更多详细信息here
https://stackoverflow.com/questions/69929479
复制相似问题