问题标签 [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.
docker - Google Cloud 实例上的独立 kubelet 永久磁盘挂载
我有一个需要每天在 Docker 容器中运行的进程,将一些数据从存储桶同步到外部卷(谷歌云永久磁盘)。到目前为止,我设法通过创建一个单节点容器集群来启动该过程。
由于该过程在几个小时内完成,因此我想在完成后删除 VM 资源(当然永久磁盘除外)。启动/删除单个计算 VM(没有 kubernetes 集群设置)似乎更简单,所以我试图让单个 kubelet在容器优化的云实例上运行。永久磁盘安装是失败的地方。
我的启动命令:
内容container.yaml
:
内容cloudinit.yaml
:
虽然该选项根据此问题--cloud-provider=gce
修复了“无法获取 GCE 云提供商”错误,但安装磁盘仍然存在一些问题。
容器操作系统日志中可能相关的一行说:
EXT4-fs (dm-0):由于功能不兼容,无法安装为 ext3
有什么方法可以在单个计算实例上工作(没有 kubernetes 集群)?我还应该在哪里寻找更多信息的错误日志?
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?
kubernetes - RBAC - 限制一个服务帐户的访问权限
我想将权限限制为以下服务帐户,创建如下:
kubectl config get-contexts
#kubectl config use-context alice-staging
这有权查看所有内容:
kubectl --context=alice-staging get pods --all-namespaces
我尝试使用以下方法限制它,但仍然拥有所有权限:
这个想法是限制对命名空间的访问来为用户分发令牌,但我不明白......我认为这可能是为了继承权限,但我不能为单个 serviceacount 禁用。
使用:GKE、容器虚拟机
谢谢!
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 的任何帮助将不胜感激,因此在此先感谢您 :)
kubernetes - 容器优化的操作系统性能
在将我的集群节点映像从CONTAINER_VM升级到CONTAINER_OPTIMIZED_OS后,我遇到了PHP 应用程序性能下降多达 10 次的问题。我是否错过了配置中的某些内容或常见问题?我尝试使用具有更多 CPU 和内存的机器,但它略微影响了性能。
地形配置:
Symfony 应用程序的 Kubernetes 部署:
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”或睡眠!一个打开端口并写入文件系统的示例怎么样?
google-cloud-platform - 在 Compute Engine 虚拟机上部署容器
我有点困惑,GCP 有这个新功能Deploying Containers on VMs and Managed Instance Groups目前在 Compute Engine 上被标记为 Alpha 版本的容器,您实际上需要申请加入此功能的白名单。
我正在努力理解它与在创建新的 CE 实例然后在该实例上运行 docker 容器时简单地在操作系统映像列表中选择容器优化操作系统有何不同?新方法有什么好处?
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 这样的最小容器操作系统上?
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 级别?
google-cloud-platform - 从工具箱中运行 docker
在 Google Container OS 中,我想将其用作我的云开发环境。我将如何从工具箱运行 docker 命令?我需要将其添加docker.sock
为绑定挂载吗?我需要能够运行 docker(和 docker-compose)来运行我的开发环境。