问题标签 [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 回答
368 浏览

docker - Google Cloud 实例上的独立 kubelet 永久磁盘挂载

我有一个需要每天在 Docker 容器中运行的进程,将一些数据从存储桶同步到外部卷(谷歌云永久磁盘)。到目前为止,我设法通过创建一个单节点容器集群来启动该过程。

由于该过程在几个小时内完成,因此我想在完成后删除 VM 资源(当然永久磁盘除外)。启动/删除单个计算 VM(没有 kubernetes 集群设置)似乎更简单,所以我试图让单个 kubelet在容器优化的云实例上运行。永久磁盘安装是失败的地方。

我的启动命令:

内容container.yaml

内容cloudinit.yaml

虽然该选项根据此问题--cloud-provider=gce修复了“无法获取 GCE 云提供商”错误,但安装磁盘仍然存在一些问题。

容器操作系统日志中可能相关的一行说:

EXT4-fs (dm-0):由于功能不兼容,无法安装为 ext3

有什么方法可以在单个计算实例上工作(没有 kubernetes 集群)?我还应该在哪里寻找更多信息的错误日志?

0 投票
2 回答
1030 浏览

docker - COS 的 /var/lib/docker 卷的 inode 不足

我正在尝试让我们在 GCP 上运行一些服务。

我目前看到的一个问题是,我很快启动的虚拟机似乎用完了 /var/lib/docker 文件系统的 inode。我原以为这是在容器优化操作系统中调整的事情之一?

wouter@nbwm-cron ~ $ df -hi Filesystem Inodes IUsed IFree IUse% Mounted on /dev/root 78K 13K 65K 17% / devtmpfs 463K 204 463K 1% /dev tmpfs 464K 1 464K 1% /dev/shm tmpfs 464K 500 463K 1% /run tmpfs 464K 13 464K 1% /sys/fs/cgroup tmpfs 464K 9 464K 1% /mnt/disks tmpfs 464K 16K 448K 4% /tmp /dev/sda8 4.0K 11 4.0K 1% /usr/share/oem /dev/sda1 1013K 998K 15K 99% /var tmpfs 464K 45 464K 1% /var/lib/cloud overlayfs 464K 39 464K 1% /etc

wouter@nbwm-cron ~ $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE <name>/stackdriver-agent latest 0c4b075e7550 3 days ago 1.423 GB <none> <none> 96d027d3feea 4 days ago 905.2 MB gcr.io/<project>/nbwm-ops/docker-php5 latest 5d2c59c7dd7a 2 weeks ago 1.788 GB

nbwm-cron wouter # tune2fs -l /dev/sda1 tune2fs 1.43.3 (04-Sep-2016) Filesystem volume name: STATE Last mounted on: /var Filesystem UUID: ca44779b-ffd5-405a-bd3e-528071b45f73 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Remount read-only Filesystem OS type: Linux Inode count: 1036320 Block count: 4158971 Reserved block count: 0 Free blocks: 4062454 Free inodes: 1030756 First block: 0 Block size: 4096 Fragment size: 4096 Group descriptor size: 64 Reserved GDT blocks: 747 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8160 Inode blocks per group: 510 Flex block group size: 16 Filesystem created: Thu Jun 15 22:39:33 2017 Last mount time: Wed Jun 28 13:51:31 2017 Last write time: Wed Jun 28 13:51:31 2017 Mount count: 5 Maximum mount count: -1 Last checked: Thu Nov 19 19:00:00 2009 Check interval: 0 (<none>) Lifetime writes: 67 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 32 Desired extra isize: 32 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 66aa0e7f-57da-41d0-86f7-d93270e53030 Journal backup: inode blocks

如何调整文件系统以获得更多可用的 inode?

0 投票
1 回答
2744 浏览

kubernetes - RBAC - 限制一个服务帐户的访问权限

我想将权限限制为以下服务帐户,创建如下:

kubectl config get-contexts

#kubectl config use-context alice-staging

这有权查看所有内容: kubectl --context=alice-staging get pods --all-namespaces

我尝试使用以下方法限制它,但仍然拥有所有权限:

这个想法是限制对命名空间的访问来为用户分发令牌,但我不明白......我认为这可能是为了继承权限,但我不能为单个 serviceacount 禁用。

使用:GKE、容器虚拟机

谢谢!

0 投票
1 回答
1582 浏览

google-compute-engine - 将 Container-Optimized OS 服务日志输出发送到 Stackdriver Logging

如何从我的 Cloud-Config 服务获取输出到 Stackdriver Logging?

我正在使用 node.js API 创建我的 VM 实例,并按照此处找到的示例创建我的服务:https ://cloud.google.com/container-optimized-os/docs/how-to/run-container -instance#starting_a_docker_container_via_cloud-config

一切都运行成功,但我可以看到日志输出的唯一方法是通过 SSH 进入实例并运行sudo journalctl -ef,但我真的很想将日志流式传输到 Stackdriver Logging。但是 COS 似乎不允许我安装日志代理。

这是我的服务文件,/home/ci/run.sh只是运行一些 docker 容器,这些容器运行一些测试并输出到标准输出:

我使用的是 Container-Optimized OS,因为它带有 Docker、开箱即用的 GCR 访问、安全性,并且可以快速启动。但我认为我可能必须切换回基于 Ubuntu/Debian 的映像,因为这将允许我安装日志代理,但代价是自定义映像中的更多基本配置。

对此使用 COS 的任何帮助将不胜感激,因此在此先感谢您 :)

