seb*_*lel 6 nfs kubernetes coredns
问题是这样的:我们有几个 microk8s 集群运行在不同的网络上;但每个人都可以访问我们的 NAS 所在的存储网络。
在 Kubernetes 中,我们使用 nfs-provisioner (nfs-externalsubdir) 创建磁盘。有些磁盘是使用指定的 NAS 服务器的 IP 创建的。当我们需要更改IP时,我们发现磁盘与IP绑定了,更改IP意味着在其中创建新的存储资源。
为了避免这种情况,我们希望能够在 Kubernetes 集群级别设置 DNS 记录,以便我们可以使用 nfs 配置程序基于名称而不是 IP 创建存储资源,并且我们可以在需要时更改 DNS 记录(当例如,我们升级或迁移我们的外部 NAS 设备)例如,我想告诉每个 microk8s 环境:
192.168.1.4 my-nas.mydomain.local
...就像我在 /etc/hosts 文件中一样。
有没有正确的方法来实现这一目标?我尝试遵循此链接上的建议:Is there a way to add randomrecords to kube-dns? (答案被赞成 15 次,集群部分),重新启动部署,但它不起作用
我无法使用 hostAliases 功能,因为我们使用的每个图表上并未提供该功能,这就是我正在寻找更全局的解决方案的原因。
此致,
您可以使用 Kube-DNS (Core-DNS) 在 K8s 中设置自定义 DNS
您必须将配置文件作为configmap注入/传递到核心 DNS 卷。
配置图看起来像
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
Run Code Online (Sandbox Code Playgroud)
您可以在以下位置阅读更多信息: 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
归档时间: |
|
查看次数: |
10174 次 |
最近记录: |