Kubernetes
-
[Kubernetes] PodDisruptionBudget 과 Out of Memory ( OOM ) 관계 알아보기Kubernetes 2024. 6. 8. 13:08
- 목차 들어가며.Kubernetes 클러스터에서 Out of Memory(OOM) 을 유발하는 Pod 와 Pod Disruption Budget(PDB) 와의 관계를 알아봅니다.Out of Memory(OOM) 과 Pod Disruption Budget(PDB)의 관계를 살펴보면, OOM 은 PDB 에서 보호하는 의도적인 종료와는 무관합니다.PDB 는 관리자에 의해 발생하는 의도적인 Pod 삭제나 중단(예: 노드 유지보수, 클러스터 스케일링)을 제어하기 위해 설계되었습니다.반면, OOM 은 애플리케이션 자체의 메모리 부족으로 인해 발생하는 비의도적인 종료로, PDB의 보호 대상이 아닙니다. 이 글에서는 OOM이 Kubernetes 환경에서 발생할 때의 동작을 확인하고, PDB 설정이 의도적인 종료 상황..
-
[Kubernetes] LoadBalancer 타입 Service 이해하기Kubernetes 2024. 6. 1. 09:27
- 목차 들어가며.Kubernetes 에서 애플리케이션을 외부에 노출하는 방법 중 하나로 LoadBalancer 타입의 Service 가 있습니다.이 글에서는 LoadBalancer 서비스의 개념과 동작 방식 그리고 사용 방법까지 다뤄보겠습니다.특히 KinD 를 사용하여 로컬 환경에서 Kubernetes 를 실행하고, Nginx 를 LoadBalancer 로 활용하는 방법을 또한 설명드리겠습니다. Service 와 LoadBalancer.Kubernetes 에서 Service 는 클러스터 내부의 파드(Pod)들을 외부와 연결하는 중요한 역할을 합니다.서비스 유형에는 ClusterIP, NodePort, LoadBalancer 가 있으며, 그중에서 LoadBalancer 는 외부 로드 밸런서를 생성하여 클..
-
[Kubernetes] last-applied-configuration annotation 알아보기Kubernetes 2024. 4. 20. 17:18
- 목차 키워드.annotations last-applied-configuration ?이번 글에서는 k8s 리소스의 Annotation 중의 하나인 "kubectl.kubernetes.io/last-applied-configuration" 에 대해서 알아보려고 합니다.last-applied-configuration 어노테이션은 "kubectl apply" 명령어로 생성된 k8s 리소스의 어노테이션 중의 하나이구요.가장 최근의 kubectl apply 명령어를 통해서 생성 또는 수정된 Configuration 정보가 들어있습니다.간단한 예시를 들어보도록 하겠습니다. cat /tmp/pod.yamlapiVersion: v1kind: Podmetadata: name: nginxspec: containe..
-
[Kubernetes] HPA 알아보기 ( Horizontal Pod Autoscaler )Kubernetes 2024. 2. 16. 22:56
- 목차 들어가며. 이번 글에서는 Kubernetes 의 HPA (Horizontal Pod Autoscaler) 에 대해서 알아보는 시간을 가지려고 합니다. ReplicaSet 또는 Deployment 로 여러 개의 Pod 를 손쉽게 운용할 수 있습니다. 이는 HA 의 관점에서 안정적으로 Pod 를 일정 갯수만큼 유지시키는 Kubernetes 의 기능인데요. 이들은 반드시 일정 갯수라는 제한이 있기 때문에 리소스의 부하 상태에 따라 유연히 Scale In/Out 이 불가능합니다. Kubernetes 에서는 이러한 관점에서 Autoscaler 를 제공합니다. HPA 세팅하기. HPA 는 CPU 또는 메모리의 상황에 따라서 유연하게 Pod 가 Scale In/Out 됩니다. 실제로 테스트를 통해서 Kube..
-
[Kubernetes] QoS 알아보기 (Quality of Service)Kubernetes 2024. 2. 4. 08:54
- 목차 들어가며.이번 글에서는 쿠버네티스의 QoS 에 대해서 알아봅니다. QoS 는 Quality of Service 의 약자인데요."서비스의 품질" 와 같이 해석할 수 있지만, 쿠버네티스의 관점에서 설명하자면 Pod 의 생존을 보장하는 정도를 나타냅니다.( 구체적으로는 Pod 가 Eviction 되는 가능성을 낮추는 정도인데요. 아래에서 자세히 설명하도록 하겠습니다. )Pod 는 특정 Node 에 스케줄링되어 실행되고, Pod 의 내부에서 컨테이너들이 실행됩니다.컨테이너의 갯수는 하나 또는 그 이상일 수 있습니다. (일반적으로 1개의 Pod 는 1개의 컨테이너를 가집니다.)컨테이너는 CPU 와 메모리에 대해서 사용량을 제한할 수 있는데요. 이는 request 와 limit 나뉘어..
-
[KinD] KinD Cluster 로 Docker Image 업로드하기 (kind load docker-image)Kubernetes 2024. 2. 3. 09:12
- 목차 들어가며.이번 글에서는 KinD 로 생성된 k8s Cluster 내부로 Docker Image 를 Upload 하는 방법에 대해서 알아보도록 하겠습니다.KinD Cluster 는 Docker Hub 나 Harbor, ECR 등의 원격 이미지 레지스트리가 아닌 로컬에서 테스트 중인 도커이미지를 취급하는 경우가 존재합니다.이 과정에서 KinD 의 image Upload 명령어를 통해서 로컬의 도커 이미지를 KinD Cluster 내부로 업로드할 수 있습니다. KinD Cluster 생성하기.아래 링크는 KinD 로 k8s Cluster 를 실행시키는 방법에 대한 전반적인 설명을 다룹니다.https://westlife0615.tistory.com/407 KinD 알아보기.- 목차 소개. KinD 는 ..
-
Kubernetes Deployment 알아보기Kubernetes 2024. 1. 9. 17:27
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/412 Kubernetes ReplicaSet 알아보기 - 목차. 함께보면 좋은 글. https://westlife0615.tistory.com/210 Kubernetes Pod 이해하기 소개 Pod는 쿠버네티스의 가장 기본적인 구성요소입니다. 컨테이너 환경을 오케스트레이션하는 쿠버네티스 입장에서 westlife0615.tistory.com https://westlife0615.tistory.com/407 KinD 알아보기. - 목차 소개. KinD 는 "카인드" 라고 발음되며, 로컬 머신에서 쿠버네티스를 간편하게 실행할 수 있는 도구입니다. KinD 는 Kubernetes in Docker 의 약자이구요. Dock..
-
Kubernetes PersistentVolumeClaims (PVC) 알아보기Kubernetes 2024. 1. 8. 06:49
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/221 Kubernetes Ephemeral Volume 소개 어플리케이션이 다루는 데이터나 파일의 성격에 따라서 저장소의 종류가 두가지로 나뉩니다. 영구적이어야하는가? 일회성이어도되는가? 영구적인 저장소를 필요로하는 어플리케이션의 westlife0615.tistory.com 들어가며. 쿠버네티스는 Pod 가 데이터를 저장하는 방식을 크게 두 부류로 나누었습니다. 하나는 Ephemeral Volume 이고, 나머지 하나는 Persistent Volume 입니다. Ephemeral Volume 은 Pod 와 라이프사이크을 함께하는 볼륨인데요. Pod 가 Node 의 파일시스템 일부를 임시적으로 사용하는 형태입니다. P..
-
[Kubernetes] PodDisruptionBudget 알아보기 (PDB)Kubernetes 2024. 1. 6. 06:38
- 목차 Pod Disruption 이란 ? Pod Disruption 은 Pod 가 종료되는 상황을 의미합니다. 또한 시스템 상에서 Pod 가 종료되는 케이스를 크게 두가지로 나누는데요. Voluntary Disruption, Involuntary Disruption 으로 나눕니다. Voluntary Disruption 는 "자발적인 종료", "의위적인 종료", "의도적인 종료" 와 같이 해석할 수 있을 것 같습니다. 반면 Involuntary Disruption 은 Voluntary Disruption 에 반대되는 의미를 가지며, 시스템, 하드웨어 이슈 등에 의한 Pod 의 종료를 의미합니다. Node 가 실행되는 서버에 문제가 발생하여 Node 가 종료되고, Node 위에서 실행되던 Pod 들은 I..
-
ArgoWorkflow Parallel Nested Dag 구현하기 ( with Kubernetes )Kubernetes 2024. 1. 3. 04:31
- 목차 함께 보면 좋은 자료. https://westlife0615.tistory.com/407 KinD 알아보기. - 목차 소개. KinD 는 "카인드" 라고 발음되며, 로컬 머신에서 쿠버네티스를 간편하게 실행할 수 있는 도구입니다. KinD 는 Kubernetes in Docker 의 약자이구요. Docker 를 활용하여 쿠버네티스 환경을 구성 westlife0615.tistory.com https://westlife0615.tistory.com/516