我在 Cloud Run 上部署了一個映像,我需要在其中對 Kubernetes 集群內的服務進行 http 呼叫。
此服務只能從專用網路訪問。
我在那篇文章中讀到我需要將云運行實體連接到我的私有 VPC,然后我需要創建一個負載均衡器,該負載均衡器將映射到我的一個 k8s 服務。這將為我提供一個不會改變的外部 ip,我可以在 Cloud Run 中使用。
我理解對了嗎?
那么,如何為該外部 ip 分配主機名?我猜我需要更新云運行使用的 dns 嗎?
uj5u.com熱心網友回復:
假設您使用的是 Cloud Run 和 GKE,您需要執行以下步驟:
創建無服務器 VPC 連接器以將 Cloud Run 連接到部署 GKE 集群的 VPC:
gcloud services enable vpcaccess.googleapis.com
gcloud compute networks vpc-access connectors create $CONNECTOR_NAME \
--network $VPC_NETWORK \
--region $REGION \
--range $IP_RANGE
保留一個靜態內部 IP 地址:
gcloud compute addresses create $ADDRESS_NAME \
--region $REGION --subnet $SUBNETWORK
為您的 GKE 服務創建一個 LoadBalancer 并分配靜態 IP:
gcloud compute addresses describe $ADDRESS_NAME --region $REGION
上面的命令將顯示您創建的靜態 IP
創建負載均衡器服務:
apiVersion: v1
kind: Service
metadata:
name: helloweb
annotations:
networking.gke.io/load-balancer-type: "Internal"
labels:
app: hello
spec:
selector:
app: hello
tier: web
ports:
- port: 80
targetPort: 8080
type: LoadBalancer
loadBalancerIP: "YOUR.IP.ADDRESS.HERE"
您可以直接從 Cloud Run 使用 IP 地址,但也可以使用 Cloud DNS 創建 DNS 名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/523597.html
