개요EKS의 HPA를 찾아보는 과정에서 Karpenter라는 키워드를 많이 듣기도 했고, 여러 세션에서 Karpenter에 대한 설명도 조금씩은 들었었다. 그래서 정리해보고자 한다. 기존의 Autoscaling기존에 EKS에서 오토 스케일링을 위해서는 Cluster Autoscaler(CA) 를 이용한 것으로 보인다. Cluster Autoscaler(CA)란?Cluster Autoscaler(CA)란 Kubernetes 클러스터가 워크로드에 따라 용량을 자동으로 조절하는 기능을 하는 도구이다. 개발자가 Pod를 많이 배포하거나 HPA 과정에서 새로 생성된 Pod가 Node의 리소스 부족으로 인해 Pending 상태에 빠지게 되면 Node를 Scale Out 해 Pod를 배치하는 방식이다.CA의 작동방식..
Kubernetes
정의 Helm이란 Chart라는 패키지 형식을 사용해 Kubernetes의 패키지 관리를 도와준다. 여기서 Chart는 Kubenernetes 리소스의 집합을 설명하는 Yaml 파일 모음이라고 생각하면 된다. 흔히 패키지 관리를 도와주는 npm과 pip와 같은 역할을 하는데 Helm의 경우 Pod를 구성하기 위해 필요한 모든 리소스들을(예: 서비스, 디플로이먼트, 파드 등) 패키지화 한 것이라고 생각하면 된다. Helm Chart를 검색하는 방법은 구글에서 원하는 것 + helm chart라고 검색하면 Github 링크가 나올 것이다. 유명한 툴들은 보통 공식 github에 helm chart가 다 구성되어 있으니 이렇게 찾으면 된다. 그게 아니어도 https://artifacthub.io/ 라는 좋은 ..
서론 참 이번 시험 준비하는 데 이상하게 애를 먹었다. 시험 준비하는 후반에 뭔가 집중력도 많이 흐트러지고, 개념에 대한 이해도 중반부와 다르게 헷갈리는 순간들이 찾아왔다. 결국 합격을 하기는 했지만 만족스럽지는 않은 점수인 68점이라 EKS를 공부하면서 다시 한번 더 K8s에 대한 개념을 정리 해보고자 한다. 합격하고 나서 어디서 어떤 문제를 틀렸는지 알려주지 않아서 조금 아쉬웠다... CKA를 취득해서 이제 정량적으로 남들에게 K8s에 대해 이 정도는 알고 있다고 말할 수 있어 조금 편해졌다. 이제 면접을 보거나 누군가 물어보게 된다면 자랑스럽게 뱃지를 들이밀어 봐야겠다 ㅎㅎ... 시험 시작 전 꼭 해야할 것 생각보다 시험 시작 전에 확인하는 과정이 나는 오래 걸렸다. 그래서 무조건 꼭 30분 전에 ..
Cluster Maintenance OS Upgrades 노드 정상적으로 비우기 controlplane ~ ✖ k drain node01 --ignore-daemonsets node/node01 already cordoned Warning: ignoring DaemonSet-managed Pods: kube-flannel/kube-flannel-ds-86sk5, kube-system/kube-proxy-h5rcc evicting pod default/blue-6b478c8dbf-qvshb evicting pod default/blue-6b478c8dbf-74gxg pod/blue-6b478c8dbf-qvshb evicted pod/blue-6b478c8dbf-74gxg evicted node/node01..
Core Concepts PODs 명령어 # 파드 확인하기 kubectl get pod # k get po # 특정 네임스페이스 안에 있는 파드 확인하기 kubectl get pod -n # 파드 더 자세히 확인하기 kubectl get pod -o wide # 파드 생성하기 kubectl run pod # 파드 생성할 때 이미지 설정 kubectl run pod --image=: # 파드 생성할 때 레이블 설정 kubectl run pod --image=: -l = # -l =,= 레이블의 경우 콤마(,)를 넣어주면 다수도 지정 가능 # 파드 상세 정보 출력 kubectl describe pod # 파드 삭제 kubectl delete po kubectl delete po # 다중 삭제도 가능 # 파드..
CKA 자격증 공부 개요 아래 내용들은 자격증 합격 후기 및 유용한 팁 발췌함 합격은 66%점 기준 시험 시간은 2시간 3년 유효기간 (2024.01.01 기준 3년 -> 2년으로 변경) 링크를 확인 해보면 알겠지만 유효 기간이 2024.04.01 00:00 기준으로 기존 3년에서 2년으로 변경 되었다. 그 전에 시험을 통과하면 유효기간이 3년이니 빨리 합격하는 것이 좋을 것 같다. 1번의 Retake 제공 ❗시험 등록 시 입력한 Verify Name을 기준으로 국문 으로 입력 시 국문 주민등록증 / 운전 면허증으로 가능하나, 영문으로 입력 시 여권이나 영문 운전 면허증을 준비해야함. 각 문제마다 컨텍스트를 바꿔서 문제를 수행할 수 있도록 되어있다. kubectl config set-context 시험 ..
서비스 : 클라이언트가 파드를 검색하고 통신을 가능하게 함 파드는 일시적이다. 파드가 파드를 위한 공간을 확보하려고 노드에서 제거되거나, 누군가 파드 수를 줄이거나, 클러스터 노드의 장애로 언제든 다른 노드로 이동할 수 있다. 쿠버네티스는 노드에 파드를 스케줄링한 후 파드가 시작되기 바로 전에 파드의 IP 주소를 할당한다. 따라서 클라이언트는 서버인 파드의 IP 주소를 미리 알 수 없다. 수평 스케일링은 여러 파드가 동일한 서비스를 제공할 수 있음을 의미한다. 그리고 모든 파드를 단일 IP 주소로 액세스할 수 있어야 한다. 위와 같은 문제를 해결하려고 리소스 유형인 서비스를 제공한다. 5장에서 다루는 내용 단일 주소로 파드를 노출하는 서비스 리소스 만들기 클러스터 안에서 서비스 검색 외부 클라이언트에 서..
4장에서 다루는 내용 파드의 안정적인 유지 동일한 파드의 여러 인스턴스 실행 노드 장애 시 자동으로 파드 재스케줄링 파드의 수평 스케줄링 각 클러스터 노드에서 시스템 수준의 파드 실행 배치 잡 실행 잡을 주기적 또는 한 번만 실행하도록 스케줄링 실환경에서는 배포한 애플리케이션이 자동으로 실행되고 수동적인 개입 없이도 안정적인 상태로 유지하기 위해서 레플리케이션컨트롤러 또는 디플로이먼트와 같은 유형의 리소스를 생성해 파드를 생성하고 관리한다. 4.1 파드를 안정적으로 유지하기 파드가 노드에 스케줄링되는 즉시, 해당 노드의 Kubelet은 파드의 컨테이너를 실행하고 파드가 존재하는 한 컨테이너가 계속 실행되도록 할 것이다. 컨테이너의 주 프로세스에 크래시가 발생하면 Kubelet이 컨테이너를 다시 시작한다...
3장에서 다루는 내용 파드의 생성, 실행, 정지 파드와 다른 리소스를 레이블로 조직화하기 특정 레이블을 가진 모든 파드에서 작업 수행 네임스페이스를 사용해 파드를 겹치지 않는 그룹으로 나누기 특정한 형식을 가진 워커 노드에 파드 배치 3.1 파드 소개 파드는 함께 배치된 컨테이너 그룹이며 쿠버네티스의 기본 빌딩 블록이다. 컨테이너를 개별적으로 배포하기보다는 컨테이너를 가진 파드를 배포하고 운영한다. 파드는 단일 컨테이너일 수도 여러 개의 컨테이너일 수도 있다. 3.1.1 파드가 필요한 이유 로그를 쌓는 과정에서 A 컨테이너에서 X와 Y 프로세스를 실행한다고 가정했을 때, 모든 프로세스는 동일한 표준 출력으로 로그를 기록하기 때문에 어떤 프로세스가 남긴 로그인지 파악하는 것이 어렵다. 또한, 개별 프로세스..