问题标签 [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.

0 投票
1 回答
65 浏览

kubernetes - Kubernetes pod 是否在容器运行时内运行?

我认为 CR 和 Pod 都运行在 Kubernetes 节点中,它可以是物理机或虚拟机。知道 pod 是容器的共享命名空间并且 Container Runtime 运行容器,这是否意味着 Container Runtime 运行 pod,然后运行容器?

我只是想描绘这两个并了解它们是如何工作的。

0 投票
1 回答
69 浏览

containers - 是否可以在容器中使用 PID 1 切换进程?

我有一个 Pid 1 问题。好的,所以为了解释,我需要专注于我对问题的表述。

我有一项服务,它依赖于 hostid 和生成的许可证文件以匹配 hostid 以便运行。我不知道hostid是如何产生的。如果该服务没有有效的许可证,则进程将关闭。所以我无法将这个简单的服务容器化。

但是,如果我有另一个进程首先运行,比如设置许可文件的 API,以及查询 hostid。然后这个 api 可以将许可文件设置到位。但现在到了棘手的部分,我如何切换运行 PID 1 的进程?因为服务需要作为 PID 1 运行。

我正在考虑将 PID 1 缩写为 bash 循环,该循环首先启动 API,然后在 API 退出时启动服务。

这可能吗?

您将如何创建 bash 循环?

0 投票
1 回答
110 浏览

kubernetes - 是否可以在 containerd/kubernetes CRI-O 中运行 wine?

只是想知道弃用 dockershim 是否仍然可以在 kubernetes 中运行 wine、windows 进程?

0 投票
0 回答
773 浏览

kubernetes - Kubernetes 中容器化的不安全注册表

每个人。我尝试在我的公司构建 k8s 集群(v 1.20)。我有一些工作节点。而且我已经部署了一些服务。

现在我的任务是创建自定义图像。主要问题:我应该在哪里存储它们(图像)?我制作了本地 docker 注册表。但是 containerd 不能从不安全的注册表中提取图像。我在 net: update config.toml for containerd 中找到了决定,我可以在其中使用“http”为 docker 注册表编写端点。在我看来,为 k8s-cluster 中的每个新节点添加部分是不舒服的。

你能帮我找到更优雅的决定吗?

0 投票
1 回答
420 浏览

docker - 通过 uidmap 使用 containerd 的 ctr 运行容器以映射到主机上的非 root 用户

为了更好地理解如何使用--uidmapwith ctr,我通过以下步骤创建了一个测试容器。containerd版本1.4.3是.

构建并运行容器:

  1. 构建 Dockerfile 和
  2. 将图像保存为 tar 球
  3. 使用 containerd 导入它ctr
  4. 创建并运行容器 uid 映射应该将容器内部 uid 0(root)映射到 5000,对应于 ctr 的手册页:

    --uidmap="":在指定UID映射范围的用户命名空间内运行;使用格式指定 container-uid:host-uid:length

检查容器和主机上的 UID:

容器内:

在主机上:

问题

它似乎不起作用,/bin/sh在容器内以及主机上以 root (uid=0) 身份运行。

0 投票
0 回答
241 浏览

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 处于活动状态并且正在运行,但为什么我无法启动容器?或者让我知道是否需要对部署文件进行任何其他更改。

0 投票
1 回答
209 浏览

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 工具集?

0 投票
1 回答
1110 浏览

containers - 如何使用 --uidmap/gidmap 和 --net-host 选项正确运行具有 containerd 的 ctr 的容器

我正在运行一个容器,ctr使用用户命名空间将容器内的用户(根)映射到主机上的另一个用户,我想让主机网络可用于容器。为此,我正在使用该--net-host选项。基于一个非常简单的测试容器

我试试

这给了我以下错误

如果我要么一切正常

  1. 删除--net-host标志或
  2. 删除--uidmap/--gidmap参数

我尝试将具有主机的用户添加uid=1000netdev组中,但仍然出现相同的错误。我可能需要使用网络命名空间吗?

编辑:

同时发现这是内部的一个问题runc。如果我通过将以下内容添加到config.json

另外不要使用网络命名空间,这意味着省略条目

在该"namespaces"部分中,我收到以下错误runc

0 投票
1 回答
94 浏览

docker - 如何使用 sdk 连接到 windows 上的 containerd?

我有一些来自文档的例子:https ://containerd.io/docs/getting-started/

现在,我正在研究 windows,我也找到了一些解释,在 windows containerd 上使用类似的东西

那么如何在代码中使用它呢?

0 投票
0 回答
573 浏览

kubernetes - Microk8s ImagePullBackOff 无法通过修改配置修复

我已经在 ubuntu(arm64 位版本)上安装了 microk8s,我想访问由microk8s enable registry. 但是我得到一个 ImagePullBackOff 错误,我试图修改/var/snap/microk8s/current/args/containerd.toml配置,但它不起作用:

我的吊舱状态:

版本信息:

似乎它想使用 https 而不是 http。

如何在带有 containerd 的 microk8s 中使用不安全选项?