问题标签 [google-container-optimized-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-container-os - Google Container Optimized OS 如何处理计划关闭?
我在 Google Cloud 上使用 Container Optimized OS 并发现“自动更新”功能在系统重新启动之前不会应用更新,并且不提供任何在应用更新后安排重新启动的功能。
我正在编写一个简单的启动脚本,该脚本在需要重新启动时安排关机,本质上是:
我的问题是:如何确定是否已安排关机?到目前为止,我已经尝试了三种在此操作系统中不起作用的方法:
$ ps -ef | grep shutdown
- 没有关机过程$ systemctl status systemd-shutdownd.service
-Unit systemd-shutdownd.service could not be found.
cat /run/systemd/shutdown/scheduled
- 没有找到文件
该操作系统及其所基于的文档很少。什么决定了如何安排关机,COS 如何处理它?
docker - 如何让“cos-extensions install gpu”在 Google Cloud VM 上工作?
我正在尝试按照https://cloud.google.com/container-optimized-os/docs/how-to/run-gpus上的说明在带有 GPU 的 GCE 上设置容器优化操作系统(COS). 创建虚拟机后,它会说 ssh in and run cos-extensions install gpu
。这样可行; 您可以在安装过程中看到它运行nvidia-smi
打印出驱动程序版本 (440.33.01) 并连接到卡。
但是它将 nvidia bins 和 libs/var/lib/nvidia
安装在 中,就像noexec
在这个操作系统中一样安装(它非常锁定)。这意味着所有库或实用程序都不起作用。当您将它们安装到 docker 容器时,它们也无法在那里工作;他们仍然是noexec。
我发现的唯一解决方法是将整个/var/lib/nvidia
目录复制到 tmpfs 暂存盘并从那里使用它。我是用错了,还是只是坏了?
docker - 无法初始化日志记录驱动程序:无法连接或使用 Google Cloud Logging 进行身份验证
要做的事: 从 docker 容器将日志发送到 Google Logs Viewer。
面对错误
我关注了这篇文章:https ://docs.docker.com/config/containers/logging/gcplogs/
并执行docker run --log-driver=gcplogs nginx
操作系统:容器优化操作系统 cos-81-12871-1196-0
我也试过这个The Google Cloud Logging driver for Docker with service account with log.admin
and log.writer
role
如何将日志发送到 Stackdriver/Google Cloud Logging
docker - 在容器优化操作系统中以 JSON 形式注入日志
我可以在容器优化操作系统的堆栈驱动程序日志代理的帮助下将日志注入到 Google 日志查看器作为 JSON。
它将日志作为一个值注入到消息中,而不是作为默认配置的 json 有效负载
我试过什么?
我已将 /etc/stackdriver/logging.config.d/fluentd-lakitu.conf 中的 fluentd 配置更改为以下内容:
但它无法将日志发送到日志查看器
操作系统:容器优化操作系统 cos-81-12871-1196-0
google-cloud-platform - 如何更新谷歌容器优化操作系统中的容器?
我想使用伙伴管道将新图像推送到 DockerHub。推送新镜像时,Google Container Optimized OS 应该拉取新镜像。我正在使用谷歌计算机引擎在谷歌容器优化操作系统上托管 docker-compose。我怎样才能做到这一点?
docker - 无法使用没有外部 IP 地址的容器映像创建 Google Compute Engine VM
我正在尝试使用以下 GCLOUD 命令使用市场 posgresql11 映像构建 VM(尽管对于我尝试过的所有映像,该问题似乎都很普遍):
envdata.txt 文件包含映像的环境变量数据, metadata.txt 文件包含 bootcmd 指令,用于格式化和挂载 postgres 数据的外部磁盘。
环境数据.txt:
元数据.txt:
VM 已创建,但 sudo journalctl 命令显示尝试开始连接到 GCR,但这似乎不成功。postgres 的 docker 映像未下载,也未在 VM 上启动。
如果我现在通过执行以下命令从 cloud 命令的 network-interface 行中删除 no-address 命令(允许 google 为 VM 分配外部 IP 地址):
然后创建一个 VM,下载并执行 POSTGRES 映像。sudo journalctl 显示与 GCR 的连接正在启动并已启动。
谁能向我解释为什么在我的情况下执行图像取决于拥有外部 IP 以及如何使用 GCR 创建 VM 而无需为实例分配外部 IP 地址?
google-chrome - 谷歌容器优化操作系统中的二进制安装
由于它是操作系统的 Linux 版本,我尝试了射击,希望能奏效
但它说 apt-get: command not found。
我如何安装新的二进制文件,因为我想在启动脚本中添加一些额外的逻辑,这需要首先安装一些额外的库。
如果我做错了什么,请纠正我。
google-cloud-platform - 将域名服务器添加到 Google Container Optimized OS
我想把我们自己的域名服务器添加到 COS 中,我该怎么做?
它只是创建以下内容/etc/dhcp/dhclient.conf
:
我已经添加了上述配置,但我仍然无法在 COS VM 实例中使用我的域。有什么我错过的吗?
如何在不重置/重启的情况下重启 COS 中的网络适配器?
google-cloud-platform - 如何从 GCE 实例中的容器优化操作系统获取启动脚本日志?
我正在使用此启动脚本运行容器优化的计算实例:
--log-driver
和--name
标志是根据GCP 社区指南和docker docs设置的。
但是我没有看到容器启动的日志。
此外,当我通过 SSH 连接到实例并运行命令logger "hello from logger"
时,我看不到它出现在云记录器中。我尝试将其转换为高级过滤器并删除除“来自记录器的你好”字符串过滤器之外的所有过滤器。
如何正确设置日志记录?我bunyan
在我的 NodeJS 应用程序中使用,但是当应用程序失败时我完全没有可见性?我很想拥有journalctl
云记录器中的所有日志。或者,至少是 的startup-script
一部分journalctl
。现在我通过 SSH 进入实例并运行来检索它们journalctl -r | grep startup-script
。
更新
访问范围已正确设置:
我正在使用默认的计算引擎服务帐户。这里是我创建这个虚拟机的命令:
启动脚本:
此 VM 运行 NodeJS 脚本。我没有为我的 NodeJS 脚本提供 JSON 密钥。记录器bunyan
正在正确地将日志发送到云记录器。只有在服务器完全崩溃时才发送日志失败。
日志 API 已启用。我得到这个:
sudo systemctl status stackdriver-logging
在 VM 中运行命令时