6.使用Calico打通Svc網路

ArcherBrian發表於2024-08-01

6.使用Calico打通Svc網路

現狀

一般情況下,Kuberntes叢集暴露服務的方式有Ingress、NodePort、HostNetwork,這幾種方式用在生產環境下是沒有問題的,安全性和穩定性有保障。但是在內部開發環境下,使用起來就有諸多不便,開發希望可以直接訪問自己的服務,但是Pod IP又是隨機變化的,這個時候我們就可以使用SVC IP 或者SVC Name進行訪問

目標

打通SVC網路,使開發本地可以透過SVC IP 或 SVC Name訪問叢集服務
官方文件:https://docs.projectcalico.org/archive/v3.8/networking/service-advertisement
注意:前提是已經用BGP打通了Pod網路或已經建立了BGP對等,否則需要先進行BPG對等之後才可以繼續進行

前提

需要核心交換/路由器支援BGP動態路由

[M1]確定SVC網路資訊

kubectl cluster-info dump|grep -i  "service-cluster-ip-range"

以下為輸出

                            "--service-cluster-ip-range=172.16.0.0/16",
                            "--service-cluster-ip-range=172.16.0.0/16",
                            "--service-cluster-ip-range=172.16.0.0/16",

[M1]啟用SVC網路廣播

kubectl patch ds -n kube-system calico-node --patch \
    '{"spec": {"template": {"spec": {"containers": [{"name": "calico-node", "env": [{"name": "CALICO_ADVERTISE_CLUSTER_IPS", "value": "172.16.0.0/16"}]}]}}}}'

以下為輸出

daemonset.extensions/calico-node patched

測試,正常情況下啟用BGP廣播後,3分鐘核心心交換即可接收到路由資訊

找到叢集DNS服務進行測試

kubectl get svc kube-dns -n kube-system
NAME       TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)                  AGE
kube-dns   ClusterIP   172.16.0.10   <none>        53/UDP,53/TCP,9153/TCP   3d21h

找一個Pod IP在叢集外進行解析測試,如果可以解析到結果說明SVC網路已經打通

dig -x 172.15.190.2 @172.16.0.10      

輸出

; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> -x 172.15.190.2 @172.16.0.10
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23212
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;2.190.15.172.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
2.190.15.172.in-addr.arpa. 30   IN      PTR     172-15-190-2.ingress-nginx.ingress-nginx.svc.cluster.local. # 可以正常解析到主機記錄

;; Query time: 3 msec
;; SERVER: 172.16.0.10#53(172.16.0.10)
;; WHEN: Fri Jul 09 15:26:55 CST 2021
;; MSG SIZE  rcvd: 150

相關文章