当前位置: 首页 > news >正文

江苏省建设工程交易中心网站微信公众号开通流程

江苏省建设工程交易中心网站,微信公众号开通流程,代哥seo,网线的制作步骤k8s 系列之 CoreDNS CoreDNS工作原理 kuberntes 中的 pod 基于 service 域名解析后#xff0c;再负载均衡分发到 service 后端的各个 pod 服务中#xff0c;如果没有 DNS 解析#xff0c;则无法查到各个服务对应的 service 服务 在 Kubernetes 中#xff0c;服务发现有几…k8s 系列之 CoreDNS CoreDNS工作原理 kuberntes 中的 pod 基于 service 域名解析后再负载均衡分发到 service 后端的各个 pod 服务中如果没有 DNS 解析则无法查到各个服务对应的 service 服务 在 Kubernetes 中服务发现有几种方式基于环境变量的方式 基于内部域名的方式 从 K8S 1.11 开始K8S 已经使用 CoreDNS替换 KubeDNS 来充当其 DNS 解析 DNS 如何解析依赖容器内 resolv 文件的配置# cat /etc/resolv.conf nameserver 10.200.254.254 search default.svc.cluster.local. svc.cluster.local. cluster.local. options ndots:5ndots:5如果查询的域名包含的点 “.” 不到 5 个那么进行 DNS 查找将使用非完全限定名称或者叫绝对域名如果你查询的域名包含点数大于等于 5那么 DNS 查询默认会使用绝对域名进行查询。Kubernetes 域名的全称必须是 service-name.namespace.svc.cluster.local 这种模式服务名# nslookup kubernetes.default.svc.cluster.local Server: 10.200.254.254 Address: 10.200.254.254:53Name: kubernetes.default.svc.cluster.local Address: 10.200.0.1 DNS策略在PodDeployment RC等资源设置 dnsPolicy None 用于想要自定义 DNS 配置的场景而且需要和 dnsConfig 配合一起使用 Default 让 kubelet 来决定使用何种 DNS 策略。而 kubelet 默认使用宿主机的 /etc/resolv.conf使用宿主机的DNS策略 但 kubelet 可以配置使用什么文件来进行 DNS 策略使用 kubelet 的参数–resolv-conf/etc/resolv.conf 来决定 DNS 解析文件地址 ClusterFirst 表示 POD 内的 DNS 使用集群中配置的 DNS 服务使用 Kubernetes 中 kubedns 或 coredns 服务进行域名解析。如果解析不成功才会使用宿主机的 DNS 进行解析 ClusterFirstWithHostNet POD 是用 HOST 模式启动的HOST模式用 HOST 模式表示 POD 中的所有容器都使用宿主机的 /etc/resolv.conf 进行 DNS 查询但如果使用了 HOST 模式还继续使用 Kubernetes 的 DNS 服务那就将 dnsPolicy 设置为 ClusterFirstWithHostNet 配置文件使用 configmap healthCoreDNS 健康检查为 http://$IP:8080/health返回为 OK kubernetesCoreDNS 将根据 Kubernetes 服务和 pod 的 IP 回复 DNS 查询 prometheusCoreDNS 度量 http://$IP:9153/metrics proxy不在 Kubernetes 集群域内的查询都将转发到预定义的解析器/etc/resolv.conf可以配置多个upstream 域名服务器也可以用于延迟查找 /etc/resolv.conf 中定义的域名服务器 cache启用缓存30 秒 TTL loop检测简单的转发循环如果找到循环则停止 CoreDNS 进程 reload允许自动重新加载已更改的 Corefile loadbalanceDNS 负载均衡器默认round_robinapiVersion: v1 kind: ConfigMap metadata:name: corednsnamespace: namespace-test data:Corefile: |.:53 {errorshealthreadykubernetes cluster.local 10.200.0.0/16 {pods insecureupstream 114.114.114.114fallthrough in-addr.arpa ip6.arpanamespaces namespace-test}prometheus :9153forward . /etc/resolv.confcache 30loopreloadloadbalance} Coredns 规定协议 当前 CoreDNS 接受4种协议: DNS, DNS over TLS (DoT), DNS over HTTP/2 (DoH) and DNS over gRPC。可以通过在服务器配置文件在zone 前加个前缀来指定服务器接收哪种协议。 dns:// for plain DNS (the default if no scheme is specified). tls:// for DNS over TLS, see RFC 7858. https:// for DNS over HTTPS, see RFC 8484. grpc:// for DNS over gRPC. UDP非标准端口只在某些地区某些运营商有用DoT即DNS over TLS支持DoT的公共DNS服务有Quad9的9.9.9.9Google的8.8.8.8以及Cloudflare的1.1.1.1可以这么使用 .:5301 {forward . tls://9.9.9.9 {tls_servername dns.quad9.net}cache } .:5302 {forward . tls://1.1.1.1 tls://1.0.0.1 {tls_servername 1dot1dot1dot1.cloudflare-dns.com}cache } .:5303 {forward . tls://8.8.8.8 tls://8.8.4.4 {tls_servername dns.google}cache }由于proxy插件新版本已经移除作为external plugin需要自己编译CoreDNS。git clone https://github.com/coredns/coredns.git cd coredns make CoreDNS使用了go modules机制所以在make过程中会自动下载依赖的package。可以通过HTTP_PROXY环境变量指定或者使用国内的一些镜像如果你信得过的话通过GOPROXY环境变量指定。则在make前要修改plugin.cfg文件加入以下proxy:github.com/coredns/proxy 再make就会把插件编译进去。如果发现没有编译进去可以先执行一下go generate coredns.go再make coredns 安装部署 下载https://github.com/coredns/deployment/tree/master/kubernetes deploy.sh 用于生成用于 kube-dns 的集群上运行 CoreDNS 的 yaml 文件 coredns.yaml.sed 文件作为模板它创建一个 ConfigMap 和一个 CoreDNS deployment 的yaml 文件 ./deploy.sh 172.18.0.0/24 cluster.local 生成 yaml 文件在使用 kubectl apply 部署在 k8s 中 官方性能 计算表达式 MB required (default settings) (Pods Services) / 1000 54 cache 需要 30 MB大约缓存 10000 条记录操作 buffer 需要 5 MB用于处理查询大约可以承受 30 K QPS 量CoreDNS 的性能优化 概述 CoreDNS 作为 Kubernetes 集群的域名解析组件如果性能不够可能会影响业务本文介绍几种 CoreDNS 的性能优化手段。 合理控制 CoreDNS 副本数 考虑以下几种方式: 根据集群规模预估 coredns 需要的副本数直接调整 coredns deployment 的副本数: kubectl -n kube-system scale --replicas10 deployment/coredns 为 coredns 定义 HPA 自动扩缩容。 安装 cluster-proportional-autoscaler 以实现更精确的扩缩容(推荐)。 禁用 ipv6 如果 K8S 节点没有禁用 IPV6 的话容器内进程请求 coredns 时的默认行为是同时发起 IPV4 和 IPV6 解析而通常我们只需要用到 IPV4当容器请求某个域名时coredns 解析不到 IPV6 记录就会 forward 到 upstream 去解析如果到 upstream 需要经过较长时间(比如跨公网跨机房专线)就会拖慢整个解析流程的速度业务层面就会感知 DNS 解析慢。 CoreDNS 有一个 template 的插件可以用它来禁用 IPV6 的解析只需要给 CoreDNS 加上如下的配置: template ANY AAAA { rcode NXDOMAIN } 这个配置的含义是给所有 IPV6 的解析请求都响应空记录即无此域名的 IPV6 记录。 优化 ndots 默认情况下Kubernetes 集群中的域名解析往往需要经过多次请求才能解析到。查看 pod 内 的 /etc/resolv.conf 可以知道 ndots 选项默认为 5: 意思是: 如果域名中 . 的数量小于 5就依次遍历 search 中的后缀并拼接上进行 DNS 查询。 举个例子在 debug 命名空间查询 kubernetes.default.svc.cluster.local 这个 service: 域名中有 4 个 .小于 5尝试拼接上第一个 search 进行查询即 kubernetes.default.svc.cluster.local.debug.svc.cluster.local查不到该域名。 继续尝试 kubernetes.default.svc.cluster.local.svc.cluster.local查不到该域名。 继续尝试 kubernetes.default.svc.cluster.local.cluster.local仍然查不到该域名。 尝试不加后缀即 kubernetes.default.svc.cluster.local查询成功返回响应的 ClusterIP。 可以看到一个简单的 service 域名解析需要经过 4 轮解析才能成功集群中充斥着大量无用的 DNS 请求。 怎么办呢我们可以设置较小的 ndots在 Pod 的 dnsConfig 中可以设置: 然后业务发请求时尽量将 service 域名拼完整这样就不会经过 search 拼接造成大量多余的 DNS 请求。 不过这样会比较麻烦有没有更好的办法呢有的请看下面的 autopath 方式。 启用 autopath 启用 CoreDNS 的 autopath 插件可以避免每次域名解析经过多次请求才能解析到原理是 CoreDNS 智能识别拼接过 search 的 DNS 解析直接响应 CNAME 并附上相应的 ClusterIP一步到位可以极大减少集群内 DNS 请求数量。 启用方法是修改 CoreDNS 配置: kubectl -n kube-system edit configmap coredns 修改红框中圈出来的配置: 加上 autopath kubernetes。 默认的 pods insecure 改成 pods verified。 需要注意的是启用 autopath 后由于 coredns 需要 watch 所有的 pod会增加 coredns 的内存消耗根据情况适当调节 coredns 的 memory request 和 limit。 CoreDNS 的排障 报错***********************dns: overflowing header size 此时需修改参数 #kubectl describe configmap coredns -n kube-system Name: coredns Namespace: kube-system Labels: none Annotations: kubectl.kubernetes.io/last-applied-configuration:{apiVersion:v1,data:{Corefile:.:53 {\n errors\n health {\n lameduck 5s\n }\n ready\n kubernetes cluster.local...DataCorefile: ---- .:53 {errorshealth {lameduck 5s}readykubernetes cluster.local in-addr.arpa ip6.arpa {fallthrough in-addr.arpa ip6.arpa}template ANY AAAA {rcode NXDOMAIN}prometheus :9153forward . /etc/resolv.confbufsize 2048 ##调大此参数 或增加此参数cache 30loopreloadloadbalance }
http://www.hkea.cn/news/14480083/

