问题标签 [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.

0 投票
1 回答
1262 浏览

google-cloud-platform - 以编程方式获取 GCP 上的当前服务帐户

当没有设置 GOOGLE_APPLICATION_CREDENTIALS 时,有没有办法以编程方式访问 GCP 实例上当前使用的服务帐户的电子邮件?(即使用默认服务帐户时)

我查看了 GCP 文档,但是当没有设置 GOOGLE_APPLICATION_CREDENTIALS 时,我发现的唯一资源不能与默认服务帐户一起使用。我知道可以使用gcloud(请参阅此 SO question文档)来执行此操作,但是这些解决方案在ContainerOptimisedOS上运行时不适用。我已经与 GCP 支持团队来回交流了几个星期,但他们得出的结论是无法帮助我,并将我重定向到 StackOverflow 寻求帮助。

0 投票
0 回答
124 浏览

docker - 使用 gcloud 在 VM 中输入容器

考虑 Google Cloud Platform 环境中的容器优化虚拟机。

可以进入虚拟机:

要进入正在运行的容器,这变得更加棘手:

这已经够难看的了,与使用 进入容器相比docker exec -it bash,它以sh而不是开头bash

有没有办法简化上面的命令并bash默认启动?

0 投票
2 回答
492 浏览

docker - 容器优化 OS Docker 关闭行为

我一直在使用谷歌的容器优化操作系统在 GCP 计算引擎虚拟机上部署容器。当主机 VM 在 GCP 中停止时,我一直在努力理解已部署容器的关闭行为。

当我的容器收到 SIGTERM 或 SIGINT 信号时,它们会执行一些清理行为并将一些文件写入已安装的卷中。我已经用docker stopand对此进行了广泛的测试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) 应该会导致对该文件的写入。您可以通过停止容器然后观察该文件的修改日期来验证这一点。

但是,当主机实例停止时,似乎不会发生此过程。如果您重新启动主机以使容器再次运行,然后向主机发出“停止”,则在容器被杀死之前不会保存该文件。

0 投票
1 回答
26 浏览

minikube - 是否可以为 minikube 使用不同的 VM 映像

我看到 minikube 使用 Debian rodete 作为 VM 映像。我想使用不同的图像,比如 Container-Optimized OS 这可能吗?

提前致谢

0 投票
1 回答
55 浏览

kubeflow - 新的 GCP Kubeflow Pipelines 部署是否支持 Containerd?

1.18.17-gke.100 版本的默认节点映像将更改为带有 Containerd 的容器优化操作系统。据我所知,这不适用于 Kubeflow Pipelines 1.4.1,特别是底层的 argo 实现。这是您将遇到的典型错误:

管道部署是否会更新以支持 Containerd?

0 投票
1 回答
115 浏览

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 文件中所做的更改。

0 投票
2 回答
198 浏览

docker - 删除 Google Container OS 的旧容器

我在 Google Compute Engine 上的 Google Container OS 内托管了一个 Docker 映像。要部署我的容器,我这样做:

在我最近的部署中,我收到了这个错误:

SSH 连接到我的 Docker 容器后,我运行docker images并注意到 Docker 仍然挂在我的旧镜像上。我可以手动删除这些图像,但在多次部署后会出现同样的问题。

有没有办法在通过 Container OS 部署时自动删除旧的 Docker 映像gcloud compute instances update-container

0 投票
1 回答
701 浏览

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: