yeonghoon.kim

  • 게시판
  • 갤러리

ARM Kubernetes 구축 5 - 실전 업그레이드 경험기 v1.29→v1.35

김영훈 2026.02.18 09:48 조회 수 : 238

Kubernetes 클러스터 업그레이드.

v1.29.15에서 v1.35.1로 올리는 작업.

처음에는 바로 점프하려고 했다.

sudo kubeadm upgrade apply v1.35.1 -y

에러.

error: [upgrade] FATAL: this version of kubeadm only supports deploying 
clusters with the control plane version >= 1.34.0. Current version: v1.29.15

Kubernetes는 마이너 버전 하나씩 올려야 함.

저장소 버전도 맞춰야 함.

실패했던 케이스.

sudo sed -i "s|v1.29|v1.35|g" /etc/apt/sources.list.d/kubernetes.list

sudo apt-get install kubeadm=1.30.*-1.1

에러.

E: Version '1.30.*-1.1' for 'kubeadm' was not found

hold 패키지도 문제.

sudo apt-get install kubeadm=1.30.*-1.1

에러.

E: Held packages were changed and -y was used without --allow-change-held-packages

수정.

sudo apt-mark unhold kubeadm kubelet kubectl cri-tools
sudo apt-get install -y --allow-change-held-packages kubeadm=1.30.*-1.1

마스터 업그레이드.

sudo apt-mark unhold kubeadm kubelet kubectl cri-tools

for VERSION in 30 31 32 33 34; do
  sudo sed -i "s|v1\.[0-9]*|v1.$VERSION|g" /etc/apt/sources.list.d/kubernetes.list
  sudo apt-get update -qq
  
  sudo apt-get install -y --allow-change-held-packages kubeadm=1.$VERSION.*-1.1
  sudo kubeadm upgrade apply v1.$VERSION.0 -y
  
  sudo apt-get install -y --allow-change-held-packages kubelet=1.$VERSION.*-1.1 kubectl=1.$VERSION.*-1.1
  
  sudo systemctl daemon-reload
  sudo systemctl restart kubelet
  sleep 15
done

v1.35.1 최종 적용.

sudo sed -i "s|v1\.[0-9]*|v1.35|g" /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update -qq
sudo apt-get install -y --allow-change-held-packages kubeadm=1.35.1-1.1
sudo kubeadm upgrade apply v1.35.1 -y
sudo apt-get install -y --allow-change-held-packages kubelet=1.35.1-1.1 kubectl=1.35.1-1.1
sudo systemctl daemon-reload
sudo systemctl restart kubelet

워커 업그레이드.

마스터에서 drain.

kubectl drain k8s-worker1 --ignore-daemonsets --delete-emptydir-data

워커에서 같은 업그레이드 과정 실행.

마스터에서 uncordon.

kubectl uncordon k8s-worker1

worker2도 동일.

업그레이드 후 노드가 NotReady.

증상.

Kubelet stopped posting node status.

kubelet 로그.

E0218 14:28:33.572037 1412329 run.go:72] 
"command failed" err="failed to parse kubelet flag: unknown flag: --pod-infra-container-image"

v1.35.1에서 --pod-infra-container-image 플래그가 제거됨.

각 노드에서 제거.

sudo sed -i "s/ --pod-infra-container-image=registry.k8s.io\/pause:[^ ]*//g" \
  /var/lib/kubelet/kubeadm-flags.env

변경 전.

KUBELET_KUBEADM_ARGS="--container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9"

변경 후.

KUBELET_KUBEADM_ARGS="--container-runtime-endpoint=unix:///var/run/containerd/containerd.sock"

kubelet 재시작.

sudo systemctl restart kubelet

최종 확인.

kubectl get nodes

결과.

k8s-master
Ready
v1.35.1

k8s-worker1
Ready
v1.35.1

k8s-worker2
Ready
v1.35.1

  • 추천 0

  • 비추천 0
이 게시물을
목록

댓글 0

번호 제목 글쓴이 날짜 조회 수
공지 2025 일본 여행 계획 김영훈 2024.10.10 4118
공지 현금, 저축, 투자, 지출, 예산, 보험 내역(2024-05-30) 김영훈 2024.03.10 3752
317 OpenClaw 복원과 GLM-5.1 전환 김영훈 2026.04.07 145
316 교토 4박 5일 여행 일정: Google Calendar로 관리하는 일정짜기 김영훈 2026.04.05 124
315 7일간의 일본 여행 일정 짜기: 신칸센 + JR 패스 + Google Calendar 활용 프로젝트 김영훈 2026.03.28 128
314 JSON-LD 학습 - 메일과 Calendar 자동 인식 김영훈 2026.03.28 151
313 WAF 운영 6주 분석 김영훈 2026.03.13 199
312 Tech Support 플랫폼 김영훈 2026.03.04 80
311 ChloeToken 테스트넷 배포 김영훈 2026.03.02 232
310 Redis 대기열 시스템 김영훈 2026.03.01 212
309 Apache RewriteRule 쿼리스트링 처리 김영훈 2026.02.28 258
308 비트코인 자동매매 봇 대시보드 김영훈 2026.02.21 144
307 ARM Kubernetes 구축 6 - 무중단 업그레이드 김영훈 2026.02.20 208
306 ARM Kubernetes 구축 8 - 실전 보안 RBAC 네트워크 정책 Pod 보안 김영훈 2026.02.20 194
305 ARM Kubernetes 구축 7 - 클러스터 무중단 업그레이드 v1.29→v1.35 김영훈 2026.02.20 252
304 ARM Kubernetes 구축 4 - 외부 접근 환경 VPN MetalLB Ingress 김영훈 2026.02.18 246
» ARM Kubernetes 구축 5 - 실전 업그레이드 경험기 v1.29→v1.35 김영훈 2026.02.18 238
302 ARM Kubernetes 구축 3 - 모니터링 스택 Prometheus Grafana 김영훈 2026.02.16 179
301 ARM Kubernetes 구축 1 - VNC & KVM 설치 김영훈 2026.02.14 70
300 ARM Kubernetes 구축 2 - VM 생성과 클러스터 설치 김영훈 2026.02.14 138
299 OpenClaw 모델 삭제 사고 김영훈 2026.02.13 114
298 LLM 모델 선정 김영훈 2026.02.12 141
쓰기 태그
 첫 페이지 1 2 3 4 5 6 7 8 9 10 끝 페이지