您好,登錄后才能下訂單哦!
一直沒有寫過,通過自己學習的一些感悟,記錄下來,期望一起學習的小伙伴共同維護成長
直戳主題
kubernetes 在網絡方面提出 service 概念 ,實現原理通過 node節點上的proxy 進程調用 iptables進行網絡均衡 簡單說 就是 每個node 上面都有同樣的iptables 規則 幫你輪轉 到后端的pod上 這點 有點像 lvs 的 nat模式
再說 kubernetes 從pod 訪問 service 同樣的使用iptables 做了如上同樣規則 ,node訪問也一樣
重點, 從外部訪問 官方提供 2種辦法
a,使用 給本機通過iptalbes 映射一個端口 訪問到 service (每個機器都映射)nodeport 方式
b,通過 官方提供lb 但是 目前這種lb 只支持 google 的 與aws的 (普通用戶無法訪問)
那問題來了
我們如何從外面 訪問 到里面service 或者pod
方法 1,直接從etcd 里面調用后端pod地址實現 目前大部分同學都是這種辦法
方法2, 直接從外面訪問 service (我這里做的是直連路由模式)
5 臺機器
master 10.1.11.250 網關10.1.11.254
添加2條路由 10.1.51.0/24 gw 10.1.11.1 (通過 ospf 軟件直接學習 quagga)
10.1.52.0/24 gw 10.1.11.2
node1 10.1.11.1 網關10.1.11.254 docker 網絡 10.1.51.1 在額外起一片虛擬網卡 10.1.200.253
10.1.52.0/24 10.1.11.2 (quagga)
node2 10.1.11.2 網關10.1.11.254 docker 網絡 10.1.52.1 在額外起一片虛擬網卡 10.1.200.253
10.1.51.0/24 10.1.11.1 (quagga)
網關路由器 10.1.11.254 外網10.1.10.1 (quagga)
10.1.51.0/24 gw 10.1.11.1
10.1.52.0/24 gw 10.1.11.2
客戶端地址 10.1.10.200
加靜態 route 10.1.200.0 gw 10.1.10.1
route 10.1.11.0 gw 10.1.10.1
kubernetes 虛擬網絡 10.1.200.0/24
通過上面的設置 路由器 上面 到達 10.1.200.0/24 nexttop 10.1.11.1
nexttop 10.1.12.1
通過session cache 可以 完成簡單的輪訓分發 并保證session一致性
這樣我用session 放出的服務 10.1.200.200 5000端口 當路由轉到 10.1.11.1 或者 11.2 由于proxy 預先有5000端口的 dnat 那么訪問就直接被調度到后端 pod上面 (service 谷歌本身就做了 負載均衡 )
通過上面放置路由器 實現等價路由 來訪問不同的 node1 實現負載。
文字功底不行,簡單說到這里 ,谷歌service 感覺其實現與 lvs fullnat 差不多 顧采用 相同 直連路由方案。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。