问题标签 [google-container-os]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-platform - 以编程方式获取 GCP 上的当前服务帐户
当没有设置 GOOGLE_APPLICATION_CREDENTIALS 时,有没有办法以编程方式访问 GCP 实例上当前使用的服务帐户的电子邮件?(即使用默认服务帐户时)
我查看了 GCP 文档,但是当没有设置 GOOGLE_APPLICATION_CREDENTIALS 时,我发现的唯一资源不能与默认服务帐户一起使用。我知道可以使用gcloud
(请参阅此 SO question或文档)来执行此操作,但是这些解决方案在ContainerOptimisedOS上运行时不适用。我已经与 GCP 支持团队来回交流了几个星期,但他们得出的结论是无法帮助我,并将我重定向到 StackOverflow 寻求帮助。
docker - 使用 gcloud 在 VM 中输入容器
考虑 Google Cloud Platform 环境中的容器优化虚拟机。
可以进入虚拟机:
要进入正在运行的容器,这变得更加棘手:
这已经够难看的了,与使用 进入容器相比docker exec -it bash
,它以sh
而不是开头bash
。
有没有办法简化上面的命令并bash
默认启动?
docker - 容器优化 OS Docker 关闭行为
我一直在使用谷歌的容器优化操作系统在 GCP 计算引擎虚拟机上部署容器。当主机 VM 在 GCP 中停止时,我一直在努力理解已部署容器的关闭行为。
当我的容器收到 SIGTERM 或 SIGINT 信号时,它们会执行一些清理行为并将一些文件写入已安装的卷中。我已经用docker stop
and对此进行了广泛的测试docker kill -s SIGINT
。但是,当我在 GCP 中停止主机时,似乎没有发生这种行为。
我不完全确定如何调试这个过程。我尝试连接到 VM 的串行控制台,但它似乎没有任何与容器关闭逻辑有关的信息。
任何指导将不胜感激!作为参考,这是我正在部署的图像。
完整复制步骤:
使用“将容器映像部署到此虚拟机”创建一个新的“计算引擎”虚拟机。我一直在使用带有 20GB 引导盘的 e2 介质。
使用“ lloesche/valheim-server ”图像。
设置以下环境变量:
添加类型为“Directory”的目录挂载,其中“/config”作为挂载路径,“/home/YOUR_GCP_USERNAME/valheim-server-config”作为“读/写”模式下的主机路径。
容器启动后,您应该在主机 (lloesche/valheim-server) 上运行映像。您还应该在~/valheim-server-config/worlds/
called处创建一个文件Test.fw1
。
现在,停止这个容器 ( docker stop
) 应该会导致对该文件的写入。您可以通过停止容器然后观察该文件的修改日期来验证这一点。
但是,当主机实例停止时,似乎不会发生此过程。如果您重新启动主机以使容器再次运行,然后向主机发出“停止”,则在容器被杀死之前不会保存该文件。
minikube - 是否可以为 minikube 使用不同的 VM 映像
我看到 minikube 使用 Debian rodete 作为 VM 映像。我想使用不同的图像,比如 Container-Optimized OS 这可能吗?
提前致谢
kubeflow - 新的 GCP Kubeflow Pipelines 部署是否支持 Containerd?
1.18.17-gke.100 版本的默认节点映像将更改为带有 Containerd 的容器优化操作系统。据我所知,这不适用于 Kubeflow Pipelines 1.4.1,特别是底层的 argo 实现。这是您将遇到的典型错误:
管道部署是否会更新以支持 Containerd?
google-kubernetes-engine - 在 GKE on Prem 中安装后,静态/行踪 IPAM cni 插件 bin 文件丢失
我正在尝试在 Prem 环境的 GKE 上安装静态/行踪(使用 multus)IPAM CNI 插件,以创建一个额外的接口并与同一集群中的节点之间的 Pod 进行通信。
Multus 插件运行良好,但即使在 daemonSet 文件中指向该位置后,我也没有在主机目录 (/opt/cni/bin) 上看到静态/行踪 IPAM cni 插件的 bin 文件。
我想知道是否支持静态/行踪 IPAM cni 插件,但 GKE on Prem。
以下是我在 whereabouts daemonSet 文件中所做的更改。
docker - 删除 Google Container OS 的旧容器
我在 Google Compute Engine 上的 Google Container OS 内托管了一个 Docker 映像。要部署我的容器,我这样做:
在我最近的部署中,我收到了这个错误:
SSH 连接到我的 Docker 容器后,我运行docker images
并注意到 Docker 仍然挂在我的旧镜像上。我可以手动删除这些图像,但在多次部署后会出现同样的问题。
有没有办法在通过 Container OS 部署时自动删除旧的 Docker 映像gcloud compute instances update-container
?
google-cloud-build - 清单未知:无法从请求 \"/v2/$PROJECT_ID/$IMAGE:latest/manifests/latest\ "中获取 \"latest\"。
我在 VM 中有一些 python 文件,它们每周都会运行以从网站上抓取信息。这是通过云调度程序和云功能自动完成的,并确认它可以工作。每次我更新 Github 内的代码时,我都想使用 cloud build 和 cloud run 来更新 VM 内的代码。我在某处读到,为了将容器映像部署到 VM,VM 必须具有容器操作系统,因此我通过计算引擎手动创建了一个符合该条件的新 VM。容器操作系统 VM 已经制作完成。我只需要使用来自 Github 的更新代码构建的新容器映像来更新它的容器映像。
我正在尝试构建一个容器映像,稍后我将使用它来更新虚拟机内部的代码。每次我推送到我的 Github 存储库中的文件夹时都会触发云运行。
我检查了 Container Registry 并且正在创建映像,但是当我检查虚拟机时,我不断收到此错误:
当我想要带有提交哈希的标签时,为什么会请求最新的标签,我该如何修复它?
这是虚拟机日志(sudo journalctl -u konlet-startup):
这是 cloudbuild.yaml:
这是泊坞窗文件:
这是 hello.py: