问题标签 [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 投票
0 回答
103 浏览

google-cloud-platform - 在 Google Container-Optimized OS 中包含 systemd-journal-upload

不幸的是,谷歌的 Container-Optimized OS 映像没有附带systemd-journal-upload,尽管它应该在 systemd版本 216之后普遍可用。(当前的稳定映像附带版本 232。)

可以构建自己的图像,但我不知道如何包含 systemd-journal-upload。

它可能只是文件overlay-lakitu/sys-apps/systemd/systemd-232.ebuild中的--enable-remote标志吗?

0 投票
1 回答
702 浏览

docker - Container Optimized OS 优雅关闭 Celery

在 GCE 上运行 COS

关于如何让 COS 优雅地关闭 docker 有什么想法吗?

我最里面的进程是 celery,它说他想要一个 SIGTERM 优雅地停止

http://docs.celeryproject.org/en/latest/userguide/workers.html#stopping-the-worker

我的入口点类似于

在 COS 上,我正在运行我的 docker 服务,例如

但最终,当我的 COS 实例关闭时,它只是拔掉了插头。

我需要添加关闭脚本来执行 docker stop 吗?我需要做一些更高级的事情吗?

0 投票
2 回答
9233 浏览

google-compute-engine - GitLab CI 构建失败并出现错误:设备上没有剩余空间。

这是场景:

  • 使用默认设置在谷歌云项目中创建了一个 kubernetes 集群
  • 在 gitlab 上配置自动开发操作,如快速入门中所示
  • 配置了一个 .gitlab-ci.yml 文件,如默认 kubernetes 模板所示(仅在设置正确的 DNS 后用我的自定义域更改了 KUBE_DOMAIN)
  • 一旦我将某些内容推送到主分支,就会在管道中触发构建作业,但它会失败。以下是控制台输出:

也许我在谷歌平台的集群/项目配置中遗漏了一些东西?我需要“以某种方式添加空间”到应用程序吗?

感谢您的任何建议

0 投票
2 回答
563 浏览

google-container-os - 如何备份运行 Container-Optimized OS 的 Google Cloud VM?

我在 Google Compute Engine 虚拟机实例上部署了 Docker 映像(请参阅容器上的计算引擎)。我想对此实例及其磁盘执行定期自动备份。

Container-Optimized OS有一些限制,不允许实施像google-compute-snapshot这样需要安装系统包的解决方案。

关于如何自动执行此任务的任何建议?

0 投票
4 回答
5492 浏览

google-cloud-platform - 无法在 Google Container-Optimized OS 上运行可执行的 shell 脚本

在任何其他 linux 发行版上,我可以创建一个带有 shebang 的文件并运行 shell 脚本,如下所示:

但是在 Google Cloud Platform Container-Optimized OS 上,我得到了-bash: ./test.sh: Permission denied

sh如果我以eg作为前缀,sh test.sh Johnny它将起作用。我怎样才能让它正常工作?

0 投票
2 回答
380 浏览

kubernetes - Container-Optimized OS k8s 节点丢失 google-ip-forwarding-daemon.service IP

版本:在 GCE 中运行的Kubernetes v1.9.2(kube-up.sh)

容器优化操作系统10032.88.0


症状:google-ip-forwarding-daemon.service我们的 COS 节点在其日志中显示以下内容:

发生这种情况时,正在运行的 POD 通常会继续运行,但有时会变为未知并重新安排。任何新调度的 pod 都会卡在 ContainerCreating 中,并出现以下错误:

Failed create pod sandbox.&Error response from daemon: network none not found

除了重新启动实例外,我们还没有找到解决此症状的方法。

0 投票
1 回答
630 浏览

docker - 如何启用 Google Container Optimized OS 交换限制支持

我在 GCE 实例上的 Google Container Optimized OS 上运行 Kubernetes/Docker。当我运行docker info它说

最后一行表示没有交换限制支持。我无法弄清楚如何启用交换限制支持。我在这里找到了 Ubuntu/Debian 的说明。

我的问题是,我的 docker 容器一旦达到内存限制就会被 OOMKilled,而不是尝试交换。我希望容器使用交换作为缓冲区而不是立即死亡。

0 投票
2 回答
3058 浏览

docker - 谷歌云 - 从 GCR 部署为容器 - 端口未在 docker 容器中公开

我创建了一个 GCP VM 实例,选项Deploy as Container指向我的私有 GCR(nginx 自定义)中的图像。

同样在创建实例时,我已经允许“https”和“http”流量。

虽然应用程序运行良好,但在通过连接实例ssh并检查 docker 容器(docker ps)时,我看到容器端口没有暴露。想知道这里的容器如何通过实例处理 http/https 请求?

0 投票
0 回答
61 浏览

google-container-os - docker build 在 Google Container-optimized OS 版本 cos-beta-67 和更新版本上失败

无法在 COS beta-67 和 dev-68 上“docker build”。适用于稳定 65。不确定这是故意还是错误。

0 投票
2 回答
9261 浏览

google-cloud-platform - 在 Docker Container 内的 Container OS 上访问 Google Cloud 服务帐户凭据

在 Google Cloud Compute 上使用容器优化操作系统(COS),从 Docker 容器中访问 VM 项目默认服务帐户凭据的最佳方法是什么?

如果凭据在 VM 上,那么 Docker 可以挂载这些凭据。通常凭证会在 中.config/gcloud/,并使用docker run -v ~/.config/gcloud:~/.config/gcloud image. 目前尚不清楚容器操作系统中是否以及在何处提供此类凭据,特别是因为缺少gcloud.

如果凭证在 VM 上且可挂载失败,选项似乎包括:

  1. 将凭证放入容器元数据/环境变量中;
  2. 为服务帐户创建一个.json凭据文件,然后
    1. 上传到虚拟机,然后挂载;或者
    2. 添加.json到容器中;
  3. 运行一个 Docker 容器(例如cloud-sdk-docker),它获取凭据并通过例如共享挂载分区与主机共享它们。理想情况下,这将与gcloud auth activate-service-account

是否有规范或最佳实践方法为 Docker 容器提供 VM 项目的服务帐户凭据?

谷歌云已经有一个安全策略模型,这是理想的模型:项目中的虚拟机应该具有服务帐户提供的访问权限。为避免复杂性和错误配置或事故的可能性,正确的解决方案将采用这种现有的安全模型,即不涉及创建、下载、分发和维护凭证文件。

感觉这将是一个需要用 COS、Docker 和 Kubernetes 解决的常规问题,所以我认为我错过了一些简单的东西——但是从文档中我看不出解决方案。

编辑——注意set-service-account API——这个问题可以简化为“你如何在容器操作系统中使用 set-service-account API?” 如果不可能(因为 Container OS 缺少gcloudgsutil),我认为应该注意这一点,以便 VM 用户可以做出相应的计划。

编辑对于接下来的人来说:

为了复制这个问题,我使用了:

问题确实是在 API 中为 VM 实例设置的范围,特别datastore是默认帐户的 API 被禁用(在 VM 的云 API 访问范围标题下)。可以找到范围和必要的datastore行,如下所示:

请注意,服务帐户本身有权访问数据存储(因此通常可以使用服务密钥的 json 凭证密钥访问数据存储)。服务帐户权限受 VM 范围的限制。