-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/rpm
yum リポジトリの優先順位を無効にした後でのみ、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