google-app-engine - 在 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”
我尝试了一些设置角色、授予服务帐户权限的方法,但都没有奏效。对此的任何帮助将不胜感激。
解决方案
我的理解是,要在安装了 gcloud 的新 VM 中访问 GKE 环境,必须运行以下命令:
gcloud container clusters get-credentials
如果我们看这里,我们会找到该命令的文档。在它声称的文档中:
gcloud container clusters get-credentials
使用适当的凭据和端点信息更新 kubeconfig 文件,以将 kubectl 指向 Google Kubernetes Engine 中的特定集群。
推荐阅读
- reactjs - Ionic 4 在 android 5.1 上反应白屏
- android-fragments - 如何保存片段的当前状态
- c++ - 根据参数数量调用mixin基类的构造函数
- excel - 具有两个值的 Excel sumifs 引发错误
- html - 表格中的响应式表格 - HTML 电子邮件
- java - 添加带有豆子的外部罐子(战争之外)
- java - @ModelAttribute 字段变为空?
- python - Waitress 如何处理并发任务?
- thunderbird-addon - Thunderbird 68.4.1:如何检查邮件是否被标记为“垃圾邮件”?
- python - 在 Linux 上将 Spyder 与 Python 2.7 和 Python 3 一起使用