相关文章:

  • php怎么做网站教程flash网页制作
  • 安卓系统上怎样做网站前端开发dsicuz做的网站
  • 阿里云备案多个网站吗阜阳市住房和城乡建设部网站
  • 格尔木市住房和城乡建设局网站wordpress 后台速度慢
  • 做网站 看什么书北京云无限优化
  • 律师做网站推广有用吗建设网站财务分析
  • 我要找人做网站的主页微信app官网下载
  • 利用虚拟主机建设网站的实验报告企业网站html
  • 北京seo公司网站建设网站用户名是什么意思
  • 购物优惠券网站怎么做福建省建设厅考试网站
  • 古楼角网站建设node.js下载wordpress
  • 成都百度网站制作六安住房和城乡建设部网站
  • 怎么样让网站正常解析计算机网站开发背景
  • 企业建站系统下载福建建设监理网站
  • 浙江省建设注册管理中心网站首页wordpress 插件推荐
  • 呼和浩特网站制作公司一级a行做爰片免费网站
  • 西安网站建设外包服务计算机软件开发培训
  • 常州外贸网站建设公司职业技术学院网站建设项目
  • 帮别人做网站开票开什么税目做会员体系的网站
  • vs2017手机网站开发淘宝券商城网站制作
  • 成都网站建设公司有哪几家口碑营销的前提及好处有哪些?
  • 咨询网站公司建设计划书什么招聘网最好找工作
  • 网站建设必须注意的事项百度投票人气排行榜入口
  • 公司网站上线的通知有哪些建设网站公司
  • 有专业做淘宝网站的美工吗wordpress电子邮件要用什么
  • 网站怎么做缓存公司网站怎么做推广
  • 用自家宽带做网站服务器贺州网站建设公司
  • 微信上浏览自己做的网站吗外贸网站源码带支付
  • 网页设计 网站开发 网络安全苏州网站建设培训学校
  • 建设银行招聘官方网站学校网站管理