问题标签 [cri-o]
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 - cri-o 套接字 (crio.sock) 与 dockershim 套接字 (dockershim.sock)
我对 Kubernetes 非常陌生,并试图了解 crio 与 dockershim 之间的区别。
我正在阅读有关如何安装 kubernetes 的手册,我看到建议将 crio 作为一个步骤(请参阅链接)Container runtimes/cri-o。
然而,当我第一次尝试启动试验时,我更加困惑,我看到默认情况下 kubernetes 使用另一个 cri 工具(dockershim)作为默认 cri 工具,请参见链接crictl/General usage。
我的问题是是否值得通过 CRI-O 的安装程序?我在 centos7 (1.15.1-2.el7) 的最新可用版本中发现了错误。
我还测试了 crio-v1.18.0 并且错误似乎已修复,但在这种情况下,似乎 CRI-O 在使用私有 repo 拉取试点图像时可以连接到端口 10248。
有人可以分享一下吗?尝试修复这些错误是否值得,或者我在这方面花费了太多时间?
docker - 如何识别 runc 容器是否以特权身份运行?
不管 docker/crio/containerd 启动容器,有没有办法了解 runc 容器是否作为特权容器运行?
docker inspect
确实显示出特权,但我想在 runc 层找到答案。
kubernetes - Kubelet - 未能为 coredns “创建PodSandbox”;未能设置网桥地址:无法将 ip 地址添加到“cni0”:权限被拒绝
编辑 1
作为对评论的回应,我提供了更多信息。
更多系统日志
我已经成功安装了带有 CRI-0 1.18 的 Kubernetes 1.18,并使用 kubeadm init --pod-network-cidr=192.168.0.0/16 设置了一个集群。但是,“coredns”节点卡在“ContainerCreating”。我遵循了官方的 Kubernetes 安装说明。
我试过的
我尝试安装 Calico,但没有解决它。我也尝试手动将 cni0 接口更改为 UP,但这也不起作用。问题显然出在桥接流量的某个地方,但我遵循了 Kubernetes 教程并启用了它。
在我对这个问题的研究中,我偶然发现了有希望的解决方案和教程,但没有一个能解决这个问题。(Rancher GitHub 问题,CRI-O GitHub 页面,Projectcalico,Kubernetes 教程)
防火墙-cmd
系统日志
日志的图像, 因为粘贴整个日志会很丑。
unname -r
CRI-O
运行
Kubernetes
1.18
播客版
1.6.4
iptables/nft
我将 nft 与 iptables 兼容层一起使用。
主机提供者:
Contabo VPS
系统控制
selinux 禁用
ip地址列表
kubernetes - kubeadm v1.18.2 和 crio 版本 1.18.2 无法从 Centos7 / RH7 上的私有仓库启动主节点
描述
我对 Kubernetes 比较陌生。我可以在使用默认套接字 (/var/run/dockershim.sock) 时运行我的集群,但是当我尝试使用 crio 套接字从我的私人仓库中提取图像时,我注意到速度甚至无法与之相比。
我正在尝试将所有节点配置为使用 crio.socket,但我无法使用此套接字启动主节点。
我遵循了 kubernetes 中的文档使用 kubeadm配置集群中的每个 kubelet以及 git 文档cri-o。
不幸的是,我无法让它工作,因为它似乎忽略了私人回购标志。
重现问题的步骤:
- 使用以下初始化启动主节点(主节点)(使用私有存储库):
- 以 root 身份或使用 sudo 运行:
journalctl -xeu crio -f
- 在调试或信息模式下观察下面的日志示例
描述您收到的结果:
调试模式下来自 crio 的日志示例:
描述您预期的结果:
使用 crio 套接字启动节点
您认为重要的其他信息(例如问题仅偶尔发生):
如果我使用默认套接字启动节点,例如:
如果我使用 crio 套接字启动节点:
我可以看到 localhost 正在侦听端口 10248:
crio 套接字示例(如文档中所述):
的输出kubelet status
据我所知,网络错误无关紧要,因为我还没有启动网络容器,所以此时会出现错误。
输出crio --version
:
输出kubelet --version
:
输出LinuxOS version
:
其他环境详细信息(AWS、VirtualBox、物理等):
安装应用在准系统节点上。
kubelet 文件示例
更新:我在 github Kubernetes v1.18.2 中提出了一张票,其中 crio 版本 1.18.2 无法与 RH7 #3915 上的 kubelet 同步。看起来有一个错误,因为 cri-o 无法处理远程存储库,它正在尝试提取默认 repo k8s.io。我会在获得更多信息后立即更新票证。
lxc - 符合 OCI v1alpha1 的 CRIO 运行时规范
开发人员,我在哪里可以找到完全符合OCI v1alpha1的 cri-o 运行时 cmdline 接口的规范?
CRI-O 支持任何与 OCI 兼容的运行时。我们今天使用 runc 和 Clear Containers 进行测试。
但是在玩弄的时候,crictl
我注意到 cri-o 使用了在OCI 运行时命令行界面版本 1.0.1中没有定义的 runc 命令和标志,例如exec
命令。我试图让LXC 运行时用于 cri-o工作,并注意到exec
cmdline 中缺少该运行时。
谢谢你的帮助!
docker - 使用 golang 检索 cri-o 信息
我正在尝试使用 golang 检索 cri-o 信息,例如 containerID、pid。下面提到的代码在我的 mac 中工作,但是当我将它容器化并将其部署在 openshift 3.11 堆栈上时,它不起作用。
cmdStr
在下面提到的代码中可以是任何 docker 或 cri-o 命令,例如docker ps
或crictl ps --no-trunc -a --quiet
使用的 go 版本是go1.14.1 darwin/amd64
我在我的 Mac 上得到的上述代码的输出是
在 pod 的日志中,openshift 3.11 上的相同是:
另一种选择是使用此链接中的代码:https ://godoc.org/github.com/google/cadvisor/container/crio#pkg-subdirectories但我不知道如何使用它,一个例子会有所帮助.
go get github.com/google/cadvisor/container/crio
containers - 如何仅指定图像名称在 cri-o 中启动容器?
我正在努力实现类似
我想指定要运行的图像并且不关心其他任何事情。
crictl
如果我没记错的话,运行命令需要容器和 pod 的配置文件。
我正在寻找启动容器的最简单方法,可能只有一个指定的图像。
kubernetes - 我需要部署什么版本的软件才能获得 kubernetes 1.19.7
我正在尝试设置一个 kubernetes 集群,但显然 nfs-client-provisioner 与较新版本的 kubernetes 存在问题。因此我需要安装最新版本的 1.19。
我正在通过 kubeadm 创建 kubernetes,并且使用 crio 作为运行时。我也在 ubuntu 20.04 上运行整个事情。我知道我需要安装 kubeadm、kubelet 和 kubectl 的 1.19.7 版本,但是 cri-o 呢?
kubernetes - 是否可以在 containerd/kubernetes CRI-O 中运行 wine?
只是想知道弃用 dockershim 是否仍然可以在 kubernetes 中运行 wine、windows 进程?
security - 在 Falco 上设置的卷安装
我想问一下 daemonset 路径上的读写设置,为什么当我看到 falco 上的 daemonset 时,对于卷挂载 /docker 或 /container、/lib/modules、/etc/falco 设置为读写而不是只读,是否存在谁能给我解释为什么使用读写而不是只读,是否可以将 falco 放在 openshift 4.X 上,因为 afaik 它使用 /crio ?还有可能将路径上的设置更改为只读吗?