You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket部署至GKE执行rollout restart时遇API连接超时问题求助

Bitbucket Pipeline连接私有GKE集群超时问题解决

需求

  • 构建仓库镜像并推送至Artifact Registry
  • 重启该镜像对应的GKE Deployment

已配置的Bitbucket Pipeline YAML

services:
  - docker
name: Build and Deploy to Staging
deployment: staging
image: google/cloud-sdk:latest
script:
  - export DOCKER_BUILDKIT=0
  - echo $KEY_FILE_STAGING | base64 -d > ${BITBUCKET_CLONE_DIR}/gcp-key.json
  - gcloud auth activate-service-account --key-file=${BITBUCKET_CLONE_DIR}/gcp-key.json
  - gcloud config set project $GOOGLE_PROJECT_ID_STAGING
  - gcloud auth configure-docker us-north1-docker.pkg.dev
  - gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin https://us-north1-docker.pkg.dev
  - docker build -t $GCP_ARTIFACT_REGISTRY_STAGING/$IMAGE_NAME:latest .
  - docker push $GCP_ARTIFACT_REGISTRY_STAGING/$IMAGE_NAME:latest
  - gcloud container clusters get-credentials $GKE_CLUSTER_NAME_STAGING --region=$GKE_REGION_STAGING --project=$GOOGLE_PROJECT_ID_STAGING
  # - kubectl rollout restart deployment/$DEPL_NAME  << gives same below error
  - export KUBECONFIG=$KUBE_CONFIG                   << used for getting auth not found error
  - pipe: atlassian/google-gke-kubectl-run:3.1.0
    variables:
      KUBE_CONFIG: $KUBECONFIG
      KEY_FILE: $KEY_FILE_STAGING
      PROJECT: $GOOGLE_PROJECT_ID_STAGING
      COMPUTE_ZONE: $GKE_REGION_STAGING
      CLUSTER_NAME: $GKE_CLUSTER_NAME_STAGING
      KUBECTL_COMMAND: 'rollout restart deployment'
      ROLLOUT_RESOURCE_TYPE: deployment
      KUBECTL_ARGS: ['${DEPL_NAME}']
      DEBUG: 'true'
      #KUBECTL_ARGS: ["restart","deployment/${DEPL_NAME}"]

问题现象

镜像已成功构建并推送至Registry,但执行kubectl相关操作时出现超时错误:

✔ 已成功更新kube config。
48 memcache.go:265] couldn't get current server API group list: Get "https://104.100.200.200/api?timeout=32s": dial tcp 104.154.207.216:443: i/o timeout
Unable to connect to the server: dial tcp 104.100.200.200:443: i/o timeout
✖ kubectl rollout restart deployment执行失败。

尝试直接使用- kubectl rollout restart deployment/$DEPL_NAME替代pipe工具,仍出现相同超时错误。

问题原因与解决方法

  • 原因:该GKE集群为私有集群,其控制平面默认仅允许授权IP地址访问,Bitbucket Pipeline的出口IP不在授权列表内,导致无法建立连接。
  • 解决方法:将Bitbucket Pipeline的出口IP添加至GKE集群控制平面的授权地址列表中,即可正常执行kubectl命令完成Deployment重启。

内容的提问来源于stack exchange,提问作者dev21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 07:40:19