[DevOps]/[Kubernetes]

    [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..

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

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

    *유데미에서 진행하는 Kubernetes for the Absolute Beginners - Hands-on 강의를 바탕으로 제작되었습니다. 쿠버네티스 Deployment에서 응용 프로그램의 업데이트와 롤백에 대해 알아보겠습니다.  쿠버네티스 롤아웃: 새로운 어플리케이션 버전을 클러스터에 배포하고 이전 버전을 대체하는 프로세스  롤아웃은 새로운 replicaset을 만들고 이전 replicaset을 사장 시켜 새로운 것과 바꿔줍니다. 그 과정에서 파드에서 실행되는 응용 프로그램의 버전 업그레이드를 가용성을 지키면서 수행할 수 있습니다.  또한 배포에 일어난 변화를 추적할 수 있게 해주고 필요하다면 배포의 이전 버전으로 되돌리는 작업(Rollback)도 가능합니다  배포에는 2가지가 있는데 recreati..