kubernetes - github 操作 GKE 工作流 - 部署说明
问题描述
我已经在 GitHub 上使用源代码建立了一个 Google Cloud Platform kubernetes 集群(和 Container Registry)。源代码分为文件夹,每个微服务都有单独的 Dockerfile。
我想使用 GitHub 操作设置 CI/CD。
据我了解,默认的 GKE 工作流将使用秘密连接到 gcloud,构建图像并将它们推送到 Container Registry。然后执行更新。
我的问题
- 部署如何执行?
- 自定义是为了什么?
- 除了GKE 密钥/令牌之外,我是否必须在 gcloud 上配置任何其他内容
- 假设我想更新多个 docker 镜像。构建多个图像并推送它们就足够了吗?如下所示(为了清楚起见,稍微简化了一点),还是我还必须修改Deploy作业:
- name: Build
run: |-
docker build -t "gcr.io/$PROJECT_ID/$IMAGE_1:$GITHUB_SHA" service1/.
docker build -t "gcr.io/$PROJECT_ID/$IMAGE_2:$GITHUB_SHA" service2/.
docker build -t "gcr.io/$PROJECT_ID/$IMAGE_3:$GITHUB_SHA" service3/.
- name: Publish
run: |-
docker push "gcr.io/$PROJECT_ID/$IMAGE_1:$GITHUB_SHA"
docker push "gcr.io/$PROJECT_ID/$IMAGE_2:$GITHUB_SHA"
docker push "gcr.io/$PROJECT_ID/$IMAGE_3:$GITHUB_SHA"
这是 GKE 工作流中的部署片段:
# Deploy the Docker image to the GKE cluster
- name: Deploy
run: |-
./kustomize edit set image gcr.io/PROJECT_ID/IMAGE:TAG=gcr.io/$PROJECT_ID/$IMAGE:$GITHUB_SHA
./kustomize build . | kubectl apply -f -
kubectl rollout status deployment/$DEPLOYMENT_NAME
kubectl get services -o wide
解决方案
推荐阅读
- wso2 - 在 WSO2 Enterprise Integrator 中维护不同版本的 API 的最佳方法是什么,并且两者都应该运行
- oracle - 如何在包体oracle中参数化列名和表名
- java - 在 Android Studio Emulator 中连接到本地 FTP 服务器
- python - 如何为数据流安装 python 依赖项
- xml - xpath 根据路径后面的标准识别路径中间的值
- sql - 使用 Active Record 查询接口直接访问 Active Storage
- haskell - 反复追加到字符串haskell
- c# - Asp.net Core Url.Action() 没有命中我的控制器方法
- java - 就“n”而言,以下代码的时间复杂度是多少?
- html - 溢出-y 不在内容容器中滚动