Mar*_*man 4 kubernetes google-kubernetes-engine google-container-registry google-container-builder
我在 GCE 上有一个 Kubernetes 部署,我希望根据在 Google Container Registry 中创建的新映像(最好通过构建触发器)自动更新。有没有办法做到这一点?
提前致谢。
-标记
我能够使用 GCR 和 Cloud Builder 以及cloudbuild.yaml
如下所示的文件来完成此操作。要使其工作,名称为 like 的服务帐户xyz@cloudbuild.gserviceaccount.com
必须通过单击项目 -> 编辑器分配 IAM 权限。这是必需的,以便 Cloud Build 服务可以制作 SSH 密钥并将它们添加到您的 GCE 元数据中,以允许 Cloud Builder 进行 SSH 连接。此 SSH 是有效地在您的 GCE VM 服务器上运行任何命令的重要解决方法。
steps:
# Build Docker image: docker build -f Dockerfile -t gcr.io/my-project/my-image:latest .
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-f', 'Dockerfile', '-t', 'gcr.io/my-project/my-image:latest', '.']
# Push to GCR: gcloud docker -- push gcr.io/my-project/my-image:latest
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/my-project/my-image:latest']
# Connect to GCE server and pull new image
- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute', 'ssh', '$_SERVER', '--zone', '$_ZONE', '--command', 'gcloud docker -- pull gcr.io/my-project/my-image:latest']
# Connect to server and stop current container
- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute', 'ssh', '$_SERVER', '--zone', '$_ZONE', '--command', 'docker stop my-image']
# Connect to server and stop current container
- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute', 'ssh', '$_SERVER', '--zone', '$_ZONE', '--command', 'docker rm my-image']
# Connect to server and start new container
- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute', 'ssh', '$_SERVER', '--zone', '$_ZONE', '--command', 'docker run --restart always --name my-image -d -p 443:443 --log-driver=gcplogs gcr.io/my-project/my-image:latest']
substitutions:
_SERVER: 'my-gce-vm-server'
_ZONE: 'us-east1-c'
Run Code Online (Sandbox Code Playgroud)
substitutions
有一天你支持一个新服务器并想用它来代替的话,这很好--log-driver=gcplogs
使您的 Docker 日志显示在适当的“GCE VM 实例”中的 Google Cloud Console 的 Stackdriver Logging 中。请务必选择“所有日志”和“任何日志级别”,因为 Docker 日志没有日志级别,并且不是syslog
或activity_log
消息 归档时间: |
|
查看次数: |
1181 次 |
最近记录: |