현재 kubernetes 자동 설치 관련 툴을 개발 중에 있습니다.
jenkins, terraform으로 CI 구성에 집중하느라 이런걸 늦게 보다니 혼자 고칠게 너무 많다.(CD는 아직 못했다. 과연 언제할껀가 미래의 나)
기존에 사용하던 패키지 저장소
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list 2>/dev/null
변경된 패키지 저장소
# ubuntu22.04 이전에는 해당 디렉토리가 없기 때문에 생성해줘야한다
sudo mkdir -p /etc/apt/keyrings
export K8S_VERSION=v1.28
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/${K8S_VERSION}/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
curl -fsSL https://pkgs.k8s.io/core:/stable:/${K8S_VERSION}/deb/Release.key | sudo gpg --yes --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo apt update
기존에 사용하던 패키지 저장소
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes repo
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
exclude=kubelet,kubeadm,kubectl
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
변경된 패키지 저장소
export K8S_VERSION=v1.28
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/${K8S_VERSION}/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/${K8S_VERSION}/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo dnf clean all
sudo dnf makecache
변경 이후 최신 패키지를 다운로드 받고 싶으면 상관없지만 특정 버전의 패키지가 필요할 때가 있다
데비안 계열들은 기존에 kubelet=1.28.0-00
이였지만 kubelet=1.28.0-1.1
와 같이 변경되었다.
레드햇 계열들은 kubelet-1.28.0-150500.1.1
으로 변경되었다.
재밌는건 확인결과 25, 26, 27 버전은 또 kubelet=1.27.0-2.1
과 같이 0
버전만 다르고 28은 똑같다.
변경 후 설치가 잘 되는 것은 확인 했으니 코드에 적용할 일만 남았다.