结合@whlee 的回答和他非常重要的后续评论,这正是我必须做的才能让它发挥作用。
您必须使用 gcloud cli 进行部署才能更改命名端口。UI 不允许您配置端口名称。从服务 yaml 部署当前是一个 beta 功能。要部署,请运行:gcloud beta run services replace /path/to/service.yaml
就我而言,我的服务最初是使用 GCP 云控制台 UI 部署的,所以这里是我运行以导出和替换的步骤。
- 将我现有的服务(名为 hermes-grpc)导出到 yaml 文件:
gcloud beta run services describe hermes-grpc --format yaml > hermes-grpc.yaml
- 编辑我的导出 yaml 并进行以下编辑:
替换:
ports:
- containerPort: 6565
和:
ports:
- name: h2c
containerPort: 6565
删除了以下几行:
tcpSocket:
port: 0
从部分中删除了name:
行
spec:
template:
metadata:
...
name:
- 最后,从编辑的 yaml 重新部署服务:
gcloud beta run services replace hermes-grpc.yaml
最后我编辑的服务 yaml 看起来像这样:
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
annotations:
client.knative.dev/user-image: interledger4j/hermes-server:latest
run.googleapis.com/client-name: cloud-console
creationTimestamp: '2020-01-09T00:02:29Z'
generation: 3
name: hermes-grpc
namespace: default
selfLink: /apis/serving.knative.dev/v1alpha1/namespaces/default/services/hermes-grpc
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/maxScale: '2'
autoscaling.knative.dev/minScale: '1'
run.googleapis.com/client-name: cloud-console
spec:
containerConcurrency: 80
containers:
image: interledger4j/hermes-server:latest
name: user-container
ports:
- name: h2c
containerPort: 6565
readinessProbe:
successThreshold: 1
resources:
limits:
cpu: 500m
memory: 384Mi
timeoutSeconds: 300
traffic:
- latestRevision: true
percent: 100