https://www.youtube.com/watch?v=f8zCw5KlmPo 

 

기본적으로 AKS는 무료 버전이다.

 

무료버전이기 때문에 SLO는 제공하지만 SLA는 제공하지 않는다.

 

SLO : 99.5% 안정성 보장. 하지만 이슈가 있을 때 돈을 개런티해주지는 않는다.

새로 출시된 기능이 업데이트 SLA : 0.1$ / hour -> 하루에 2.4$

 

가용성 영역이 있는 곳은 99.95%

가용성 영역이 없는 곳은 99.9%

 

SLO와 SLA의 차이가 뭐냐?

 

Control Plane에 과금이 되느냐 안되느냐의 차이다.

 

Control Plane에는 API Server, Scheduler, etcd 등의 컴포넌트들이 있다.

SLA를 쓰면, 빅클러스터를 사용했을 때 각각의 컴포넌트들이 Auto Scale이 된다.

따라서 빅클러스터일 경우 SLA를 쓰는게 훨씬 좋다.

 

 

 

쿠버네티스를 만들 때 중요한 것들

 

1. 가용성 선택

- Scenario에 따른 Cluster Preset 선택 -> Node Size 정해주는데, 아래에서 바꿀 수 있어. 글구 쓸 수 있는 기능도 달라짐.

- Availability Zone에 넣을건지 안넣을건지. (빼면 99.9%, 넣으면 99.95%, 근데 99.5%도 있다? 추천은 99.95%래)

2. 쿠버네티스 버전 선택

default는 1.18.10인데 버전 바꿀 수 있음.

 

1.19 (최신)

1.18 (default)

1.17

1.16

 

현재 AKS에서는 최신 -3에 해당하는 버전까지 support를 해주고 있대.

2022/04/26 현재

이 소리는 곧 시간이 지나면 쿠버네티스 업데이트가 강제적으로 이루어질거고,

주기적으로 늦기 전에 컨트롤러나 서비스등을 업데이트해줘야한다는 뜻 같다.

yaml 재배포를 해줘야하겠군.

 

-> 오해 정정 : 버전 -3을 넘어서면, deprecated 되어서 사라진다. 업그레이드 간단하게 해주면 된다.

 

Q : 쿠버네티스만 업그레이드 되는건지 그에 dependent한 오브젝트들도 자동 업그레이드 되는건지?

 

그리고 업그레이드를 안하고 버틴다고 하더라도, 서비스에 문제가 생기지는 않는데 MS가 제공하는 보안 패치나

이슈등에 대한 패치를 적용받을 수 없으므로, 늦지 않게 하는 것이 좋다.

-> 매달 새로운 버전의 쿠버네티스가 나왔을 때 업그레이드 해줘야한다는 것을 잊지 말래.

 

2021.4.1. 이 때 default가 1.19

2022.4.26. 이 때 default가 1.22

그러면 4개월에 한 번씩 0.01v가 올라가는 것 같다. 추정상...

 

Q : 업데이트를 했을 때, 기존 운영중인 워커 노드에 이슈가 있는게 아니냐?

기존의 노드를 바로 건드리는게 아니고, 새로운 버전의 노드 VM4를 만들고 기존에 있는 노드의 pod을 하나씩 migration 시킨다.

migration이 다 되고 정상적으로 서비스되고 있다는게 확인이 되면 VM1을 삭제한다.

 

이런식으로 Rolling Update 방식으로 작동한다.

 

오해 1)

Control Plane과 Worker Node는 서로 쿠버네티스 버전이 달라도 된다. 웬만하면 맞춰줘야 되긴 할 것 같다.

오해 2)

Node Pool의 버전과 Control Plane의 버전은 다를 수 있다. 하지만, Node Pool의 버전은 Control Plane이 버전 지원을 하는

VM이 Rolling Update 되는건 개별 Agent Pool을 업그레이드할 때인 것 같다.

그리고 쿠버네티스 버전 업그레이드를 하기 위해서는, Control Plane을 먼저 업그레이드 하고 그 후에 Worker Node를 하면 된다.

그렇다면 1) Control Plane만 업그레이드를 할 때, 2) Control Plane과 Node Pool을 동시에 업그레이드할 때는 어떻게 될까?

 

 

이번엔 Node Pool에 대해 알아보자.

 

AKS는 Master Plane (Control Plane)과 여러 개의 Worker Node로 이루어져있다.

여러 개의 Worker Node를 하나의 그룹으로 묶어놓은 것이 하나의 Node Pool이다.

즉, 여러 개의 Node Pool이 존재할 수 있다.

 

그럼 왜 굳이 Node Pool을 여러 개 두는가?

