无法安装 Kubelet、Kubeadm,因为它需要更高版本的 Cri-Tools

无法安装 Kubelet、Kubeadm,因为它需要更高版本的 Cri-Tools

-1

我正在参加 Coursera 的 CKA Prep 课程,作为课程的一部分,我们正在 Amazon EC2 上配置一个节点实例,安装容器运行时(在本例中为 containerd),现在我需要安装 kubeadmn 和 kubectl。当我运行此命令时:

sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

我明白了:

Error: Package: kubeadm-1.28.1-150500.1.1.x86_64 (kubernetes)
           Requires: cri-tools >= 1.28.0
           Available: cri-tools-1.25.0-1.amzn2.0.1.x86_64 (amzn2-core)
               cri-tools = 1.25.0-1.amzn2.0.1
           Available: cri-tools-1.26.1-1.amzn2.0.1.x86_64 (amzn2-core)
               cri-tools = 1.26.1-1.amzn2.0.1
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

所以...我尝试访问这个网站(https://github.com/kubernetes-sigs/cri-tools) 并下载最新的 crictl 和 critest,但是当我运行相同的命令(上面的命令)时,我收到相同的错误。

我还尝试通过在末尾添加 --skip-broken 修饰符来运行上述命令,这样我就可以无错误地运行...但它实际上也没有安装 kubeadm 或 kubectl。所以它没什么用。我也尝试运行 rpm 命令。这似乎没有任何作用。

有什么帮助吗?我在 kubernetes 留言板上看到一篇讨论,关于他们不应该让 kubeadmn 依赖于 cri-tools,但这对我目前的情况没有帮助。有什么帮助/建议吗?

答案1

您可以尝试添加包含最新版本的 CRI-O 容器运行时包的 RPM 存储库。

如果在基于 RHEL 7 的系统上,则添加存储库如下:

VERSION=1.28
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/CentOS_7/devel:kubic:libcontainers:stable.repo
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:${VERSION}.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:${VERSION}/CentOS_7/devel:kubic:libcontainers:stable:cri-o:${VERSION}.repo

对于基于 RHEL 8 的系统添加:

VERSION=1.28
OS=CentOS_8
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:/kubic:/libcontainers:/stable.repo
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo

然后安装cri-ocri-tools打包:

sudo yum install cri-o cri-tools

并再次尝试安装,它应该会成功。

答案2

我遇到了同样的问题,输出内容如下

1 packages excluded due to repository priority protections

仅禁用 yum 存储库优先级后,我才能够从https://pkgs.k8s.io/core:/stable:/v1.28/rpm我的 AMZN linux 2 盒中获取 repo 包。

这里提出了类似的问题:https://serverfault.com/questions/312472/what-does-that-mean-packages-excluded-due-to-repository-priority-protections

[root@ip-172-31-89-230 system]# sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
1 packages excluded due to repository priority protections        
Resolving Dependencies
--> Running transaction check
---> Package kubeadm.x86_64 0:1.28.2-150500.1.1 will be installed

答案3

您必须使用以下行从 yum 的命令行禁用该插件:

--disableplugin=priorities

运行此命令:

sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes --disableplugin=priorities

相关内容