[Cloud]/[Kubernetes]

    [Kubernetes] HPA, VPC, CA

    [Kubernetes] HPA, VPC, CA

    쿠버네티스에는 오토스케일링 기능을 수행할 때, HPA와 VPC, CA가 있습니다. HPA는 노드 속 Pod의 수를 조절하고, CA는 노드의 수를 조절합니다.  1. HPA(Horizontal Pod Autoscaler)  HPA(horizontal pod autoscaler)는 노드(EC2 인스턴스) 속 특정 응용 프로그램을 실행하는 파드(pod)가 사용하는 컴퓨팅 자원의 사용량이 지정한 임계값을 넘어서면(ex. CPU 사용률 50% 이상) 새로운 파드를 생성하라고 Deployment에 요청을 주어 새로운 파드를 생성하거나 제거하도록 돕습니다. 그렇게 파드가 하나에서 둘이 되면 워크로드가 분산되어 부하를 줄어들고, 부하가 다시 줄어들면 자동으로 파드 수를 줄여 원래대로 돌아오게 합니다.  쉽게 말해 노드..

    [Kubernetes] 쿠버네티스 마이크로서비스 어플리케이션(Microservice application)

    [Kubernetes] 쿠버네티스 마이크로서비스 어플리케이션(Microservice application)

    *유데미에서 진행하는 Kubernetes for the Absolute Beginners - Hands-on 강의를 바탕으로 제작되었습니다.  마이크로서비스 어플리케이션 실습을 위해 개와 고양이를 선택하는 투표앱과 그 결과를 알려주는 결과앱을 연동하는 서비스를 만들어보겠습니다.   마이크로서비스는 각 서비스가 독립적으로 동작하고 느슨하게 연결되어 있는 특징이 있습니다. 이러한 독립적인 서비스를 쿠버네티스 배포와 서비스를 이용해 만들어보겠습니다. 1. 마이크로서비스 구성    pod는 5개로 voting-app, redis, worker, postgres, result-app가 있고 각 파드들을 이어주기 위한 쿠버네티스 서비스가 필요합니다. 서비스는 voting-app, redis, postgres, re..

    [Kubernetes] 쿠버네티스 서비스 - 3. 로드밸런서(LoadBalancer)

    [Kubernetes] 쿠버네티스 서비스 - 3. 로드밸런서(LoadBalancer)

    *유데미에서 진행하는 Kubernetes for the Absolute Beginners - Hands-on 강의를 바탕으로 제작되었습니다.  1. 쿠버네티스 로드밸런서(부하 분산기)  쿠버네티스의 어플리케이션 생성 순서는 다음과 같습니다 1. Deployment 생성2. 서비스 생성(ClusterIP)3. 서비스 생성(LoadBalancer)  예시로 투표앱 생성 과정을 보겠습니다.    위의 사진에서 프론트엔드 부분인 voting-app과 result-app 부분만 따로 분리해서 보겠습니다.     위의 사진 처럼 노드마다 파드들이 분리되어 있습니다. voting-app의 경우 2개의 노드에 파드가 1개, 2개 씩 있고, 노드포트(30035)가 포트에서 트래픽을 수신해 각각의 타겟포트로 트래픽을 라우..

    [Kubernetes] 쿠버네티스 서비스 - 2. 클러스터ip(ClusterIP)

    [Kubernetes] 쿠버네티스 서비스 - 2. 클러스터ip(ClusterIP)

    *유데미에서 진행하는 Kubernetes for the Absolute Beginners - Hands-on 강의를 바탕으로 제작되었습니다.  쿠버네티스 서비스(Service)는 3가지로 구분됩니다. 노드 포트, 클러스터ip, 로드 밸런스 이번 포스팅에서는 2번째인 클러스터ip에 대해 알아보겠습니다.  1. ClusterIP  풀스택 웹 어플리케이션은 어플리케이션의 다른 부분을 호스팅하는 부품을 가지고 있습니다.   예를 들어 front-end, back-end, redis 이렇게 3계층으로 구성되어 있다고 가정했을때, 프론트 엔드를 실행하는 파드들이 있고, 백엔드를 실행하는 파드들이 있고, 레디스를 실행하는 파드들이 있습니다.   웹 프로트엔드는 백엔드와 통신해야 하고, 백엔드 서버는 레디스 같은 데이..

    [Kubernetes] 쿠버네티스 서비스 - 1. 노드포트(NodePort)

    [Kubernetes] 쿠버네티스 서비스 - 1. 노드포트(NodePort)

    *유데미에서 진행하는 Kubernetes for the Absolute Beginners - Hands-on 강의를 바탕으로 제작되었습니다. 쿠버네티스 서비스란 무엇이고 왜 필요하며 어떤 역할을 하는지 알아보겠습니다. 쿠버네티스 서비스: 쿠버네티스 어플리케이션 안팎의 다양한 구성요소 간의 통신을 가능하게 해줌, 서비스는 앱 내 마이크로 서비스 간의 느슨한 연결을 가능하게 해준다 1. 쿠버네티스 서비스가 없을 때 쿠버네티스 서비스가 없을 때 위 사진처럼 사용자는 curl http://10.244.0.2로 직접 접속해 파드 속 응용 프로그램을 실행시켜야 했습니다. 2. 쿠버네티스 서비스가 있을 때 쿠버네티스 서비스가 있으면 사용자는 노드포트(30008)과 노드의 ip(192.18.1.2)를 이용해 노드 속 ..

    [Kubenetes] 쿠버네티스 업데이트 & 롤백 2

    [Kubenetes] 쿠버네티스 업데이트 & 롤백 2

    *유데미에서 진행하는 Kubernetes for the Absolute Beginners - Hands-on 강의를 바탕으로 제작되었습니다.  저번 포스팅에 이어 쿠버네티스 업데이트와 롤백 명령어에 대해 알아보겠습니다.  rollout 명령어: kubernetes에서 배포를 관리하는 데 사용되는 명령어 이 명령어를 사용하여 배포를 시작하거나 롤백하고 배포의 상태를 알 수 있습니다.  그래서 rollout명령어에는 rollout history, rollout status, rollout undo 등의 명령어가 있습니다.  # kubectl rollout history 리소스 유형 / 리소스 이름kubectl rollout history deployment/my-deployment>>>deployment.a..