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 4119
공지 현금, 저축, 투자, 지출, 예산, 보험 내역(2024-05-30) 김영훈 2024.03.10 3752
17 ARM Kubernetes 구축 1 - VNC & KVM 설치 김영훈 2026.02.14 70
16 ARM Kubernetes 구축 3 - 모니터링 스택 Prometheus Grafana 김영훈 2026.02.16 179
» ARM Kubernetes 구축 5 - 실전 업그레이드 경험기 v1.29→v1.35 김영훈 2026.02.18 238
14 ARM Kubernetes 구축 4 - 외부 접근 환경 VPN MetalLB Ingress 김영훈 2026.02.18 246
13 ARM Kubernetes 구축 7 - 클러스터 무중단 업그레이드 v1.29→v1.35 김영훈 2026.02.20 252
12 ARM Kubernetes 구축 8 - 실전 보안 RBAC 네트워크 정책 Pod 보안 김영훈 2026.02.20 194
11 ARM Kubernetes 구축 6 - 무중단 업그레이드 김영훈 2026.02.20 208
10 비트코인 자동매매 봇 대시보드 김영훈 2026.02.21 144
9 Apache RewriteRule 쿼리스트링 처리 김영훈 2026.02.28 258
8 Redis 대기열 시스템 김영훈 2026.03.01 212
7 ChloeToken 테스트넷 배포 김영훈 2026.03.02 232
6 Tech Support 플랫폼 김영훈 2026.03.04 80
5 WAF 운영 6주 분석 김영훈 2026.03.13 199
4 JSON-LD 학습 - 메일과 Calendar 자동 인식 김영훈 2026.03.28 151
3 7일간의 일본 여행 일정 짜기: 신칸센 + JR 패스 + Google Calendar 활용 프로젝트 김영훈 2026.03.28 128
2 교토 4박 5일 여행 일정: Google Calendar로 관리하는 일정짜기 김영훈 2026.04.05 125
1 OpenClaw 복원과 GLM-5.1 전환 김영훈 2026.04.07 145
쓰기 태그
 첫 페이지 7 8 9 10 11 12 13 14 15 16 끝 페이지