-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-o
並cri-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