这里有一个问题:我们有几个microk 8 s集群运行在不同的网络上,但每个都可以访问我们的存储网络,我们的NAS。
在Kubernetes中,我们使用nfs-provider(nfs-externalsubdir)创建磁盘。一些磁盘是使用指定的NAS服务器的IP创建的。一旦我们必须更改IP,我们发现磁盘已绑定到IP,更改IP意味着在其中创建新的存储资源。
为了避免这种情况,我们希望能够在Kubernetes集群级别上设置DNS记录,这样我们就可以基于名称而不是IP来创建具有nfs配置的存储资源,并且我们可以在需要时更改DNS记录(例如,当我们升级或迁移外部NAS设备时)例如,我想告诉每个microk 8 s环境:
192.168.1.4 my-nas.mydomain.local
.就像我在/etc/hosts文件中一样。
有没有一个合适的方法来实现这一点?我试图按照这个链接上的建议:Is there a way to add arbitrary records to kube-dns?(答案被投票了15次,集群部分),重新启动部署,但它不起作用
我不能使用hostAliases功能,因为它不是在我们使用的每个图表上提供的,这就是为什么我在寻找一个更全局的解决方案。
此致:
2条答案
按热度按时间nxagd54h1#
第一个月
为此,您可以尝试无头服务,而不接触coreDNS:
字符串
使用它:
my-nas.kube-system.svc.cluster.local
x33g5p2x2#
您可以使用Kube-DNS(核心DNS)在K8中设置自定义DNS
您必须将配置文件作为配置Map注入/传递到核心DNS卷。
Configmap将类似于
字符串
阅读更多关于:https://kubernetes.io/docs/tasks/administer-cluster/dns-custom-nameservers/
https://platform9.com/kb/kubernetes/how-to-customize-coredns-configuration-for-adding-additional-ext的
或者也可以将外部DNS与核心DNS配合使用
您可以对服务(资源)进行注解,外部DNS会将地址添加到core-dns
阅读更多关于它:
https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/coredns.md的
https://docs.mirantis.com/mcp/q4-18/mcp-deployment-guide/deploy-mcp-cluster-using-drivetrain/deploy-k8s/external-dns/verify-external-dns/coredns-etxdns-verify.html的