Kubernetes

개요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의 작동방식..
정의 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 # 다중 삭제도 가능 # 파드..
Troubleshooting Application Failure 강의에선 예시를 들어 설명했다. 웹 서버와 데이터베이스 서버가 있는 2계층 애플리케이션이 있다. 데이터베이스 파드는 데이터베이스 응용 프로그램을 호스팅하고 데이터베이스 서비스를 통해 웹 서버에 서비스를 제공한다. 웹 서버는 웹 팟에 호스팅되며 웹 서비스를 통해 사용자에게 서비스를 제공한다. 문제의 원인을 찾을 때까지이 맵의 모든 객체와 링크를 확인하는 것이 좋다고 한다. 웹 애플리케이션인 경우 curl을 사용하여 노드 포트의 웹 서버에 액세스할 수 있는지 확인한다. 다음으로 서비스를 확인한다. 웹 파드에 대한 엔드포인트가 있는 지 확인한다. 엔드포인트가 없다면 서비스에 구성된 셀렉터가 파드에 구성된 것과 일치하는지 확인한다. 그 다음 파드 ..
Introduction to Deployment with Kubeadm kubeadm 도구는 kubernetes의 best practice를 사용해 다중 노드 클러스터를 설정하는 데 도움이 된다. 우리는 이미 kube-apiserver, etcd, 컨트롤러 등을 포함한 다양한 구성 요소로 이루어진 kubernetes 클러스터에 대한 몇가지 보안 및 인증 요구 사항을 논의했다. 각 노드에 개별적으로 이러한 다양한 구성 요소를 설치하고 모든 구성 파일을 수정하여 모든 구성 요소가 서로 가리키도록 하고 동작하려면 인증서를 설정하는 것은 매우 귀찮은 작업이다. kubeadm 도구는 이러한 모든 작업을 처리 해 우리를 도와준다. kubeadm 도구를 사용해 kubernetes 클러스터를 설정하는 단계는 먼저 여러..
Ingress 서비스와 인그레스의 차이는 무엇이며 언제 어떤 것을 사용해야할까? 먼저 간단히 서비스를 다시 살펴보고 인스레스를 살펴보자 예를 들어 온라인 스토어를 운영하는 회사를 위해 쿠버네티스에 응용 프로그램을 배포중이라고 가정해보자. 응용프로그램은 myonlinestore.com으로 배포되어 있다. 외부에서 이 온라인 스토어로 접근하기 위해서는 http://www.myonlinestore.com 으로 접근해야 한다. 이는 보통 NodePort를 이용해서 http://10.58.10.1:38080 이런 식으로 접근한다. 프로덕션 레벨의 애플리케이션을 배포한 적 있다면 트래픽을 전달하는 것 외에 수행해야 할 많은 작업이 있다. 예를 들어 사용자가 매번 IP 주소를 입력하는 것을 원하지 않아 DNS 서버를..
Pod Networking 파드 레이어의 네트워킹은 어떻게 되는가? 클러스터에는 많은 파드가 실행될 것이다. 파드는 어떻게 주소 지정되는지, 서로 어떻게 통신하는 지 클러스터 내에서 이러한 파드에서 실행되는 서비스에 어떻게 접근하는지? 그리고 클러스터 외부에서 어떻게 접근하는 지 등이 고려해야할 문제이다. 쿠버네티스는 현재로서는 이러한 문제들에 대해서 내장 솔루션을 제공하지 않는다. 그래서 이런 문제들을 해결하기 위한 네트워킹 솔루션을 구현해야한다. 위 이미지를 보면 쿠버네티스가 파드 네트워킹에 대한 요구사항을 제시했다. 각 파드가 고유한 IP 주소를 가져야한다. 각 파드는 해당 IP 주소를 사용해 동일한 노드 내의 다른 모든 파드에 도달할 수 있어야한다. 각 파드는 동일한 IP 주소를 사용해 다른 노드..
Nowon9159
'Kubernetes' 태그의 글 목록