欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IPVS下CoreDNS滾動更新解析失敗原理探究

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

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

實(shí)驗(yàn)

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

順序查詢

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

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

并發(fā)查詢

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

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

優(yōu)化

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

優(yōu)化改動

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 會自動 Reload,Relaod 過程中打印輸出的 lameduck 時間為 上次配置的時間

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

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

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

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

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

參考文檔 github.com/kubernetes/…

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

相關(guān)文章

  • Kubernetes組件和架構(gòu)簡介

    Kubernetes組件和架構(gòu)簡介

    Kubernetes是google開源的容器編排工具,本質(zhì)是一組服務(wù)器集群,在集群的各個節(jié)點(diǎn)上運(yùn)行程序來進(jìn)行容器進(jìn)行管理,最終實(shí)現(xiàn)資源管理智能化、自動化,這篇文章主要介紹了Kubernetes組件和架構(gòu)簡介,需要的朋友可以參考下
    2023-09-09
  • K8S中Pod重啟策略及重啟可能原因詳細(xì)講解

    K8S中Pod重啟策略及重啟可能原因詳細(xì)講解

    在k8s集群中當(dāng)某個pod資源需要重啟時,我們只會對其進(jìn)行刪除,由其pod控制器進(jìn)行重新構(gòu)建,下面這篇文章主要給大家介紹了關(guān)于K8S中Pod重啟策略及重啟可能原因的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • CentOS 7下YUM 本地倉庫的搭建詳細(xì)步驟

    CentOS 7下YUM 本地倉庫的搭建詳細(xì)步驟

    這篇文章主要介紹了CentOS 7下YUM 本地倉庫的搭建詳細(xì)步驟的相關(guān)資料,希望通過本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-09-09
  • 詳解Rainbond內(nèi)置ServiceMesh微服務(wù)架構(gòu)

    詳解Rainbond內(nèi)置ServiceMesh微服務(wù)架構(gòu)

    這篇文章主要為大家介紹了詳解Rainbond內(nèi)置ServiceMesh微服務(wù)架構(gòu),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • 使用sealos快速搭建K8s集群環(huán)境的過程

    使用sealos快速搭建K8s集群環(huán)境的過程

    這篇文章主要介紹了使用sealos快速搭建K8s集群環(huán)境,主要包括sealos安裝方法,虛擬機(jī)設(shè)置方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • 2022最新青龍面板部署完整版圖文教程

    2022最新青龍面板部署完整版圖文教程

    這篇文章主要介紹了2022最新青龍面板部署完整版圖文教程,下面以騰訊云服務(wù)器為例,先選地區(qū)、然后選擇官方鏡像、系統(tǒng)鏡像、Centos7.6版本,需要的朋友可以參考下
    2022-05-05
  • k8s如何使用NFS作為StorageClass提供動態(tài)存儲

    k8s如何使用NFS作為StorageClass提供動態(tài)存儲

    本文主要介紹了k8s中的StorageClass,包括其定義、引入的原因、實(shí)現(xiàn)方式、定義方法以及回收策略對數(shù)據(jù)的影響等,首先,StorageClass是在K8s集群中創(chuàng)建用于動態(tài)PV的管理,可以鏈接至不同的后端存儲,對存儲的請求可以指向StorageClass
    2024-09-09
  • K8S?中?kubectl?命令詳解

    K8S?中?kubectl?命令詳解

    這篇文章主要介紹了K8S?中?kubectl?命令,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • RFO SIG之openEuler AWS AMI 制作詳解

    RFO SIG之openEuler AWS AMI 制作詳解

    這篇文章主要為大家介紹了RFO SIG之openEuler AWS AMI 制作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • K8S節(jié)點(diǎn)本地存儲被撐爆問題徹底解決方法

    K8S節(jié)點(diǎn)本地存儲被撐爆問題徹底解決方法

    這篇文章主要為大家介紹了K8S節(jié)點(diǎn)本地存儲被撐爆問題徹底解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評論