無法安裝 Kubelet、Kubeadm,因為它需要更高版本的 Cri-Tools

無法安裝 Kubelet、Kubeadm,因為它需要更高版本的 Cri-Tools

-1

我正在學習 CKA Prep 的 Coursera 課程,作為該課程的一部分,我們在 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 盒子中取得儲存庫套件。

這裡提出了類似的問題: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

相關內容