尝试将不安全的注册表添加到containerd配置中,如下所示:
[plugins."io.containerd.grpc.v1.cri".cni]
bin_dir = "/opt/cni/bin"
conf_dir = "/etc/cni/net.d"
max_conf_num = 1
conf_template = ""
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://registry-1.docker.io"]
[plugin."io.containerd.grpc.v1.cri".registry.mirrors."test.http-registry.io"]
endpoint = ["http://v048011.dom600.lab:5000"]
Run Code Online (Sandbox Code Playgroud)
即使将其添加到 后config.toml,当从不安全的注册表中提取映像时,它也会失败:
sudo ctr image pull v048011.dom600.lab:5000:5000/myjenkins:latest
ctr: failed to resolve reference "v048011.dom600.lab:5000/myjenkins:latest": failed to do request: Head https://v048011.dom600.lab:5000:5000/v2/myjenkins/manifests/latest: http: server gave HTTP response to HTTPS client
Run Code Online (Sandbox Code Playgroud)
docker我们可以将其添加insecure registry到文件中daemon.json,然后 docker 将从其中提取图像,我怎样才能在 中实现相同的目的containerd?替换 docker 作为 k8s 集群中的运行时。
如果我刚刚containerd安装在Linux系统上(即未安装Docker),如何删除未使用的容器映像以节省磁盘空间?
Docker 有这个方便的docker system prune命令,但我找不到任何类似的命令ctr或第三方工具。
Kubernetes 文档将 pod 描述为wrapper围绕一个或多个容器。inside运行Pod 的容器共享一组命名空间(例如网络),这让我认为namespaces它们是嵌套的(我对此表示怀疑)。wrapper从容器运行时的角度来看,这里是什么?
由于容器只是受namespaces, Cgroups例如也许,pod只是containerKubelet启动的第一个进程,其余容器启动并按名称空间分组。
我读过许多与我的问题类似的链接,但它们都没有帮助我解决问题。
类似链接:
问题描述:
我已经使用创建了一个新的 Kubernetes 集群Kubespray。当我想在其中一个容器中执行一些命令时,我遇到了以下错误:
kubectl exec -it -n rook-ceph rook-ceph-tools-68d847b88d-7kw2v -- sh
Run Code Online (Sandbox Code Playgroud)
OCI 运行时执行失败:执行失败:无法启动容器进程:打开 /dev/pts/1:不允许操作:未知命令以退出代码 126 终止
我也登录了运行pod的节点,并尝试使用docker exec命令执行容器,但错误没有改变。
解决方法:
据我发现,错误代码(126)意味着权限不足,但我sh在 Docker 或 Kubernetes 中没有遇到过这种错误(例如执行)。
我还检查了是否SELinux启用(正如第三个链接中所述)。
apt install policycoreutils
sestatus
# Output
SELinux status: disabled
Run Code Online (Sandbox Code Playgroud)
在第5个链接中,据说检查你是否更新了内核,而我没有升级节点上的任何内容。
id; stat /dev/pts/0
# output
uid=0(root) gid=0(root) groups=0(root)
File: /dev/pts/0
Size: 0 Blocks: …Run Code Online (Sandbox Code Playgroud)我只安装了containerd,我将它用于我的k8s 容器运行时。我正在努力清理事情。与 containerd 中的 ff docker 命令等效的内容可能是:
sudo docker rm -vf $(docker ps -a -q)
sudo docker rmi -f $(docker images -a -q)
Run Code Online (Sandbox Code Playgroud) 自 K8S v1.11 起,运行时从 dockerd 更改为 Containerd。我使用 Jenkins 而不是 kubernetes 在 Docker (dood) 之外使用 Docker 构建 docker 镜像。
当我尝试切换到使用常规 docker 客户端的 conatinerd 套接字文件(containerd/containerd.sock 映射到 /var/run/docker.sock)时,出现以下错误Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x00\x00\x00\x04\x00\x00\x00\x00\x00".
docker客户端可以和containerd一起使用吗?
我正在探索如何containerd代替 dockerd 使用。这仅用于学习和作为 cli 工具,而不是任何管道或自动化。
到目前为止,关于在 cli (via ctr) 中使用 containerd 的文档非常有限。甚至官方文档都是containerd直接使用 Go lang 来使用的。
我学到的是ctr命令扮演docker命令控制的角色containerd。到目前为止,我已经创建了一个 docker 映像并将其导出为 .tar 格式。现在使用ctr i import hello.tar我已将其导入为图像。
现在ctr i ls给我以下输出:
REF TYPE DIGEST SIZE PLATFORMS LABELS
docker.io/library/hello-java-app:latest application/vnd.oci.image.manifest.v1+json sha256:ef4acfd85c856ea020328959ff3cac23f37fa639b7edfb1691619d9bfe1e06c7 628.7 MiB linux/amd64 -
Run Code Online (Sandbox Code Playgroud)
尝试运行容器要求我提供图像 ID:
root@slave-node:~/images/sample# ctr run
ctr: image ref must be provided
root@slave-node:~/images/sample# ctr run docker.io/library/hello-java-app:latest
ctr: container id must be provided
Run Code Online (Sandbox Code Playgroud)
我不确定从哪里获取图像 ID。是否有任何相关的文档ctr或containerd …
当我尝试为EJBCA-ce创建 Azure 容器实例时,出现错误并且看不到任何日志。
但我收到以下错误:
Failed to start container my-azure-container-resource-name, Error response: to create containerd task: failed to create container e9e48a_________ffba97: guest RPC failure: failed to find user by uid: 10001: expected exactly 1 user matched '0': unknown
一些背景:
我在 azure 云容器实例上运行容器
我试过
它使用相同的环境变量(数据库配置)在本地运行良好。几周前,它曾经以相同的配置运行。
以下是我从 az cli 附加容器组时得到的一些日志。
(count: 1) (last timestamp: 2020-11-03 16:04:32+00:00) pulling image "primekey/ejbca-ce:6.15.2.3"
(count: 1) (last timestamp: 2020-11-03 16:04:37+00:00) Successfully pulled image "primekey/ejbca-ce:6.15.2.3"
(count: 28) …Run Code Online (Sandbox Code Playgroud) 我使用 minikube 设置了 2 个 k8s 环境。一张带--container-runtime=docker旗帜,一张带--container-runtime=containerd旗帜。这是我看到的差异。
当我设定时container-runtime=docker,这些事情就会发生
dockerd服务正在运行dockerd生成containerd/usr/bin/containerd-shim-runc-v2进程运行实际的容器,每个进程的父进程containerd-shim-runc-v2在系统上都是 PID 1。当我设定时container-runtime=containerd,这些事情就会发生
dockerd服务,没有任何含糊之处。containerd进程,其所有者为 PID 1。同样,这并不奇怪。containerd-shim进程运行实际的容器,每个containerd-shim进程的父进程是containerd这是我的问题
containerd-shim和之间有什么区别containerd-shim-runc-v2?他们似乎大多采用相似的旗帜等。编辑:刚刚想到编辑。在ubuntu 20机器上,如果我安装docker,dockerd是一个单独的进程,其父进程是PID 1,containerd是一个单独的进程,其父进程是PID 1,所有容器都是container-shim-runc-v2的子进程,其PID为1 ?!?!为什么不是containerd孩子dockerd?这是在哪里配置的?
我有一个使用 Rancher 的 K3s 部署的轻量级 Kubernetes 集群。
大多数时候 Pod 在其中运行良好,但我注意到它有时会遇到NodeDiskPressure,这会导致现有 Pod 被驱逐。
通过查看主机中的可用磁盘,我发现在此问题发生之前较高的集群负载与Containerd运行时存储中的高使用量一致。在正常情况下,这些卷的已用空间量为 70%,但它们会上升到 +90%,这可能会导致 pod 被驱逐。
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/3cd5b4cad915d0914436df95359e7685aa89fcd3f95f0b51e9a3d7db6f11d01b/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/fd2a513ce2736f10e98a203939aaa60bd28fbbb4f9ddbbd64a0aedbf75cae216/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/73865fcfa8b448d71b9b7c8297192b16612bd01732e3aa56d6e6a3936305b4a2/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/fc68e6653cec69361823068b3afa2ac51ecd6caf791bf4ae9a65305ec8126f37/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/7fcd3e8789f0ca7c8cabdc7522722697f76456607cbd0e179dd4826393c177ec/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/9334ed12649bcdb1d70f4b2e64c80168bdc86c897ddf699853daf9229516f5cf/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/de1c6f47cf82ff3362f0fc3ed4d4b7f5326a490d177513c76641e8f1a7e5eb1a/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/079c26817021c301cb516dab2ddcf31f4e224431d6555847eb76256369510482/rootfs
overlay 6281216 4375116 1906100 70% /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/d0da2f62430306d25565072edf478ad92752255a40830544101aeb576b862a5f/rootfs
overlay 6281216 4375116 1906100 70% …Run Code Online (Sandbox Code Playgroud) containerd ×10
docker ×7
kubernetes ×5
runc ×2
azure ×1
containers ×1
ejbca ×1
k3s ×1
linux ×1
minikube ×1
overlayfs ×1