首页 > 解决方案 > 在 docker 容器中运行 gcloud

问题描述

所以我在尝试设置一个将运行和部署 kubernetes 资源的 docker 容器时被卡住了。我正在使用 tekton-pipeline 并使用 appuio/oc 设置一个容器(我想我也可以给你一个不同的容器)。

我在容器内的命令目前看起来像这样 -

设置 gcloud

curl https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz > /google-cloud-sdk.tar.gz
mkdir -p /usr/local/gcloud
tar -C /usr/local/gcloud -xvf /google-cloud-sdk.tar.gz > /dev/null
/usr/local/gcloud/google-cloud-sdk/install.sh > /dev/null
PATH=$PATH:/usr/local/gcloud/google-cloud-sdk/bin

登录 gcloud

gcloud auth activate-service-account --key-file=gcloud.json
gcloud projects list
gcloud config set project <PROJECT_NAME>
gcloud config set compute/zone us-west1-a
kubectl get pods -n tekton-pipelines

它进行身份验证,但在运行 get pods 命令时出现错误 -

已激活服务帐户凭据:[serviceaccount-name@developer.gserviceaccount.com]

PROJECT_ID 名称 PROJECT_NUMBER

<PROJECT_NAME> 我的第一个项目 <PROJECT_NUMBER>

更新了属性 [核心/项目]。更新了属性 [计算/区域]。服务器错误(禁止):pod 被禁止:用户“system:serviceaccount:tekton-pipelines:default”无法在命名空间“tekton-pipelines”中的 API 组“”中列出资源“pod”

我尝试了一些设置角色、授予服务帐户权限的方法,但都没有奏效。对此的任何帮助将不胜感激。

标签: google-app-enginekubernetesgoogle-cloud-platformgoogle-kubernetes-enginegcloud

解决方案


我的理解是,要在安装了 gcloud 的新 VM 中访问 GKE 环境,必须运行以下命令:

gcloud container clusters get-credentials

如果我们看这里,我们会找到该命令的文档。在它声称的文档中:

gcloud container clusters get-credentials使用适当的凭据和端点信息更新 kubeconfig 文件,以将 kubectl 指向 Google Kubernetes Engine 中的特定集群。


推荐阅读