目錄nginx
1 前言架構
2 邀約app
3 externalName 介紹ide
4 externalName 樣例學習
4.1 jiuxi-client.yamlspa
4.2 jiuxi-client-svc.yaml3d
4.3 jiuxi-nginx.yaml視頻
4.4 jiuxi-nginx-svc.yamlblog
4.5 jiuxi-ns.yamlip
5 驗證樣例
1 前言
若是你對博客有任何疑問,請告訴我。
2 邀約
你能夠從 b 站搜索 「九析」,獲取免費的、更生動的視頻資料:
3 externalName 介紹
記得不少年前大陸流行音樂剛開始流行,李春波的一首《小芳》風靡大街小巷,正處於青春懵懂期的少男,頃刻間就被它的旋律捕獲了,因而小芳就是初戀,初戀就是小芳。
後來上了大學,讀了計算機系,學到了不少基於控制檯的命令,可是不知道爲何,每當我敲打 ln 命令的時候,都會想起小芳,那時我天真地認爲,只要找到了小芳,我就能夠找到幸福,因而我向一個情場老手討教整年級最好記的女生姓名叫什麼?他想都沒想,脫口而出——「殷靜」、「史珍香」。
後來學了 k8s,知道了經常使用的 k8s service 類型—— ClusterIP、NodePort、LoadBalancer,惟獨對 externalName 置若罔聞,直到有一天在學習 Istio Sidecar 這種 API 資源的時候,才忽然領悟了 ExternalName 這種 k8s service 類型是使用場景。
externalName 這種 service 類型的做用相似軟鏈或者快捷方式。下面舉一個具體的例子。
4 externalName 樣例
首先畫出整個樣例的架構圖:
該樣例目的是讓處於 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
4.2 jiuxi-client-svc.yaml
關鍵點就在這個文件,該文件中指定了到 nginx-svc 的軟鏈,這麼作的好處是對使用者作到了透明,讓使用者感受就好像調用本身命名空間的服務同樣。
4.3 jiuxi-nginx.yaml
4.4 jiuxi-nginx-svc.yaml
4.5 jiuxi-ns.yaml
自此整個樣例代碼編寫完畢。
首先建立 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。