问题标签 [containerd]
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.
kubernetes - Kubernetes pod 是否在容器运行时内运行?
我认为 CR 和 Pod 都运行在 Kubernetes 节点中,它可以是物理机或虚拟机。知道 pod 是容器的共享命名空间并且 Container Runtime 运行容器,这是否意味着 Container Runtime 运行 pod,然后运行容器?
我只是想描绘这两个并了解它们是如何工作的。
containers - 是否可以在容器中使用 PID 1 切换进程?
我有一个 Pid 1 问题。好的,所以为了解释,我需要专注于我对问题的表述。
我有一项服务,它依赖于 hostid 和生成的许可证文件以匹配 hostid 以便运行。我不知道hostid是如何产生的。如果该服务没有有效的许可证,则进程将关闭。所以我无法将这个简单的服务容器化。
但是,如果我有另一个进程首先运行,比如设置许可文件的 API,以及查询 hostid。然后这个 api 可以将许可文件设置到位。但现在到了棘手的部分,我如何切换运行 PID 1 的进程?因为服务需要作为 PID 1 运行。
我正在考虑将 PID 1 缩写为 bash 循环,该循环首先启动 API,然后在 API 退出时启动服务。
这可能吗?
您将如何创建 bash 循环?
kubernetes - 是否可以在 containerd/kubernetes CRI-O 中运行 wine?
只是想知道弃用 dockershim 是否仍然可以在 kubernetes 中运行 wine、windows 进程?
kubernetes - Kubernetes 中容器化的不安全注册表
每个人。我尝试在我的公司构建 k8s 集群(v 1.20)。我有一些工作节点。而且我已经部署了一些服务。
现在我的任务是创建自定义图像。主要问题:我应该在哪里存储它们(图像)?我制作了本地 docker 注册表。但是 containerd 不能从不安全的注册表中提取图像。我在 net: update config.toml for containerd 中找到了决定,我可以在其中使用“http”为 docker 注册表编写端点。在我看来,为 k8s-cluster 中的每个新节点添加部分是不舒服的。
你能帮我找到更优雅的决定吗?
docker - 通过 uidmap 使用 containerd 的 ctr 运行容器以映射到主机上的非 root 用户
为了更好地理解如何使用--uidmap
with ctr
,我通过以下步骤创建了一个测试容器。containerd
版本1.4.3
是.
构建并运行容器:
- 构建 Dockerfile 和
- 将图像保存为 tar 球
- 使用 containerd 导入它
ctr
- 创建并运行容器
uid 映射应该将容器内部 uid 0(root)映射到 5000,对应于 ctr 的手册页:
--uidmap="":在指定UID映射范围的用户命名空间内运行;使用格式指定 container-uid:host-uid:length
检查容器和主机上的 UID:
容器内:
在主机上:
问题
它似乎不起作用,/bin/sh
在容器内以及主机上以 root (uid=0) 身份运行。
docker - 启动容器时出错:发布 http://unix.sock/containers/create HTTP/1.x 传输连接中断:HTTP 响应格式错误 \"\\x00\\x00\\"
我们正在使用 Azure Kubernetes 服务 (AKS) 来运行我们的 Blockchain Hyperledger Fabric 应用程序。最近我们将 kubernetes 版本从 1.17 升级到 1.19.7,后来我们知道 docker 在 1.19* 版本中已弃用。因此,我们使用 containerD 作为运行时,而不是 docker。
为此,我们在部署文件中进行了以下更改。将 unix:///host/var/run/docker.sock 更改为 unix:///run/containerd/containerd.sock
创建 pod 后,当我尝试查询时出现以下错误
错误:查询时背书失败。响应:状态:500 消息:“未能执行事务 84380a33510f814525e871c5418f4761fe6b21c2db528ce2e31b60ba64d591ff:错误启动容器:错误启动容器:发布http://unix.sock/containers/create?name=nid1-testcont-cc-4.3:net/http:HTTP /1.x 传输连接中断:HTTP 响应格式错误“\x00\x00\x06\x04\x00\x00\x00\x00\x00\x00\x05\x00\x00@\x00”
我的问题是我可以看到 containerd.service 处于活动状态并且正在运行,但为什么我无法启动容器?或者让我知道是否需要对部署文件进行任何其他更改。
linux - 如果在 Ubuntu 20.04 上安装了 docker-ce 和 containerd,K8s 使用什么 CRI?
在此处找到的用于安装 kubeadm 的官方 Kubernetes 文档中,它声明“如果同时检测到 Docker 和 containerd,则 Docker 优先”,如果在我的 Ubuntu 20.04 主机上我按照 docker install 文档docker-ce docker-ce-cli containerd.io
的建议安装了,K8s 是否直接与containerd 组件还是它仍然使用(即将在树 K8s 中弃用)dockershim 层?
如果是后者,我如何让 K8s 直接与 containerd 对话,同时主机上仍然可以使用 docker cli 工具集?
containers - 如何使用 --uidmap/gidmap 和 --net-host 选项正确运行具有 containerd 的 ctr 的容器
我正在运行一个容器,ctr
使用用户命名空间将容器内的用户(根)映射到主机上的另一个用户,我想让主机网络可用于容器。为此,我正在使用该--net-host
选项。基于一个非常简单的测试容器
我试试
这给了我以下错误
如果我要么一切正常
- 删除
--net-host
标志或 - 删除
--uidmap
/--gidmap
参数
我尝试将具有主机的用户添加uid=1000
到netdev
组中,但仍然出现相同的错误。我可能需要使用网络命名空间吗?
编辑:
同时发现这是内部的一个问题runc
。如果我通过将以下内容添加到config.json
另外不要使用网络命名空间,这意味着省略条目
在该"namespaces"
部分中,我收到以下错误runc
:
docker - 如何使用 sdk 连接到 windows 上的 containerd?
我有一些来自文档的例子:https ://containerd.io/docs/getting-started/
现在,我正在研究 windows,我也找到了一些解释,在 windows containerd 上使用类似的东西
那么如何在代码中使用它呢?
kubernetes - Microk8s ImagePullBackOff 无法通过修改配置修复
我已经在 ubuntu(arm64 位版本)上安装了 microk8s,我想访问由microk8s enable registry
. 但是我得到一个 ImagePullBackOff 错误,我试图修改/var/snap/microk8s/current/args/containerd.toml
配置,但它不起作用:
我的吊舱状态:
版本信息:
似乎它想使用 https 而不是 http。
如何在带有 containerd 的 microk8s 中使用不安全选项?