最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究

 更新時(shí)間:2023年03月09日 08:59:46   作者:Honest1y  
這篇文章主要為大家介紹了IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

IPVS 模式下,當(dāng) coredns 滾動(dòng)更新期間,集群監(jiān)控日志出現(xiàn)大量的連接超時(shí),由于日志異常的時(shí)間和 coredns 變更時(shí)間完全重疊,懷疑是 coredns 滾動(dòng)更新造成,下面進(jìn)行問(wèn)題復(fù)現(xiàn),并給出優(yōu)化方案。

實(shí)驗(yàn)

  • 創(chuàng)建一個(gè)由 2 個(gè) POD 作為后端的 coredns service
  • 通過(guò)創(chuàng)建大量 DNS 查詢來(lái)訪問(wèn)此服務(wù)
  • 觸發(fā)滾動(dòng)更新 coredns

順序查詢

while true;do time (dig +tries=1 -4 +short A <name> @<dns clusterIP> >> dig.log) >> dig.log 2>&1;done

可以看到在 順序執(zhí)行(非并發(fā)壓測(cè))的情況下,已經(jīng)出現(xiàn)較多DNS解析超時(shí)的情況

并發(fā)查詢

dnsperf是一個(gè)開(kāi)源的DNS壓力測(cè)試工具,用戶可以用它來(lái)對(duì)DNS服務(wù)器或者Local DNS做壓力測(cè)試。dnsperf目前的實(shí)現(xiàn)是單進(jìn)程模式,通過(guò)epoll非阻塞地處理網(wǎng)絡(luò)事件

$ echo "www.mervinwang.com A" > dnstest
$ dnsperf -d dnstest -s <DNS的IP> -c100000 -Q100000 -l60
數(shù)據(jù)\解析超時(shí)時(shí)間1000ms500ms
sent6742340925
completed6435834519
lost3065 (4.55%)6406 (15.65%)

優(yōu)化

通過(guò)查閱 issue 得知,這里可能與ipvs_udp_timeout有關(guān),默認(rèn)的設(shè)置的是300s,coredns 滾動(dòng)更新的時(shí)候 ipvs 中 udp 老鏈接會(huì) 300s 才刪除,如果在 300s 內(nèi)客戶端有端口重用的話就會(huì)出現(xiàn)這個(gè)問(wèn)題,并且這個(gè)時(shí)間和日志發(fā)生的時(shí)間也很類似,持續(xù)了5分鐘。

優(yōu)化改動(dòng)

kube-proxy 加了ipvs-udp-timeout=10s

    spec:
      containers:
      - args:
        - --kubeconfig=/var/lib/kube-proxy/config
        - --hostname-override=$(NODE_NAME)
        - --v=2
        - --proxy-mode=ipvs
        ...
        - --ipvs-udp-timeout=10s

等待5分鐘(關(guān)鍵?。。?/p>

coredns configmaphealth lameduck配置改成20s

Corefile: |-
    .:53 {
        errors
        health {
            lameduck 20s
        }
        ready
...
}

查看 coredns日志,等待 reload

修改 coredns configmap 后,coredns 會(huì)自動(dòng) Reload,Relaod 過(guò)程中打印輸出的 lameduck 時(shí)間為 上次配置的時(shí)間

優(yōu)化后結(jié)果

數(shù)據(jù)類型\解析超時(shí)時(shí)間1000ms500ms
sent8502780502
completed8493080423
lost97 (0.11%)79 (0.10%)

可以看到,效果還是很明顯的~

最后附上 dnspref 工具的常用參數(shù):

Dnsperf 支持下面的這些命令行參數(shù):
-s     用來(lái)指定DNS服務(wù)器的IP地址,默認(rèn)值是127.0.0.1
-p     用來(lái)指定DNS服務(wù)器的端口,默認(rèn)值是53
-d     用來(lái)指定DNS消息的內(nèi)容文件,該文件中包含要探測(cè)的域名和資源記錄類型,見(jiàn)下文
-t     用來(lái)指定每個(gè)請(qǐng)求的超時(shí)時(shí)間,默認(rèn)值是3000ms
-Q     用來(lái)指定本次壓測(cè)的最大請(qǐng)求數(shù),默認(rèn)值是1000
-c     用來(lái)指定并發(fā)探測(cè)數(shù),默認(rèn)值是100. dnsperf會(huì)從-d指定的文件中隨機(jī)選取100個(gè)座位探測(cè)域名來(lái)發(fā)送DNS請(qǐng)求.
-l     用來(lái)指定本次壓測(cè)的時(shí)間,默認(rèn)值是無(wú)窮大。
-e     本選項(xiàng)通過(guò)EDNS0,在OPT資源記錄中運(yùn)用edns-client-subnet來(lái)指定真實(shí)的client ip. 
-i     用來(lái)指定前后探測(cè)的時(shí)間間隔,因?yàn)閐nsperf是一個(gè)壓測(cè)工具,所以本選項(xiàng)目前還不支持。
-P     指定用哪個(gè)傳輸層協(xié)議發(fā)送DNS請(qǐng)求,udp或者tcp。默認(rèn)值是udp
-f     指定用什么地址類型發(fā)送DNS請(qǐng)求,inet或者inet6。默認(rèn)值是inet
-v     除了標(biāo)準(zhǔn)的輸出外,還輸出每個(gè)相應(yīng)碼的個(gè)數(shù)。
-h     打印幫助

