GCP Cloud Run:创建服务失败

问题描述 投票:1回答:1

我正在尝试将Cloud与私有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

我在堡垒主机上安装了kubectl,并使用gcloud container clusters get-credentials命令将上下文切换到了该集群。

我使用以下命令确保在默认名称空间上启用了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集群一起使用。有什么我想念的吗?我有做错什么吗?

google-cloud-platform google-kubernetes-engine istio google-cloud-run knative
1个回答
0
投票

您可以尝试使用yaml文件部署Cloud Run服务吗?

这里是文件

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  name: hello
  namespace: default
spec:
  traffic:
  - percent: 100
    latestRevision: true
  template:
    spec:
      containers:
      - image: gcr.io/projectname/hello-world

只需从本营执行kubectl apply -f <file>

[如果有效,则意味着gcloud命令无法与私有集群通信(并且您可以对此打开问题)。

© www.soinside.com 2019 - 2024. All rights reserved.