我正在尝试将 Cloud run 与私有 GKE 集群一起使用。我使用以下命令创建了集群:
gcloud beta container clusters create cluster-name \
--create-subnetwork name=cloud-run-subnet \
--enable-master-authorized-networks \
--enable-ip-alias \
--enable-private-nodes \
--enable-private-endpoint \
--master-ipv4-cidr 172.16.0.32/28 \
--no-enable-basic-auth \
--no-issue-client-certificate \
--addons=HorizontalPodAutoscaling,HttpLoadBalancing,Istio,CloudRun \
--machine-type=n1-standard-1 \
--enable-stackdriver-kubernetes \
--scopes cloud-platform \
--zone us-central1-a
我在同一 VPC 和子网中创建了一个堡垒主机,可以使用以下命令联系此集群:
gcloud compute instances create bastion \
--zone us-central1-a \
--subnet cloud-run-subnet \
--machine-type=g1-small \
--scopes cloud-platform
gcloud container clusters get-credentials
我在堡垒主机上安装了 kubectl,并使用命令将上下文切换到该集群。
我使用以下命令确保在默认命名空间上启用了 Istio:
kubectl label namespace default istio-injection=enabled
现在,当我尝试使用以下命令部署服务时,出现错误:
gcloud beta run deploy hello \
--image=gcr.io/projectname/hello-world \
--platform=gke \
--cluster=cluster-name \
--cluster-location=us-central1-a \
--connectivity=internal
错误:
ERROR: (gcloud.beta.run.deploy) Error:
failed calling webhook "webhook.serving.knative.dev": Post https://webhook.knative-serving.svc:443/?timeout=30s: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting he
aders)
我都试过了--connectivity=internal
,--connectivity=external
我得到了同样的错误。
当我尝试使用控制台创建服务时,出现以下错误:
Failed to create a service
Tracking number: d123456789
我已确保为容器注册表 ( gcr.io ) 和 GKE 集群保留相同的项目。
确切的事情适用于公共集群。我无法找到特定的文档来让它与私有 GKE 集群一起工作。有什么我想念的吗?有什么我做错了吗?