Kubernetes
EKS Ingress Controller (Application LoadBalancer) 유형
EKS Ingress Controller (Application LoadBalancer) 유형
2023.10.31Intro AWS의 EKS에서는 Ingress Controller를 Helm or Manifest를 이용해서 Application LoadBalancer or Networ LoadBalancer를 만들 수 있게 해 준다. 만드는 방법은 링크를 참고하면 된다. Ingress Controller를 만들면, 우리가 만든 서비스랑 연결을 해줘야 라우팅이 가능해진다. 여기서 문서를 살펴보니, alb.ingress.kubernetes.io/target-type 라는 타입을 명시할 수가 있는데, 이걸로 네트워크 최적화가 가능했다. 한 번 살펴보자. target-type 앞에서 언급한 alb.ingress.kubernetes.io/target-type은 2가지 타입이 instance, ip 타입이 존재한다. 하나씩 알..
EKS OverProvisining - 1
EKS OverProvisining - 1
2023.10.30Intro AWS EKS를 사용하면서 서비스 규모가 확장되고, Pod의 수가 늘어나거나 HPA에 의해 Scale Out이 필요한 상황들이 발생한다. 이런 경우에 노드의 리소스 부족으로 인해 새로운 Pod를 실행할 수 없는 상황이 생길 수 있다. 이러한 문제를 해결하기 위해 EKS는 Cluster AutoScaling 기능을 제공하며, 추가적으로 Karpenter라는 도구도 사용할 수 있다. 관리형 노드 그룹에 새로운 노드를 추가하는 방식으로 동작한다. 그러나, 실제로 이 기능을 적용했을 때 문제점이 하나 있다. 바로 새로운 노드가 관리형 그룹에 추가되고 실행 가능 상태가 되기까지 약간의 시간이 소요된다는 점이다. 이때 요청이 증가해서 가동되고 있는 파드들 또한 문제가 발생한다면, 서비스의 다운타임이 발생..
Google Cloud Study Jam (개인 쿠버네티스 입문 과정) 후기
Google Cloud Study Jam (개인 쿠버네티스 입문 과정) 후기
2023.05.081. 신청 이유 평소에 사용하는 Public Cloud는 AWS였고, 사용법이 익숙한 것은 AWS 밖에 없다. 그러던 와중 Google Cloud Platform(이하 GCP)에서 쿠버네티스 입문 과정 스터디를 모집하는 것을 보았다. 쿠버네티스도 사용하고 있고, GCP도 경험해보고 싶었기에 신청했다. 수료 배지도 주고, 경품도 주는데 Google Developers가 들어간 캡모자다. 쓰고 다닐지는 모르겠지만, 약간 귀여운 듯 2. 스터디 진행 방식 스터디는 총 2가지 방식으로 지원할 수 있었다. 1. 개인 2. 팀 나는 개인 형태로 지원했고, 입문 과정에 해당하는 Kubernetes in the Google Cloud를 수강하면 된다. 설명 PPT를 보니 팀 형태는 그룹장이 존재하고, 구글의 공지 및 ..
Kubernetes ReplicaSet, Deployment
Kubernetes ReplicaSet, Deployment
2023.01.17apiVersion: apps/v1 kind: Deployment metadata: labels: app: nginx-deployment name: nginx-deployment spec: replicas: 4 // 유지할 파드 개수 selector: matchLabels: app: nginx-deployment template: metadata: labels: app: nginx-deployment spec: containers: - name: nginx image: nginx ReplicaSet이란? 레플리카셋은 지정된 수의 파드 레플리카가 항상 실행되도록 보장하는 오브젝트입니다. 따라서 레플리카를 3으로 설정한다면, 레플리카에 종속되는 파드의 수는 3개가 되며, 개수를 세 파드를 재생성하거나, 삭제..
Kubernetes Pod
Kubernetes Pod
2023.01.08kubernetes Pod가 무엇인지 알아보고, 사용하는 옵션에 대해서 알아보겠습니다. 환경: 맥북 프로 m2, minikube 실습에 사용된 모든 코드는 글 마지막에 적혀있는 Github에서 볼 수 있습니다. 1. Pod란? 쿠버네티스에서 관리하는 가장 작은 배포 단위입니다. 도커가 컨테이너를 만든다면, 쿠버네티스는 파드를 생성합니다. 이때 다른 점은 파드는 하나 이상의 컨테이너를 포함할 수 있습니다. 파드에 1개의 컨테이너가 동작할 수도 있고, 서로 긴밀히 동작하는 여러 개의 컨테이너가 있을 수 있습니다. 2. Pod 생성하기 파드를 만들 수 있는 방법은 여러 가지가 있습니다. 하나씩 해보겠습니다. 2-1. run 명령어 가장 간단하지만, 상세히 설정하기에 번거로운 명령어입니다. kubectl run..
Kubernetes 구성 요소
Kubernetes 구성 요소
2023.01.07쿠버네티스 컨트롤 플레인 구성 요소에 대해서 알아보겠습니다. 먼저 쿠버테니스를 배포하면, 클러스터를 얻습니다. 클러스터란? 애플리케이션 컨테이너를 실행하기 위한 일련의 노드 머신입니다. 최소 수준에서 클러스터는 컨트롤 플레인 및 하나 이상의 노드라는 워커 머신의 집합을 가지고 있습니다. 워커 노드란? 애플리케이션의 구성 요소인 파드를 호스트 합니다. (파드는 다음 포스팅에서 설명하겠습니다.) 위의 사진을 보며, 컨트롤 플레인의 구성 요소 살펴보겠습니다. 1. Control Plane Component 1. kube-apiserver kube-apiserver는 마치 웹 애플리케이션에서 프런트 엔드가 있듯이 컨트롤 플레인에서의 프런트 엔드입니다. 즉 마스터 노드의 중심에서 모든 클라이언트, 컴포넌트로부터 ..