參考文檔 github.com/kubernetes/…

以上就是IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究的詳細(xì)內(nèi)容,更多關(guān)于IPVS CoreDNS滾動(dòng)更新解析失敗的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • k8s如何給node添加標(biāo)簽(最新推薦)

    k8s如何給node添加標(biāo)簽(最新推薦)

    k8s集群如果由大量節(jié)點(diǎn)組成,可將節(jié)點(diǎn)打上對(duì)應(yīng)的標(biāo)簽,然后通過(guò)標(biāo)簽進(jìn)行篩選及查看,更好的進(jìn)行資源對(duì)象的相關(guān)選擇與匹配,這篇文章主要介紹了k8s如何給node添加標(biāo)簽,需要的朋友可以參考下
    2023-02-02
  • K8S?中?kubectl?命令詳解

    K8S?中?kubectl?命令詳解

    這篇文章主要介紹了K8S?中?kubectl?命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • windows下搭建Consul集群

    windows下搭建Consul集群

    這篇文章介紹了windows下搭建Consul集群的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Kubernetes(K8S)徹底卸載詳細(xì)教程

    Kubernetes(K8S)徹底卸載詳細(xì)教程

    網(wǎng)絡(luò)上有很多的K8S安裝安裝教程,但是唯獨(dú)很少有卸載教程,有也講得不清不楚,下面這篇文章主要給大家介紹了關(guān)于Kubernetes(K8S)徹底卸載的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 在CentOS上如何安裝Singularity高性能容器

    在CentOS上如何安裝Singularity高性能容器

    Singularity是勞倫斯伯克利國(guó)家實(shí)驗(yàn)室專門(mén)為大規(guī)模、跨節(jié)點(diǎn)HPC和DL工作負(fù)載而開(kāi)發(fā)的容器化技術(shù),具備輕量級(jí)、快速部署、方便遷移等優(yōu)勢(shì),且支持從Docker鏡像格式轉(zhuǎn)換為Singularity鏡像格式,本文給大家介紹在CentOS上如何安裝Singularity高性能容器,感興趣的朋友一起看看吧
    2024-05-05
  • k8s dashboard安裝過(guò)程記錄

    k8s dashboard安裝過(guò)程記錄

    這篇文章主要介紹了k8s dashboard安裝過(guò)程記錄,本案例k8s版本為v1.22.17,所以安裝v2.7.0版本的dashboard,需要的朋友可以參考下
    2024-05-05
  • 自定義資源CRD使用介紹

    自定義資源CRD使用介紹

    這篇文章主要為大家介紹了自定義資源CRD的使用示例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 一文詳解基于k8s部署Session模式Flink集群

    一文詳解基于k8s部署Session模式Flink集群

    這篇文章主要為大家介紹了基于k8s部署Session模式Flink集群詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 常見(jiàn)Kubernetes kubectl命令使用詳解

    常見(jiàn)Kubernetes kubectl命令使用詳解

    這篇文章主要為大家介紹了常見(jiàn)Kubernetes kubectl命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • k8s部署rabbitmq集群的方式

    k8s部署rabbitmq集群的方式

    本次部署方式為setafulset的方式部署rabbitmq集群,使用svc的無(wú)頭服務(wù),本次涉及使用到的服務(wù)有setafulset、secret、configmap、service、pv、pvc、sa,在rabbitmq的官網(wǎng)中使用的是operator的方式,感興趣的朋友一起看看吧
    2024-03-03

最新評(píng)論

城固县| 南川市| 神木县| 裕民县| 兴隆县| 偏关县| 辽宁省| 莎车县| 普宁市| 罗平县| 福鼎市| 宁强县| 奉化市| 镇原县| 阳信县| 山丹县| 龙江县| 师宗县| 白河县| 高邮市| 通城县| 天祝| 成武县| 名山县| 鸡西市| 淳安县| 天峨县| 边坝县| 清徐县| 浮山县| 新源县| 龙陵县| 石屏县| 吉木萨尔县| 贵德县| 朔州市| 平安县| 子长县| 喜德县| 呈贡县| 嘉善县|