쿠버네티스 클러스터의 노드에서 타 패키지를 이용하고자 yum으로 설치하려고 하는 중 아래와 같은 에러가 발생했다.
내용으로 보았을 때, 쿠버네티스 패키지를 설치하기 위해서 등록했던 쿠버네티스 레포지토리를 찾을 수 없어서 404 에러를 반환하였고, 이로 인하여 yum을 이용한 어떠한 패키지도 설치할 수 없었다.
Search
이를 해결하기 위하여 추가적으로 자료 조사를 진행하였고, 아래와 같은 공지를 확인할 수 있었다.
https://kubernetes.io/blog/2023/08/31/legacy-package-repository-deprecation/
24년 3월을 기준으로 레거시 레포지토리 apt.kubernetes.io와 yum.kubernetes.io 에 대한 지원을 중단하고,
pkgs.k8s.io 라는 새로운 레포지토리를 기준으로 패키지를 제공할 것이며, v1.24.0 이상의 버전만 제공한다는 것이다.
리눅스 배포판에 따라 아래 사진을 참조하여 레거시 레포지토리 여부를 확인할 수 있다.
(아래 사진처럼 설정되어 있으면 레거시 레포지토리)
- RPM-based
- Debian-based
Troubleshoot
해결 방법은 위 공지와 같이 등록되어 있던 쿠버네티스 레포지토리를 변경하면 되는 것이었다.
아래 내용을 참고하였다.
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/change-package-repository/
먼저 노드의 OS는 RHEL을 이용하고 있기 때문에, /etc/yum.repos.d/kubernetes.repo의 내용을 확인하였다.
아래와 같이 설정이 되어 있었고, baseurl과 gpgkey를 보면, packages.cloud.google.com이라는 내용을 보아, 레거시 레포지토리인 것을 확인할 수 있었다.
이를 아래와 같이 바꾸어 해결할 수 있었다.
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl
Additional
특이한 점은 경로 상에 v1.28이라는 버전이 명시되어 있는데, 버전에 따라 레포지토리 경로가 바뀌는 점을 주의해야 할 것 같다.
우측 상단에 Version을 선택할 수 있고, 해당 버전에 따라 레포지토리 설정 내용이 달라진다.
아래는 OS별 여러 버전의 예시이다.
############################### Rhel / CentOs ###################################
# v1.29의 레포지토리
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl
# v1.28의 레포지토리
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl
##################################################################################
############################### Ubuntu / Debian ###################################
# v1.29의 레포지토리
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /
# v1.28의 레포지토리
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /
##################################################################################
또한, 새로 바뀐 레포지토리에서는 v1.24.0 이상의 버전만 제공되기 때문에 기존 CRI로 Docker-Shim을 이용하던 클러스터였으면, 이번 일을 통하여 CRI의 변경이 강제될 것 같다.
'Devops > Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스 컴포넌트(Controlplane) 인증서 재발급 (1) | 2024.05.02 |
---|---|
[Kubernetes] Kibana Ingress 적용 (0) | 2024.04.25 |
[Kubernetes] Kubestronaut (0) | 2024.04.09 |
[Kubernetes] Quality of service(QOS) (0) | 2024.02.28 |
[Kubernetes] 쿠버네티스의 컴퓨터 자원(CPU/Memory) 관리 및 제한 - 1 (0) | 2024.02.05 |