0 投票
1 回答
775 浏览

kubernetes - 容器优化的操作系统性能

在将我的集群节点映像从CONTAINER_VM升级到CONTAINER_OPTIMIZED_OS后,我遇到了PHP 应用程序性能下降多达 10 次的问题。我是否错过了配置中的某些内容或常见问题?我尝试使用具有更多 CPU 和内存的机器,但它略微影响了性能。

地形配置:

Symfony 应用程序的 Kubernetes 部署:

0 投票
2 回答
1485 浏览

google-compute-engine - 容器优化操作系统示例

我已遵循此处的所有文档:https ://cloud.google.com/container-optimized-os/docs/尝试将使用现已弃用的 container-vm 映像的现有配置升级到新配置使用容器优化的操作系统。但没有任何效果!我无法让 Docker 容器绑定到端口 80(即 -p 80:80),而且我的 Docker 容器似乎也无法写入 /var/run/nginx.pid(是的,我在我的 Docker 容器)。我按照说明禁用了 AppArmour,并且还尝试为 nginx 创建 AppArmour 配置文件。没有任何作用!他们是否有任何使用容器优化操作系统的示例,这些操作系统不只是使用busybox图像并打印“Hello World”或睡眠!一个打开端口并写入文件系统的示例怎么样?

0 投票
1 回答
390 浏览

google-cloud-platform - 在 Compute Engine 虚拟机上部署容器

我有点困惑,GCP 有这个新功能Deploying Containers on VMs and Managed Instance Groups目前在 Compute Engine 上被标记为 Alpha 版本的容器,您实际上需要申请加入此功能的白名单。

我正在努力理解它与在创建新的 CE 实例然后在该实例上运行 docker 容器时简单地在操作系统映像列表中选择容器优化操作系统有何不同?新方法有什么好处?

0 投票
1 回答
152 浏览

docker - 安装中间 CA 证书

我有一个 Kubernetes 集群托管我自己的 docker 注册表,我使用以下文档构建:
https
://github.com/kubernetes/kubernetes/tree/master/cluster/addons/registry 和
https://github.com/kubernetes/ kubernetes/blob/master/cluster/addons/registry/tls/README.md

当我尝试推送到注册表时x509: certificate signed by unknown authority出现错误。我已经搜索并阅读了几个 github 问题,修复似乎是在服务器上安装中间证书。简单对吧……嗯,集群是在GCE中部署的,使用默认的cos镜像。有没有办法将该证书安装在像 cos 这样的最小容器操作系统上?

0 投票
0 回答
60 浏览

google-container-os - spring-boot-kube-deployment-port80-3467990654-5c8nl 0/1 CrashLoopBackOff

滚动更新期间遵循的步骤:

  • 为应用程序的 v2 版本创建图像并进行一些更改
  • 使用 Maven 重新构建 Docker 映像。pom.xml。在 SSH 或 Cloud Shell 中运行命令:

    /li>
  • 将新更新的 docker 镜像推送到 Google Container Registry。在 SSH 或 Cloud Shell 中运行命令

    /li>
  • 使用映像更新对现有部署应用滚动更新。在 SSH 或 Cloud Shell 中运行命令

    /li>
  • 通过 curl 或浏览器再次重新验证应用程序

    并观察更改生效。

我们什么时候遇到“CrashLoopBackOff”错误,我们该如何解决这个问题?它发生在应用程序级别还是 kubernetes pod 级别?

0 投票
1 回答
178 浏览

google-cloud-platform - 从工具箱中运行 docker

在 Google Container OS 中,我想将其用作我的云开发环境。我将如何从工具箱运行 docker 命令?我需要将其添加docker.sock为绑定挂载吗?我需要能够运行 docker(和 docker-compose)来运行我的开发环境。