istio - 带有许多服务条目的 coreDNS 过载
问题描述
当有大量只能通过防火墙访问的外部 VM 并且集群中有多个命名空间时,每个命名空间都有自己的一组外部 VM,您最终会得到大量 ServiceEntries,这反过来又会导致大量 DNS 查询为了
$host.$ns.svc.cluster.local
$host.svc.cluster.local
$host.cluster.local
$host
例如在哪里:vm-1.vm-cluster.example.com
假设每个命名空间中有 10 个命名空间和 100 个 pod,这是相当多的 DNS 查询,全部由 NXDOMAIN 回答,因此本地 istio DNS 代理缓存不起作用。这可能导致 coreDNS Pod 过载(内存大小,包括缓冲区增加并导致 DNS Pod OOM)。
我的问题是:如何防止这些查询?我想出的解决方案是:
- 用包含尾随点的 FQDN 替换 $host 不起作用,因为 X.509 证书包含没有尾随点的主机名。
- 更改每个 Pod 的 DNS 配置并将 ndots 设置为 3。但这听起来像是一场维护噩梦。
我想通过巧妙组合 ServiceEntry、VirtualService 和 Gateway 定义来解决这个问题。
K8s 1.19版(vmware版) Istio 1.9版(也是vmware版)
解决方案
推荐阅读
- javascript - 将我的 nodejs 应用程序部署在像 siteground 这样的 Web 服务器上而不是内部服务器上有什么风险?
- firebase - 如何在颤动中压缩和上传视频到firestore?
- docker - Kubernetes Node 无法访问 Docker Private Registry
- r - 如何在 r 中将日期分组为一天
- linux - 安装子键时出错(Substrate Developer Hub)
- javascript - 我是否正确释放了我的 SQL 连接?
- windows - 如何将 ext4 磁盘挂载到 Windows 机器上?
- java - 令牌不识别 '&' 和单引号
- java - 我的 Intellij-IDEA 构建我的项目对 Jrebel 来说太慢了
- json - React Redux TypeError:无法读取未定义的属性“名称”