YongsHub / -Kubernetes-Study

스터디 레포지토리
1 stars 1 forks source link

Udemy Chapter6 - 범위: 섹션6 2024/07/06 #11

Closed YongsHub closed 6 hours ago

YongsHub commented 4 weeks ago

Cluster Maintenance

  1. Os Upgrades
  2. K8s Software Versions
  3. Cluster Upgrade Process
  4. Backup and Restore Methods
himJJong commented 4 weeks ago
  1. Drain, uncordon, cordon 명령어의 이해
  2. k8s 클러스터 내 객체 중 ETCD CLUSTER, CoreDNS는 다른 프로젝트이기 때문에 각각 다른 고유 버전을 가지고 있다.
  3. Cluster 업그레이드의 단계와, 워커 노드의 업그레이드 방법 3가지
  4. 모든 리소스 파일을 Backup 하는 방안, 이 전에 ETCD 서버 자체를 백업하는 방안. 추가로 ETCD 스냅샷을 사용하는 방안까지.

전체적으로 제가 중점적으로 봤던 부분이고, 이외에 중요하게 보셨던 것이 있다면 추가로 코멘트 달아주세요~ :)

그리고 추가로 Practice Test Upgrade 부분에서 아래와 같은 문제가 있었는데, 이때 1.29로 Upgrade 하는 부분에서 막혀서요. 이 문제 해결하셨는지 궁금합니다!!

YongsHub commented 4 weeks ago

Node가 하나 사라졌을 경우, ReplicaSet으로 관리되던 Pod는 다시 다른 노드로 롤링 업데이트가 될 것임

이때, 노드가 내려갔다가 다시 올라 옴 (uncordon) 그러면 기존에 붙어 있던 Pod가 해당 Node로 붙지 않음.

만약, OS Parameter를 바꾸게 되어서 Node 하나를 재부팅 해야 하면 Node Drain을 진행해야 함

kubectl drain node-1

하지만, ReplicaSet 없이 Single Pod가 붙어 있다면 강제 drain을 시켜야 드레인이 가능함. --force

cordon 명령어는 기존 POD는 그대로 두고 해당 노드의 스케줄링만 중단시킨다.

kubectl cordon node-1

이후, 아래 명령어로 노드 스케줄링을 허용해서 다시 본인의 노드로 새로운 POD 배치를 가능케 함

kubectl uncordon node-1

YongsHub commented 4 weeks ago

Kubernetes Software Versions

v1.11.3

  1. 1: Major
  2. 11: Features, Functionalities
  3. 3: Bug Fixes

이외에도 알파와 베타로 나뉠 수 있음. 모든 버그를 고치고 개선시키면, 먼저 알파 태그를 부착한 릴리즈가 이루어지고 다음으로 베타 릴리즈가 출시됨 이후, 안정적으로 출시함

Cluster Upgrade Process

쿠버네티스 구성 요소로 kube-apiserver, controller manager, kube-scheduler, kubelet, kube-proxy, kubectl, ETCD CLUSTER, CoreDNS 등이 있음

하지만 이중에서도 우리는 핵심 코어에 집중함. 그런데 각각의 구성 요소가 같은 버전을 가져야만 할까?

구성 요소는 다른 버전으로 갈 수 있음

하지만 그 누구도 kube-apiserver보다 높은 버전을 가질 수 없음

Master Upgrade

Worker Upgrade

GKE 같은 경우에는 클릭만으로 업그레이드가 가능함.

kubeadm은 upgarde plan을 가지고 있음 Master Node가 먼저 업그레이드 되고, 그 다음에 Worker Node가 업그레이드 됨

YongsHub commented 4 weeks ago

Backup and Restore

kubectl get all --all-namespaces -o yaml > all-deploy-services.yaml

또한, Snapshot Solution을 가져오는데 빌트인 되어 있음

ETCD Control Utility를 사용해서 정상적인 상태의 클러스터를 스냅샷을 찍을 수 있음

YongsHub commented 4 weeks ago
  1. Drain, uncordon, cordon 명령어의 이해
  2. k8s 클러스터 내 객체 중 ETCD CLUSTER, CoreDNS는 다른 프로젝트이기 때문에 각각 다른 고유 버전을 가지고 있다.
  3. Cluster 업그레이드의 단계와, 워커 노드의 업그레이드 방법 3가지
  4. 모든 리소스 파일을 Backup 하는 방안, 이 전에 ETCD 서버 자체를 백업하는 방안. 추가로 ETCD 스냅샷을 사용하는 방안까지.

전체적으로 제가 중점적으로 봤던 부분이고, 이외에 중요하게 보셨던 것이 있다면 추가로 코멘트 달아주세요~ :)

그리고 추가로 Practice Test Upgrade 부분에서 아래와 같은 문제가 있었는데, 이때 1.29로 Upgrade 하는 부분에서 막혀서요. 이 문제 해결하셨는지 궁금합니다!!

이 부분 확인하고 코멘트 남기겠습니다! 다음 일정은 금요일까지 Section7 어떠신가요??

himJJong commented 4 weeks ago

이 부분 확인하고 코멘트 남기겠습니다! 다음 일정은 금요일까지 Section7 어떠신가요??

섹션7이 4시간 정도 분량이던데, 토요일까지 괜찮으실까요!? :)

YongsHub commented 4 weeks ago

이 부분 확인하고 코멘트 남기겠습니다! 다음 일정은 금요일까지 Section7 어떠신가요??

섹션7이 4시간 정도 분량이던데, 토요일까지 괜찮으실까요!? :)

일요일까지로 할까요?

himJJong commented 4 weeks ago

일요일까지로 할까요? 좋습니다!! 👍

YongsHub commented 4 weeks ago

일요일까지로 할까요? 좋습니다!! 👍

확인입니다!

YongsHub commented 3 weeks ago
  1. Drain, uncordon, cordon 명령어의 이해
  2. k8s 클러스터 내 객체 중 ETCD CLUSTER, CoreDNS는 다른 프로젝트이기 때문에 각각 다른 고유 버전을 가지고 있다.
  3. Cluster 업그레이드의 단계와, 워커 노드의 업그레이드 방법 3가지
  4. 모든 리소스 파일을 Backup 하는 방안, 이 전에 ETCD 서버 자체를 백업하는 방안. 추가로 ETCD 스냅샷을 사용하는 방안까지.

전체적으로 제가 중점적으로 봤던 부분이고, 이외에 중요하게 보셨던 것이 있다면 추가로 코멘트 달아주세요~ :)

그리고 추가로 Practice Test Upgrade 부분에서 아래와 같은 문제가 있었는데, 이때 1.29로 Upgrade 하는 부분에서 막혀서요. 이 문제 해결하셨는지 궁금합니다!!

혹시 업그레이드 부분에서 뭐가 정확히 안됐나요?? 정 어려우시면 그 칸 중에 Solution 부분 확인하셨는지 궁금합니다

himJJong commented 3 weeks ago

혹시 업그레이드 부분에서 뭐가 정확히 안됐나요?? 정 어려우시면 그 칸 중에 Solution 부분 확인하셨는지 궁금합니다

1.28 -> 1.29로 kubeadm을 업그레이드 하는 과정에서, 가능한 버전이 1.28.0 ~ 1.28.9만 가능하다고 나와서요! Solution 부분도 따라해봤는데 안되어서 질문드렸었습니다! 한번 다음 섹션까지 진행하면서 개인적으로 더 해보고 안되면 말씀드리겠습니다.