Cri-Tools の新しいバージョンが必要なため、Kubelet、Kubeadm をインストールできません

Cri-Tools の新しいバージョンが必要なため、Kubelet、Kubeadm をインストールできません

-1

私は CKA 準備のための 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

https://pkgs.k8s.io/core:/stable:/v1.28/rpmyum リポジトリの優先順位を無効にした後でのみ、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

関連情報