[發明專利]一種跨命名空間檢測容器可用性的方法有效
| 申請號: | 202011351918.2 | 申請日: | 2020-11-26 |
| 公開(公告)號: | CN112463298B | 公開(公告)日: | 2022-08-30 |
| 發明(設計)人: | 徐景松;石光銀;劉金欣 | 申請(專利權)人: | 浪潮云信息技術股份公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 姜鵬 |
| 地址: | 250100 山東省濟南市高*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 命名 空間 檢測 容器 可用性 方法 | ||
本發明涉及云容器網絡技術領域,具體提供了一種跨命名空間檢測容器可用性的方法,其特征在于,具有以下步驟:S1、部署安裝kuryr集群;S2、pod創建;S3、對kubelet的源碼進行改造;S4、區分pod網絡;S5、僅對kuryr集群改造。與現有技術相比,本發明保證了容器云應用產品在宿主機與容器網絡不通的情況下依然是高穩定及高可用的,具有良好的推廣價值。
技術領域
本發明涉及云容器網絡技術領域,具體提供一種跨命名空間檢測容器可用性的方法。
背景技術
容器技術是比較流行的提供微服務的PaaS技術,而Kubernetes是近期最流行的容器編排管理技術。在Kubernetes集群中,pod的ip分配及網絡管理是由具體的cni插件實現的。目前開源的cni插件有很多種,主流的有calico、flannel等,除此之外還有一些針對特殊場景的cni插件,例如kuryr。
kuryr用于將pod容器網絡和openstack的neutron網絡打通,給pod分配的ip來自于neutron網絡中租戶的network。因此,可借助neutron的能力實現容器網絡的連通及隔離。當選擇kuryr作為集群的網絡插件時,不可避免的也會帶來一些其它的問題,首當其沖的是pod的健康檢查。
pod的健康檢查會定期檢測容器的健康狀況,一旦檢測到容器不健康,則通過重啟等手段進行處理,這從某種程度上實現了高可用。而健康檢查的原理是通過pod所在節點的kubelet進行接口調用等形式進行探測,但由于kuryr自身實現方式的限制,宿主機網絡無法直接和容器網絡打通,這會導致調用接口必定會失敗,到目前為止基于此問題沒有一個現成的解決方案。
發明內容
本發明是針對上述現有技術的不足,提供一種實用性強的跨命名空間檢測容器可用性的方法。
本發明解決其技術問題所采用的技術方案是:
一種跨命名空間檢測容器可用性的方法,具有以下步驟:
S1、部署安裝kuryr集群;
S2、pod創建;
S3、對kubelet的源碼進行改造;
S4、區分pod網絡;
S5、僅對kuryr集群改造。
進一步的,在步驟S1中,在部署安裝kuryr的集群時,在每個節點上同時安裝neutron-dhcp-agent組件,該組件會將neutron中租戶的network dhcp命名空間關聯到每個節點上。
進一步的,在步驟S2中,kuryr-controller在監測到有pod創建時,將該pod對應的租戶network信息增加到pod的注解中。
進一步的,在步驟S3中,對kubelet的源碼進行改造,將原有的健康檢查實現方式進行替換,Exec方式不需要變化。
進一步的,在步驟S3中,HTTPGet方式改造為類似ip netns exec qdhcp-{networkId}curl{ip}:{port}的方式,TCPSocket改造為類似ip netns exec qdhcp-{networkId}nc-v-z{ip}{port}的方式。
進一步的,在步驟S4中,由于cni插件只管理使用容器網絡的pod,所以與使用宿主機網絡的pod進行區分,對于使用宿主機網絡的pod仍沿用之前的實現方式。
作為優選,在步驟S5中,對kubelet源碼進行了改造,這種改造僅針對kuryr集群。
進一步的,在步驟S5中,在kubelet的啟動參數中增加--network-ns-probe開關,當值為true時使用改造后的實現方式,當值為false時使用原有的實現方式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮云信息技術股份公司,未經浪潮云信息技術股份公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011351918.2/2.html,轉載請聲明來源鉆瓜專利網。





