首页 > 其他分享 >k8s集群访问外部域名不稳定

k8s集群访问外部域名不稳定

时间:2024-08-08 11:17:30浏览次数:14  
标签:arpa resolv 域名 sequential 集群 DNS coredns k8s

pod网络模式为default时,可以访问外部域名,网络模式为cluster first时可以访问集群中域名,但是访问公司内网域名时时通时不通,有时不能完全解析。

处理方法:

在coredns的cm中,需要添加

forward . /etc/resolv.conf {
           max_concurrent 1000
           policy sequential
        }
其中 forward . /etc/resolv.conf 配置表示使用当coredns内部不能解析的时候,向宿主机上的resolv.conf文件中配置的nameserver转发dns解析请求,。
当宿主机上namserver有多个时,默认采用的时random的方式随机转发,失败后就返回错误。而sequential为从第一个

编辑coredns的cm

kubectl edit cm coredns -o yaml  -n kube-system 

添加:policy sequential

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 {
           max_concurrent 1000
           policy sequential
        }
        cache 30
        loop
        reload
        loadbalance
    }

  errors记录错误到标准输出

  health访问http://localhost:8080/health可以查看其健康状态,lameduck 5s在进程关闭之前会等待5s使进程进入非健康状态

  ready当所有的插件都发送了准备就绪的信号时,8181端口会返回200

  kubernetes CoreDNS将根据Kubernetes的服务和Pod的IP回复DNS查询。换句话说,该插件实现了基于Kubernetes DNS的服务发现规范。ttl允许您为响应设置自定义ttl。缺省值是5秒。最小TTL为0秒,最大TTL为3600秒。将TTL设置为0将阻止记录被缓存。提供pods insecure选项是为了向后兼容kube-dns。您可以使用pods verified选项,只有在相同的名称空间中存在具有匹配IP的pod时,该选项才返回A记录。如果不使用pod记录,可以使用pods disabled选项。 

    prometheus:CoreDNS的度量标准可以在http://localhost:9153/Prometheus格式的指标中找到;可以通过http://localhost:9153/metrics获取prometheus格式的监控数据

 cache 30,表示 pttl 为30s,也就是说,一条域名解析记录在DNS缓存中的存留时间最长为30s

   loop:检测简单的转发循环,如果找到循环则停止CoreDNS进程

 reload:允许自动重新加载已更改的Corefile。编辑ConfigMap配置后,请等待两分钟以使更改生效loadbalance:这是一个循环DNS负载均衡器,可以在答案中随机化A,AAAA和MX记录的顺序

 

标签:arpa,resolv,域名,sequential,集群,DNS,coredns,k8s
From: https://www.cnblogs.com/xiaoxiaomuyuyu/p/18348557

相关文章

  • 基于K8S部署安装Jenkins
    基于K8S部署安装Jenkins1.JenkinsKubernetes清单文件2.KubernetesJenkins部署1:为Jenkins创建Namespace。最好将所有DevOps工具分类为与其他应用程序分开的命名空间。2:创建“serviceAccount.yaml”文件并复制以下管理员服务帐户清单。1.kubectl创建服务帐户。3......
  • 从0开始搭建个人博客《第五期:个人域名申请与备案》
    目录一、个人域名申请二、个人域名ICP备案三、结语一、个人域名申请        访问阿里云域名注册申请官网:https://wanwang.aliyun.com/        注册登录后,在搜索框输入想要注册的域名关键字和选择域名后缀,点击查询域名,在出现的搜索结果中,选择显示有未......
  • 【Kubernetes】k8s集群资源调度
    目录一.k8s的List-Watch机制二.scheduler的调度过程三.指定节点调度Pod1.通过nodeName调度Pod2.通过节点标签选择器调度Pod3.通过亲和性调度Pod3.1.节点亲和性硬策略软策略当软、硬策略同时存在3.2.Pod亲和性Pod亲和性(podAffinity)Pod反亲和性(podAntiAffinity)......
  • ShardingSphere之ShardingProxy集群部署
    文章目录介绍使用Zookeeper进行集群部署统一ShardingJDBC和ShardingProxy配置通过Zookeeper注册中心同步配置直接使用ShardingProxy提供的JDBC驱动读取配置文件介绍开发者手册在conf/server.yaml配置文件中有下面这一段配置,就是关于集群部署的mode:#type:stan......
  • Spring Boot 3 + MinIO集群 + Nginx 负载均衡 实现图片(头像)的上传 + 更新替换 + 下载
    1.容器准备1.1容器结构 1.2启动容器1.3docker-compose.ymlversion:'3.8'#指定DockerCompose文件的版本,这里使用版本3.8services:minio1:image:minio/minio:latest#使用最新的MinIO镜像来创建MinIO服务的容器volumes:-./data1......
  • ELK Elasticsearch 集群部署
    ELKElasticsearch集群部署数据流向:1、后台服务器产生的日志由filebeat收集通过logstasg进行标准化处理,传输给es1、es2(两个是一个主备的关系,数据都是一致的),然后传输给可视化设备。有了flebeat可以节省资源,可以通过filebeat和logstash实现远程数据收集。filereat不能......
  • 使用ansible安装mongodb分片集群
    【说明】使用ansible安装一个分片集群,三台服务器,三个mongos,三个config,三个分片节点,每三个分片有三个副本(每个节点运行三个端口的mongod)  [mongo_servers]10.x.x.21ansible_user=rootansible_ssh_pass=xxxxxxxxcluster_role=mongo1......
  • 域名被墙如何查询检测?
    在当今数字化的时代,域名是网站的重要标识,是用户访问网站的入口。然而,有时候域名可能会遭遇被墙的情况,这给网站所有者和用户带来了极大的困扰。首先,我们需要了解什么是域名被墙。域名被墙,通常是指域名在国内无法正常访问,而在国外可以访问。这种情况可能是由于网站内容违反了相关法......
  • yapi 部署k8s
    apiVersion:v1kind:Namespacemetadata:name:yapi-ns---apiVersion:v1kind:Servicemetadata:name:mongonamespace:yapi-nslabels:app:mongospec:ports:-port:27017targetPort:27017name:mongoselector:app:......
  • B站基于Apache DolphinScheduler的一站式大数据集群管理平台(BMR)初窥
    一、背景大数据服务是数据平台建设的基座,随着B站业务的快速发展,其大数据的规模和复杂度也突飞猛进,技术的追求也同样不会有止境。B站一站式大数据集群管理平台(BMR),在千呼万唤中孕育而生。本文简单介绍BMR的由来、面临的主要矛盾以及如何在变化中求得生存与发展。下图是截至2024年......