官术网_书友最值得收藏!

3.2 訪問已部署的服務

在部署了3.1節(jié)所描述的街機平臺應用程序的所有三個服務之后,你現(xiàn)在應該有三個服務在arcade命名空間中運行:

所有三個服務都公開pod的端口8080。對于game和platform,你可以使用你的服務知識來公開正確的端口。在highscore服務的情況下,OpenShift從它構建的容器中檢測到公開的端口。

3.2.1 從其他pod訪問服務

這三個服務的類型都是ClusterIP,它允許集群的其他組件訪問它。對于僅由在集群內相互通信的組件使用的服務,這很有幫助。為了測試這一點,你可以部署一個pod來與該服務交互:

該命令將在集群中創(chuàng)建一個pod,你可以通過該pod使用curl命令查詢其中一個服務。服務的主機名是你給服務的名稱,所以在這種情況下,你可以查詢http://platform:8080以訪問平臺We b服務:

前面的oc run命令在命名空間arcade中創(chuàng)建了一個pod,其中也部署了arcade平臺的所有服務。這就是為什么你可以通過將服務名稱指定為主機名來訪問該服務。如果你在另一個命名空間中創(chuàng)建curl pod,例如default命名空間,則不可能這樣做,如下面的代碼片段所示:

如你所見,default命名空間中的curl pod無法解析主機名platform。但是,我們仍然可以通過指定服務的完整內部域名來查詢不同命名空間中的服務:

OpenShift服務的內部DNS名稱設置為<service-name>.<name-space>.svc.cluster.local。

根據(jù)你正在使用的集群的網(wǎng)絡配置,跨特定命名空間的通信可能會被阻止。NetworkPolicy可用于允許或阻止特定命名空間的服務之間的通信。

3.2.2 請求的分配

在3.1節(jié)中,你將game部署擴展到三個運行的pod。如果你現(xiàn)在還沒有這樣做,或者縮小它,那么使用下面的命令來擴大它:

OpenShift將在服務的所有端點上分發(fā)請求。為了使其可見,game部署將頭文件instance-ip寫入響應,你可以從curl pod中查詢。使用以下命令列出game服務的所有端點:

下面的命令使用curl命令運行一個無限循環(huán),向game服務發(fā)送HTTP請求:

-i標志告訴curl打印響應頭。curl命令的每個輸出都使用grep進行過濾,以便只輸出響應頭instance-ip。這將產(chǎn)生一個列表,顯示請求的分布。

在命令的輸出中可以看到,請求隨機分布到所有三個部署的pod中。

按Ctrl+C退出循環(huán)。

instance-ip頭是出于本章的目的而添加的自定義頭。如果你想在自己的應用程序中復制這一點,那么可以在NGINX配置中添加以下行:

但是,我們不建議在生產(chǎn)部署中使用這種方法,而只是為了可視化哪個端點接收到請求。

主站蜘蛛池模板: 武穴市| 嫩江县| 扎鲁特旗| 大竹县| 应城市| 思茅市| 乌苏市| 会理县| 宾川县| 拉萨市| 静宁县| 喀什市| 龙南县| 桦南县| 新竹市| 象州县| 道孚县| 铜鼓县| 太白县| 偃师市| 扎囊县| 鄂州市| 广安市| 青岛市| 札达县| 东海县| 谷城县| 岑巩县| 固镇县| 灵石县| 宣武区| 海伦市| 浦城县| 昌黎县| 井陉县| 房山区| 遂宁市| 天峨县| 辛集市| 大关县| 滨海县|