问题标签 [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 - 在 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标志吗?
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 吗?我需要做一些更高级的事情吗?
google-compute-engine - GitLab CI 构建失败并出现错误:设备上没有剩余空间。
这是场景:
- 使用默认设置在谷歌云项目中创建了一个 kubernetes 集群
- 在 gitlab 上配置自动开发操作,如快速入门中所示
- 配置了一个 .gitlab-ci.yml 文件,如默认 kubernetes 模板所示(仅在设置正确的 DNS 后用我的自定义域更改了 KUBE_DOMAIN)
- 一旦我将某些内容推送到主分支,就会在管道中触发构建作业,但它会失败。以下是控制台输出:
也许我在谷歌平台的集群/项目配置中遗漏了一些东西?我需要“以某种方式添加空间”到应用程序吗?
感谢您的任何建议
google-container-os - 如何备份运行 Container-Optimized OS 的 Google Cloud VM?
我在 Google Compute Engine 虚拟机实例上部署了 Docker 映像(请参阅容器上的计算引擎)。我想对此实例及其磁盘执行定期、自动备份。
Container-Optimized OS有一些限制,不允许实施像google-compute-snapshot这样需要安装系统包的解决方案。
关于如何自动执行此任务的任何建议?
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
它将起作用。我怎样才能让它正常工作?
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
除了重新启动实例外,我们还没有找到解决此症状的方法。
docker - 如何启用 Google Container Optimized OS 交换限制支持
我在 GCE 实例上的 Google Container Optimized OS 上运行 Kubernetes/Docker。当我运行docker info
它说
最后一行表示没有交换限制支持。我无法弄清楚如何启用交换限制支持。我在这里找到了 Ubuntu/Debian 的说明。
我的问题是,我的 docker 容器一旦达到内存限制就会被 OOMKilled,而不是尝试交换。我希望容器使用交换作为缓冲区而不是立即死亡。
docker - 谷歌云 - 从 GCR 部署为容器 - 端口未在 docker 容器中公开
我创建了一个 GCP VM 实例,选项Deploy as Container
指向我的私有 GCR(nginx 自定义)中的图像。
同样在创建实例时,我已经允许“https”和“http”流量。
虽然应用程序运行良好,但在通过连接实例ssh
并检查 docker 容器(docker ps
)时,我看到容器端口没有暴露。想知道这里的容器如何通过实例处理 http/https 请求?
google-container-os - docker build 在 Google Container-optimized OS 版本 cos-beta-67 和更新版本上失败
无法在 COS beta-67 和 dev-68 上“docker build”。适用于稳定 65。不确定这是故意还是错误。
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 上且可挂载失败,选项似乎包括:
- 将凭证放入容器元数据/环境变量中;
- 为服务帐户创建一个
.json
凭据文件,然后- 上传到虚拟机,然后挂载;或者
- 添加
.json
到容器中;
- 运行一个 Docker 容器(例如cloud-sdk-docker),它获取凭据并通过例如共享挂载分区与主机共享它们。理想情况下,这将与
gcloud auth activate-service-account
是否有规范或最佳实践方法为 Docker 容器提供 VM 项目的服务帐户凭据?
谷歌云已经有一个安全策略模型,这是理想的模型:项目中的虚拟机应该具有服务帐户提供的访问权限。为避免复杂性和错误配置或事故的可能性,正确的解决方案将采用这种现有的安全模型,即不涉及创建、下载、分发和维护凭证文件。
感觉这将是一个需要用 COS、Docker 和 Kubernetes 解决的常规问题,所以我认为我错过了一些简单的东西——但是从文档中我看不出解决方案。
编辑——注意set-service-account API——这个问题可以简化为“你如何在容器操作系统中使用 set-service-account API?” 如果不可能(因为 Container OS 缺少gcloud
和gsutil
),我认为应该注意这一点,以便 VM 用户可以做出相应的计划。
编辑对于接下来的人来说:
为了复制这个问题,我使用了:
问题确实是在 API 中为 VM 实例设置的范围,特别datastore
是默认帐户的 API 被禁用(在 VM 的云 API 访问范围标题下)。可以找到范围和必要的datastore
行,如下所示:
请注意,服务帐户本身有权访问数据存储(因此通常可以使用服务密钥的 json 凭证密钥访问数据存储)。服务帐户权限受 VM 范围的限制。