GCP AnthosGKE添加了对安全websocket wss://

问题描述

尝试连接到GKE集群中部署的Anthos服务时,客户端抛出错误

WebSocket connection to 'wss://api.beta.tld' Failed: Error during WebSocket handshake: Unexpected response code: 503

客户端可以向Anthos服务执行https请求,即。 https://api.beta.tld/ping因此,仅安全的websocket会抛出503s,我不能使用ws://,因为由于内容混合,浏览器会阻止所有请求。

开箱即用,应支持GKE docs的Websocket:https://cloud.google.com/kubernetes-engine/docs/concepts/ingress-xlb#support_for_websocket

集群设置如下:


  gcloud container --project ${GOOGLE_PROJECT_ID} clusters create "${CLUSTER_NAME}" \
    --zone ${GOOGLE_COmpuTE_ZONE} \
    --machine-type "e2-small" \
    --disk-type "pd-ssd" \
    --disk-size "10" \
    --preemptible --num-nodes "3" \
    --addons HorizontalPodAutoscaling,HttpLoadBalancing,NodeLocalDNS \
    --enable-autoscaling --min-nodes "1" --max-nodes "9" \
    --release-channel "regular" \
    --enable-ip-alias \
    --enable-autoupgrade \
    --enable-autorepair \
    --max-surge-upgrade 1 \
    --max-unavailable-upgrade 0 \
    --enable-shielded-nodes \
    --shielded-secure-boot

  gcloud container clusters update "${CLUSTER_NAME}" --zone=${GOOGLE_COmpuTE_ZONE} --update-addons=CloudRun=ENABLED,HttpLoadBalancing=ENABLED

  gcloud container clusters get-credentials "${CLUSTER_NAME}" --region ${GOOGLE_COmpuTE_ZONE}

  kubectl patch cm config-domainmapping -n knative-serving -p '{"data":{"autoTLS":"Enabled"}}'

我正在这样部署服务:

    gcloud run deploy \
      --project ${GOOGLE_PROJECT_ID} \
      --platform gke \
      --cluster ${CLUSTER_NAME} \
      --cluster-location ${GOOGLE_COmpuTE_ZONE} \
      --image "gcr.io/${GOOGLE_PROJECT_ID}/${PROJECT_NAME}/${BRANCH}" \
      --set-env-vars "$(tr '\n' ',' < ${ENV_KEY_PRODUCTION})" \
      --min-instances 1 \
      --max-instances 20 \
      "${1}"

我注意到群集是使用TCP LoadBlanacer而不是https创建的,不确定是不是问题所在,还是不确定如何使用HTTPs负载平衡器创建群集,并且仍然可以与Anthos一起使用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)