經過Service訪問應用 (1)

目錄

 

經過Service訪問應用 html

  • 經過Pod IP訪問應用 前端

  • 經過ClusterIP Service在集羣內部訪問 數據庫

 


 

 

 經過Service訪問應用

經過以前的操做,應用部署完成了,咱們的Demo網站已經成功啓動了,那麼如何訪問網站呢?api

 

經過Pod IP訪問應用

 

咱們能夠經過Pod IP來訪問以前部署的網站,可是前提是咱們須要知道Pod IP。咱們能夠經過「kubectl get」命令的參數「-o wide」來輸出相關的信息,好比Pod IP:瀏覽器

kubectl get pods -lapp=demo -o wide

若是網絡是通暢的,那麼咱們能夠在任意的節點上訪問咱們的應用,如:服務器

curl --head http://10.0.2.12

咱們使用curl以get方式請求demo應用,返回請求頭爲200,那麼表示咱們已經成功訪問了Demo。若是你還不太相信,咱們能夠經過安裝了UI界面的CentOS節點服務器的瀏覽器上訪問這些Pod IP,以下所示:網絡

 

 

雖然咱們經過Pod IP成功的訪問到了應用,可是Pod有生老病死,若是「死」了呢,咱們如何訪問?Deployment會重建麼?咱們來試一試:架構

kubectl delete pods -lapp=demo kubectl get pods -lapp=demo -o wide

很不幸的是,如上圖所示,POD IP變掉了。那麼意味着POD IP會隨着POD的生老病死而發生變化。並且,不只存在這個問題,若是咱們直接使用POD IP,那麼多個POD也變得毫無心義。那麼咱們應該到底如何來訪問咱們的應用呢?app

 

經過ClusterIP Service在集羣內部訪問

Kubernetes服務(Service)就是爲此而抽象出來的,爲了讓應用可以穩定的輸出,Service應運而生。curl

Service在Kubernetes中是一個抽象的概念,它定義了一組邏輯上的Pod和一個訪問它們的策略(一般稱之爲微服務)。Service是經過標籤選擇器來綁定一組Pod 的Endpoints(端點)對象,當Pod的IP發生變化,Endpoints也隨之變化。當Service接受到請求時,就能經過EndPoints找到請求轉發的目標Pod地址。也就是說,一般狀況下,Service定義了集羣IP和端口,EndPoints則維護了一組Pod IP和端口。

瞭解了這些,接下來咱們就使用ClusterIP Service來訪問剛纔的Demo應用。

ClusterIP Service是默認的Service類型,其經過集羣的內部IP暴露服務,所以僅能在集羣內部訪問,經常使用於數據庫等應用。

這裏,咱們定義一個簡單的Service集羣IP配置:

apiVersion: v1 kind: Service #資源類型 metadata: #標準元數據 name: demo-service #服務名稱 spec: #規範定義 type: ClusterIP #服務類型,不填寫此字段則默認爲ClusterIP類型,也就是集羣IP類型 selector: #標籤選擇器 app: demo #標籤 ports: #端口 - protocol: TCP #協議,可以支持TCP和UDP port: 80 #當前端口 targetPort: 80 #目標端口

接下來,咱們來執行Service的建立而且分別查詢了Service和Endpoints:

kubectl create -f clusterIPService.yaml kubectl get services demo-service -o wide kubectl get endpoints demo-service -o wide

 

 

如上圖所示,咱們建立了集羣IP爲「11.13.47.67」的Service,端口爲80(一般狀況下,咱們將port和targetPort設置爲相同的值)。同時咱們經過Endpoints列表看到,Endpoints自動綁定了5個Pod IP。接下來咱們試試在集羣內(節點上)訪問:

注意:若是咱們須要在建立時設置Service固定IP該如何去設置呢?能夠經過字段「spec.clusterIp」進行設置,值須要符合Service IP段要求。

 

瀏覽器很是完美的呈現了Demo。在集羣內是能夠訪問了,若是咱們提供對外服務呢?好比咱們但願咱們的Demo被其餘電腦訪問,以得到用戶的讚揚,老闆的好評,那麼該如何處理呢?咱們下一篇再來分析!

 

往期內容連接

集羣故障處理之處理思路以及健康狀態檢查(三十二)

集羣故障處理之處理思路以及聽診三板斧(三十三)

開源導入導出通用庫Magicodes.ExporterAndImporter發佈

使用Kubectl部署應用

原文出處:https://www.cnblogs.com/codelove/p/11506881.html

相關文章
相關標籤/搜索