本發(fā)明屬于容器管理領域,尤其涉及一種k8s網(wǎng)絡撥測方法、裝置、設備及存儲介質。
背景技術:
1、容器是微服務部署的主流方式,k8s是容器編排事實標準。大規(guī)模k8s集群中存在工作節(jié)點,k8s中使用cni插件在這些節(jié)點上構建一個龐大而復雜的容器網(wǎng)絡。k8s集群內(nèi)通過service為各個服務做負載均衡,并通過coredns做服務發(fā)現(xiàn)。集群外訪問服務通常還需要通過ingress-nginx提供從集群外部到集群內(nèi)服務的http和https路由http服務。整個服務訪問鏈路上任何一個環(huán)節(jié)異常都可能影響服務穩(wěn)定性,排查也非常困難。
2、當前一般通過mirantis/k8s-netchecker檢查k8s?node節(jié)點網(wǎng)絡,另外還可以通過postfinance/kubenurse作為開源k8s網(wǎng)絡檢查工具,能夠檢查節(jié)點之間、節(jié)點和svc、ingress之前的網(wǎng)絡延遲、coredns延遲。但ingress地址只能配置一個,大規(guī)模生產(chǎn)環(huán)境可能有多個lb轉發(fā)到后端ingress集群,且現(xiàn)有方案缺少對外部依賴地址,包括域名、ip端口的撥測,導致?lián)軠y的覆蓋不夠全面。
技術實現(xiàn)思路
1、鑒于以上現(xiàn)有技術的不足,發(fā)明的目的在于提供一種k8s網(wǎng)絡撥測方法、裝置、設備及存儲介質。
2、本發(fā)明第一方面提供一種k8s網(wǎng)絡撥測方法,包括:
3、s1:建立服務器組件及智能體組件,并將所述服務器組件及所述智能體組件分別進行部署;
4、s2:啟動所述服務器組件,并通過所述服務器組件維持k8s集群的內(nèi)部負載均衡及外部負載均衡;
5、s3:通過所述智能體組件撥測k8s集群的服務,獲得撥測結果;
6、s4:將所述撥測結果可視化,以完成k8s集群撥測。
7、根據(jù)本發(fā)明提供的一種k8s網(wǎng)絡撥測方法,步驟s1中的所述服務器組件為netcheck-server組件,所述智能體組件為netcheck-agent組件。
8、根據(jù)本發(fā)明提供的一種k8s網(wǎng)絡撥測方法,步驟s1中,所述服務器組件通過deployment部署至k8s集群,所述智能體組件通過daemonset方式分別部署至每個節(jié)點。
9、根據(jù)本發(fā)明提供的一種k8s網(wǎng)絡撥測方法,步驟s2中,所述服務器組件通過svc服務進行k8s集群的內(nèi)部負載均衡,通過ingress入口進行k8s集群的外部負載均衡。
10、根據(jù)本發(fā)明提供的一種k8s網(wǎng)絡撥測方法,步驟s3具體包括:
11、所述智能體組件撥測每個pod單元的alive接口;
12、所述智能體組件通過svc服務撥測服務器組件;
13、所述智能體組件基于ingress入口,通過配置多個域名撥測k8s集群的內(nèi)部服務;
14、所述智能體組件通過多個lb地址撥測虛擬ip地址至ingress入口至svc服務的鏈路;
15、所述智能體組件通過ip端口或域名撥測外部依賴服務。
16、根據(jù)本發(fā)明提供的一種k8s網(wǎng)絡撥測方法,當所述智能體組件撥測外部依賴服務時,默認對所有外部依賴服務進行撥測;
17、當所述智能體組件撥測指定外部依賴服務時,所述智能體組件與kube-apiserver組件保持通信以獲取當前節(jié)點標簽,當所述當前節(jié)點標簽與預設的指定節(jié)點標簽匹配時,對匹配的當前節(jié)點標簽對應的當前節(jié)點的外部依賴服務進行撥測。
18、根據(jù)本發(fā)明提供的一種k8s網(wǎng)絡撥測方法,步驟s4中,所述服務器組件及所述智能體組件均提供metrics接口,服務監(jiān)控系統(tǒng)通過所述metrics接口對k8s集群的網(wǎng)絡配置及所述撥測結果進行可視化監(jiān)控。
19、本發(fā)明第二方面提供一種k8s網(wǎng)絡撥測裝置,包括:
20、部署模塊:用于將建立服務器組件及智能體組件分別進行部署;
21、負載均衡模塊:用于啟動所述服務器組件,還用于通過所述服務器組件維持k8s集群的內(nèi)部負載均衡及外部負載均衡;
22、撥測模塊:用于通過所述智能體組件撥測k8s集群的服務,獲得撥測結果;
23、可視化模塊:用于將所述撥測結果可視化。
24、本發(fā)明第三方面提供一種k8s網(wǎng)絡撥測設備,包括:
25、存儲器和至少一個處理器,所述存儲器中存儲有指令;
26、所述處理器調(diào)用所述存儲器中的所述指令,以使得k8s網(wǎng)絡撥測設備執(zhí)行如以上任一項所述的k8s網(wǎng)絡撥測方法。
27、本發(fā)明第四方面提供一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有指令,所述指令被處理器執(zhí)行時實現(xiàn)如以上任一項所述的k8s網(wǎng)絡撥測方法。
28、本發(fā)明有益效果如下:
29、本發(fā)明提供的一種k8s網(wǎng)絡撥測方法、裝置、設備及存儲介質,通過在k8s集群各個節(jié)點部署agent,通過agent與server直接的撥測、agent通過對svc、ingress、coredns和外部依賴地址和域名的撥測,快速定位異常機器,提升網(wǎng)絡問題處理速度。本發(fā)明部署的agent通過對server的svc、ingress、lb進行撥測,能夠全面檢測到服務暴露的整個鏈路上lb、ingress、svc連通性和域名解析情況??膳渲脫軠y多個ingress和lb地址配置;其次agent和server之間的相互撥測可以檢測pod之間網(wǎng)絡健康情況;另外agent可以對外部ip端口和域名撥測,及時發(fā)現(xiàn)外部依賴連通性問題,還通過label限定可以限定需要訪問外部依賴的機器才撥測,減少臟數(shù)據(jù),更加精準發(fā)現(xiàn)問題。
30、本發(fā)明提供的一種k8s網(wǎng)絡撥測方法、裝置、設備及存儲介質,功能豐富,agent通過對server的svc、ingress、lb進行撥測,能夠全面檢測到服務暴露的整個鏈路上lb、ingress、svc連通性和域名解析情況,可配置撥測多個ingress和lb地址配置;且配置靈活,agent可以對外部ip端口和域名撥測,及時發(fā)現(xiàn)外部依賴連通性問題,通過label限定可以限定需要訪問外部依賴的機器才撥測,減少臟數(shù)據(jù),更加精準發(fā)現(xiàn)問題。
1.一種k8s網(wǎng)絡撥測方法,其特征在于,包括:
2.根據(jù)權利要求1所述的一種k8s網(wǎng)絡撥測方法,其特征在于,步驟s1中的所述服務器組件為netcheck-server組件,所述智能體組件為netcheck-agent組件。
3.根據(jù)權利要求1所述的一種k8s網(wǎng)絡撥測方法,其特征在于,步驟s1中,所述服務器組件通過deployment部署至k8s集群,所述智能體組件通過daemonset方式分別部署至每個節(jié)點。
4.根據(jù)權利要求1所述的一種k8s網(wǎng)絡撥測方法,其特征在于,步驟s2中,所述服務器組件通過svc服務進行k8s集群的內(nèi)部負載均衡,通過ingress入口進行k8s集群的外部負載均衡。
5.根據(jù)權利要求1所述的一種k8s網(wǎng)絡撥測方法,其特征在于,步驟s3具體包括:
6.根據(jù)權利要求5所述的一種k8s網(wǎng)絡撥測方法,其特征在于,當所述智能體組件撥測外部依賴服務時,默認對所有外部依賴服務進行撥測;
7.根據(jù)權利要求1所述的一種k8s網(wǎng)絡撥測方法,其特征在于,步驟s4中,所述服務器組件及所述智能體組件均提供metrics接口,服務監(jiān)控系統(tǒng)通過所述metrics接口對k8s集群的網(wǎng)絡配置及所述撥測結果進行可視化監(jiān)控。
8.一種k8s網(wǎng)絡撥測裝置,其特征在于,包括:
9.一種k8s網(wǎng)絡撥測設備,其特征在于,包括:
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有指令,所述指令被處理器執(zhí)行時實現(xiàn)如權利要求1-7中任一項所述的k8s網(wǎng)絡撥測方法。