珠海做网站最好的公司有哪些,深圳建设管理中心网站,武清做网站,深圳网站制作公司兴田德润在哪里1.背景 feign.RetryableException: No route to host (Host unreachable) executing POST http://osale-thirdparty/empty/detect 服务突然会中断#xff0c;开发在看日志的时候会出现host找不到的情况#xff0c;阿里云技术推荐安装dns缓存组件#xff0c;加上这个组件会解…1.背景 feign.RetryableException: No route to host (Host unreachable) executing POST http://osale-thirdparty/empty/detect 服务突然会中断开发在看日志的时候会出现host找不到的情况阿里云技术推荐安装dns缓存组件加上这个组件会解决这种问题。一般是因为网络波动才会出现这个问题参考文档 https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/configure-nodelocal-dnscache?spma2c4g.11186623.0.0.210c10baNQdY3T
2.操作步骤 方式一配置DNSConfig自动注入 DNSConfig动态注入控制器可用于自动注入DNSConfig至新建的Pod中避免您手工配置Pod YAML进行注入。本应用默认会监听包含node-local-dns-injectionenabled标签的命名空间中新建Pod的请求您可以通过以下命令给命名空间打上Label标签。
kubectl label namespace default node-local-dns-injectionenabled
kubectl label namespace yxyw node-local-dns-injectionenabled
kubectl label namespace yxyw-uat node-local-dns-injectionenabled
kubectl get ns --show-labels
kubectl get pods -o yaml osale-open-api-69f856757f-ngqgb -n yxyw-uat说明 上述命令仅会开启default命名空间的自动注入如需对其它命名空间开启自动注入则需要替换default为目标命名空间名称。
在命名空间DNSConfig自动注入开启的情况下如需对部分Pod进行豁免即不进行注入可以调整其Pod Template中Labels标签字段加上node-local-dns-injectiondisabled标签。
ECI不支持NodeLocal DNSCache。当Deployment动态弹性扩容至ECI节点时ECI上Pod会因无法连通NodeLocal DNSCache导致域名解析超时此时必须对整个Deployment进行注入豁免可以调整其Pod Template中的Labels标签字段加上node-local-dns-injectiondisabled。 开启自动注入后您创建的Pod会被增加以下字段为了最大程度上保证业务DNS请求高可用nameservers中会额外加入kube-dns的ClusterIP地址作为备份的DNS服务器。
dnsConfig:nameservers:- 169.254.20.10- 172.21.0.10options:- name: ndotsvalue: 3- name: attemptsvalue: 2- name: timeoutvalue: 1searches:- default.svc.cluster.local- svc.cluster.local- cluster.localdnsPolicy: NonePod在同时满足以下条件时才会自动注入DNS缓存。如果您的Pod容器未注入DNS缓存服务器的IP地址请检查Pod是否未满足以下条件。
新建Pod不位于kube-system和kube-public命名空间。
新建Pod所在命名空间的Labels标签包含node-local-dns-injectionenabled。
新建Pod所在命名空间的Labels不包含ECI Pod相关标签例如virtual-node-affinity-injection、eci、alibabacloud.com/eci等。
新建Pod没有被打上eci、alibabacloud.com/eci等ECI相关标签或打上禁用DNS注入node-local-dns-injectiondisabled标签。
新建Pod的网络为hostNetwork且DNSPolicy为ClusterFirstWithHostNet或Pod为非hostNetwork且DNSPolicy为ClusterFirst。 注意验证是否注入成功要看pod的yaml因为dnsconfig是直接注入了pod里面 3.如果有些服务有特殊的dns配置要求就会覆盖掉所以要设置一下禁用掉dns缓存配置打上禁用DNS注入node-local-dns-injectiondisabled标签
apiVersion: apps/v1
kind: Deployment
metadata: name: APP_NAMElabels: app: APP_NAME
spec: replicas: REPLICASrevisionHistoryLimit: 10selector: matchLabels: app: APP_NAMEtemplate: metadata: labels: app: APP_NAMEarmsPilotAutoEnable: onarmsPilotCreateAppName: APP_NAMEone-agent.jdk.version: OpenJDK11node-local-dns-injection: disabled