예를 들어, Node Pool 1은 타입을 고사양으로 설정하고 Node Pool 2는 저사양으로 설정할 수도 있고,

혹은 서브넷을 다르게 할 수도 있고,

어떤 Node Pool은 GPU Node Pool로 설정할 수도 있다.

 

즉, 목적에 맞게 다르게 설정하는 것이 가능하다.

 

제약사항?

Node Pool은 10개까지 사용 가능하고, 하나의 Node Pool안에서 100개의 VM을 사용할 수 있다.

 

즉, 하나의 Control Plane 안에는 최대 1000개의 Node가 들어갈 수 있다.

따라서, 빅 클러스터를 운영하려면 (1000개 노드 이상) 2개 이상의 클러스터를 운영해야 한다.

 

 

Node Pool을 추가해보자.

 

Node Pool의 모드는 2가지가 있다.

 

System과 User인데, 처음에는 System으로 만들어진다.

이 두 개의 차이는, User node pool은 0개까지 줄일 수 있지만, System node pool은 무조건 1개 이상은 운영이 되어야 한다.

(언제든지 az 명령어로 변경할 수 있다.)

 

노드당 최대 Pod의 갯수는 10-250개까지 제한할 수 있다.

default는 110개로 설정되어 있다.

 

 

쿠버네티스 클러스터를 만들었다.

 

vnet은 네트워크 다룰 때 다시 언급할거고, web-project라는 cluster가 잘 만들어졌다.

 

 

그런데 눈여겨볼 것이, MC라는 RG가 하나 더 만들어진다.

내가 만든게 아닌데 AKS 클러스터를 만들면 자동으로 만들어진다.

 

이 RG이 AKS의 key라고 볼 수 있어.

AKS를 만들 때 숨겨진 인프라가 다 이 안에 들어있다고 보면 된다.

 

loadbalancer, vmss, nsg, pip 기본적으로 이렇게 만들어진다.

내가 만든 리소스들이 MC 내에 만들어진다는게 핵심.

 

질문) 그럼 나중에 이 리소스 그룹을 변경할 수 있나요?

질문2) 굳이 왜 2개의 리소스 그룹이 만들어지는건가요? -> 장난? 이 내용 없는데?

https://docs.microsoft.com/ko-kr/azure/aks/faq

 

AKS(Azure Kubernetes Service)에 대한 질문과 대답 - Azure Kubernetes Service

AKS(Azure Kubernetes Service)에 대한 일반적인 질문에 대한 답변을 찾아보세요.

docs.microsoft.com

 

어쨌든... 클러스터 RG를 지우면 MC RG도 지워진대.

그러니 MC에 어떤 리소스를 추가할 때는, 클러스터와 수명주기를 공유하는 리소스만 추가할 것.

 

참고)

포탈에서는 불가능하고, Az CLI에서만 가능한 기능들이 있다. 나중에 더 알려준대.

기본적으로 노드 리소스 그룹 이름은 MC~ 인데

AZ CLI에서 사용자 지정 이름으로 만들 수 있다.

 

VMSS를 눌러보면 pip가 나오지.

참고) 각각의 워커 노드는 기본적으로 private ip를  가지고 있다.

 

잘 보면 VMSS에 ip가 달려있다. 어떻게 VMSS에 ip가 달려있어? VM 하나도 아닌데? 라고 생각할 수 있다.

확인해보면 LB에 붙어있는 아웃바운드용 프론트앤드 IP다.

 

이번엔 VMSS의 instance에 대해 확인을 해보자.

내가 돈나갈까봐 중지를 시켜놨거든? 그러니까 instance가 하나도 확인이 안됐어.

와.. VMSS가 완전히 삭제됐다가 다시 생기네

지금 만들어지는중 ㅋㅋ

 

instance 들어가보면 orchestrator 버전이랑 누가 만들었는지랑 

별의 별 내용이 다 tag로 달려있음

 

이 노드가 구동하고 있는 private ip 주소도 알 수 있다.

 

즉, 클러스터의 CPU를 얼마나 쓰고 있는지, 네트워크 인아웃바운드 트래픽 등등의 매트릭을 확인하려면

MC라고 붙은 RG에서 확인을 해야 한다.

 

매트릭을 확인할 때는?

VMSS -> 매트릭 -> apply splitting하면 각 instance의 매트릭이 차트로 나와서 한 눈에 더 보기 쉽다.

 

---

AZ CLI를 가지고 configure 할 수 있는 것에 대해 알아보자

 

az aks --help 하면 portal로 할 수 없는 많은 것들을 할 수 있다.

node pool 이름 설정이라든지...

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기