第五章 九析帶你輕鬆完爆 k8s - service externalName 介紹

目錄

1 前言

2 邀約

3 externalName 介紹

4 externalName 樣例

    4.1 jiuxi-client.yaml

    4.2 jiuxi-client-svc.yaml

    4.3 jiuxi-nginx.yaml

    4.4 jiuxi-nginx-svc.yaml

    4.5 jiuxi-ns.yaml

5 驗證樣例


1 前言

        如果你對博客有任何疑問,請告訴我。

1.png


2 邀約

        你可以從 b 站搜索 “九析”,獲取免費的、更生動的視頻資料:

clipboard2.png


3 externalName 介紹

        記得很多年前大陸流行音樂剛開始流行,李春波的一首《小芳》風靡大街小巷,正處於青春懵懂期的少男,頃刻間就被它的旋律捕獲了,於是小芳就是初戀,初戀就是小芳。

spacer.gifclipboard3.png

        後來上了大學,讀了計算機系,學到了很多基於控制檯的命令,但是不知道爲什麼,每當我敲打 ln 命令的時候,都會想起小芳,那時我天真地認爲,只要找到了小芳,我就可以找到幸福,於是我向一個情場老手討教全年級最好記的女生姓名叫什麼?他想都沒想,脫口而出——“殷靜”、“史珍香”。

        後來學了 k8s,知道了常用的 k8s service 類型—— ClusterIP、NodePort、LoadBalancer,唯獨對 externalName 置若罔聞,直到有一天在學習 Istio Sidecar 這種 API 資源的時候,才突然領悟了 ExternalName 這種 k8s service 類型是使用場景。

        externalName 這種 service 類型的作用類似軟鏈或者快捷方式。下面舉一個具體的例子。


4 externalName 樣例

        首先畫出整個樣例的架構圖:

clipboard4.pngspacer.gif

        該樣例目的是讓處於 default 命名空間下的 httpd-pod 訪問到處於 nginx-ns 命名空間下的 nginx-svc,不像以往 svc-name.ns-name.svc.cluster.local 方式跨命名空間訪問的方式,這裏我們使用 externalName 方式。

        基於上面的架構圖,所需要的資源文件如下:

jiuxi-client.yaml # httpd pod

jiuxi-client-svc.yaml # httpd svc

jiuxi-nginx.yaml # nginx pod

jiuxi-nginx-svc.yaml # nginx svc

jiuxi-ns.yaml # nginx namespace

4.1 jiuxi-client.yaml

spacer.gifclipboard5.png

4.2 jiuxi-client-svc.yaml

spacer.gifclipboard6.png

        關鍵點就在這個文件,該文件中指定了到 nginx-svc 的軟鏈,這麼做的好處是對使用者做到了透明,讓使用者感覺就好像調用自己命名空間的服務一樣。

4.3 jiuxi-nginx.yaml

spacer.gifclipboard7.png

4.4 jiuxi-nginx-svc.yaml

spacer.gifclipboard8.png

4.5 jiuxi-ns.yaml

spacer.gifclipboard9.png

        自此整個樣例代碼編寫完畢。

        首先創建 jiuxi-ns.yaml 命名空間,然後再應用其他資源文件,如下命令所示:

kubectl apply -f jiuxi-ns.yaml

kubectl apply -f jiuxi-client.yaml

kubectl apply -f jiuxi-client-svc.yaml

kubectl apply -f jiuxi-nginx.yaml

kubectl apply -f jiuxi-nginx-svc.yaml


5 驗證樣例

        所有 pod 都爭取運行之後,登錄 client,然後執行如下語句:

wget -q -O - http://jiuxi-client-svc

wget -q -O - http://jiuxi-nginx-svc.nginx-ns.svc.cluster.local

        發現兩種方式都可以正常訪問。

        自此,九析帶你輕鬆完爆 k8s service externalName。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章