帶有 K8s Gateway API 演示設置的多集群、多云網關

在集群中部署應用程序和服務

在主集群和遠程集群上部署helloworld-service :

kubectl -f 應用 helloworld-service.yaml --context=eks-cluster
kubectl -f 應用 helloworld-service.yaml --context=gke-cluster

1

將helloworld-deployment-v1 部署到主集群/EKS,將helloworld-deployment-v2 部署到遠程集群/GKE:

kubectl -f 應用 helloworld-deployment-v1.yaml --context=eks-cluster
kubectl -f 應用 helloworld-deployment-v2.yaml --context=gke-cluster

在兩個集群中 部署echoserver-service ,并僅在遠程集群中 部署 echoserver-deployment :

kubectl -f 應用 echoserver-service.yaml --context=eks-cluster
kubectl -f 應用 echoserver-service.yaml --context=gke-cluster
kubectl -f 應用 echoserver-deployment.yaml --context=gke-cluster

請注意,要實現此功能,需要在兩個集群中部署服務資源。這就是為什么我將其部署echoserver-service在主集群/EKS 中,盡管部署僅在遠程集群/GKE 中。

現在,讓我們驗證主集群和輔助集群中的部署:

kubectl 獲取 svc -n demo --context=eks-cluster
kubectl 獲取 pods -n demo --context=eks-cluster
kubectl 獲取 svc -n demo --context=gke-cluster
kubectl 獲取 pods -n demo --context=gke-cluster

主集群中有helloworld-v1pod 正在運行,而遠程集群中有helloworld-v2echoserverpod 均成功運行:

部署 K8s Gateway API 資源并驗證多集群通信

在主/EKS集群中應用網關資源:

kubectl apply -f gateway-api-gateway.yaml --context=eks-cluster

Gateway使用Istio作為控制器,部署在istio-ingress命名空間中。

在應用程序的主集群中部署HTTPRoutehelloworld,監聽路徑/hello

kubectl apply -f helloworld-httproute.yaml --context=eks-cluster

現在,讓我們通過 curlhelloworld應用程序來驗證多集群通信;但首先,我們需要獲取網關 IP:

kubectl 獲取 svc -n istio-ingress --context=eks-cluster

驗證多集群通信:

curl yours ip/hello

您可以看到該請求分別由部署在主集群和輔集群中的helloworld-v1和提供服務。helloworld-v2

現在,讓我們在主集群中部署echoserver 的 HTTPRoute,它監聽/

kubectl apply -f echoserver-httproute.yaml --context=eks-cluster


驗證網關是否能夠訪問echoserver部署在遠程集群:

網關能夠echoserver成功從部署在遠程集群的服務器收到響應。演示到此結束。

原文鏈接:https://dzone.com/articles/multicluster-gateways-with-kubernetes-gateway-api

上一篇:

面向在線旅行和旅游服務提供商的旅行和預訂 API

下一篇:

如何將機場接送和班車功能與酒店和航班預訂系統集成
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費