Cloud & Architecture
Kubernetes 인그레스(Ingress), 로드밸런서 LoadBalancer, metallb
Ingress, Ingress Controller 인그레스를 사용하면 L7의 웹 요청을 해석해서 단일 IP, 단일 포트로 다수의 도메인과 서비스로 연결할 수 있음 쿠버네티스에서 기본적으로 지원하는 인그레스 오브젝트는 클라우드 환경이 아니면 사용할 수 없음 클라우드에서 인그레스를 생성하면 외부에 게이트웨이를 생성하고 각 기능에 맞게 서비스에 연결 쿠버네티스에서 Ingress를 사용하기 위해서는 두 가지가 필요 첫 번째는 YAML 파일에서 kind: Ingress 로 정의되는 Ingress 오브젝트 두 번째는 Ingress 규칙이 적용될 Ingress Controller YAML 파일로부터 Ingress를 생성해도 아무 일도 일어나지 않음 Ingress는 단지 Ingress 규칙을 정의하는 선언적인 오브젝트..
GCP GKE Kubernetes 인그레스(Ingress), 노드포트(Nodeport) 접속
MSA (Micro Service Architecture) 로 개발되어 서비스간의 라우팅이 필요한 구조에서는 Ingress 를 사용 Service의 NodePort : 온프레미스 환경에서 사용 Service의 LoadBalancer: 퍼블릭 클라우드 환경에서 사용 Servic는 클러스터 외부로 PORT를 노출하는 기능과 부하분산기능을 수행합니다. 그리고 이점은 Ingress 도 동일합니다. 차이점은 Ingress는 L7이고 Service는 L4라는 점입니다. 1. 노드 포트 2. 파드 생성 (디플로이먼트) vi web-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: web namespace: default spec: selecto..
쿠버네티스(Kubernetes) 배포 업데이트, 롤백
2023.10.14 - [Cloud&DevOps/Kubernetes] - GCP Kubernetes GKE Pod 생성, 배포, 접속 GCP Kubernetes GKE Pod 생성, 배포, 접속 2023.10.10 - [Cloud&DevOps/GCP] - GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스 GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스 https://cloud.google.com https://cloud.google.com 영상 통화, 이 karla.tistory.com Deployment 하나씩 Pod의 수를 수동으로 조정해야 하기 때문에 이를 자동화해서 추상화한 개념이 Deployment 이다. 업데이트 v2 이미지 배포 명령어를 실행하면 v1 → v..
GCP Kubernetes GKE Pod 레플리카셋, Deployment
2023.10.14 - [Cloud&DevOps/Kubernetes] - GCP Kubernetes GKE Pod 배포 (nginx) GCP Kubernetes GKE Pod 배포 (nginx) 2023.10.10 - [Cloud&DevOps/GCP] - GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스 GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스 https://cloud.google.com https://cloud.google.com 영상 통화, 이 karla.tistory.com 다수의 파드 배포 레플리카셋으로 파드 수 관리 쿠버네티스에서는 다수의 파드를 만드는 레플리카셋 오브젝트를 제공한다. 파드를 3개 만들겠다고 레플리카셋에 선언하면 컨트롤러 매니저와 스케줄러..
GCP Kubernetes GKE Pod 생성, 배포, 접속
2023.10.10 - [Cloud&DevOps/GCP] - GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스 GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스 https://cloud.google.com https://cloud.google.com 영상 통화, 이메일, 채팅, 문서 공동작업을 한곳에 통합할 수 있습니다. cloud.google.com https://console.cloud.google.com Google 클라우드 플랫폼 로그인 Google 클라우드 karla.tistory.com 1. pod 생성 Pod란? 쿠버네티스 애플리케이션의 기본 실행 단위이다. 각 파드는 클러스터에서 실행중인 워크로드(쿠버네티스에서 구동되는 애플리케이션)의 일부를 나타낸다. Ku..
GCP GKE 클러스터 생성 | 구글 클라우드 플랫폼, 쿠버네티스
https://cloud.google.com https://cloud.google.com 영상 통화, 이메일, 채팅, 문서 공동작업을 한곳에 통합할 수 있습니다. cloud.google.com https://console.cloud.google.com Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 1. 새 프로젝트 생성 2. 쿠버네티스 엔진 API 활성화 2. 쿠버네티스 클러스터 만들기 3. 클러스터 생성이 완료되고 3개의 노드가 생성된 것을 확인할 수 있다. 4. 접속 1) 클러스터 연결 2) CLOUD SHELL 3) gcloud CLI https://cloud.google.com/sdk/docs/install gcloud CLI 설치 |..
마이크로서비스 분산 트랜잭션 관리, 보상 트랜잭션, MSA Transaction | Two Phase Commit, Saga Pattern
2PC (Two Phase Commit) 분산 시스템에서 트랜잭션을 변경할 수 있는 기능을 제공하는 방식 Transaction Coordinator가 각 서비스의 Commit. Rollback 을 제어하는 형태로 트랜잭션을 관리함 2PC는 서비스가 증가할수록 시스템의 대기 시간이 길어지며, 이는 응답시간의 증가를 초래함 Lock을 잡아야 하는 Row의 범위가 크거나 트랜잭션 기간이 긴 경우 시스템에 엄청난 대기시간을 발생하므로 수명이 매우 짧은 작업에만 사용하는 것을 권장 마이크로서비스 전체에서 상태 변경을 조정하기 위해 2PC와 같은 분산 트랜잭션을 사용하지 않는 것이 좋음 2PC는 결국 Coordinator를 기반으로 강력한 결합을 유도하고, 데이터에 직접적인 Lock을 잡고 처리하기 때문에 서비스간..
[gRPC] gRPC 개요, MSA 서비스간 통신, gRPC vs REST
마이크로 서비스간 통신 이슈 MSA에서는 여러 모듈로 분리되어있고 동일 머신에 존재하지 않을 수 있습니다. 따라서 일반적으로는 보편화된 방식인 REST 통신을 통해 메시지를 주고 받습니다. TTP 1.0은 요청/응답을 하기에 앞서 매번 Connection을 맺고 끊어야했기 때문에 연결 요청/해제 비용이 상당히 높았습니다. RPC Remote Procedure Calls 다른 컴퓨터의 프로그램의 프로시저를 실행하는 프로그램을 허용하는 프로토콜 개발자가 원격 상호 작용에 대한 세부 정보를 명시적으로 코딩하지 않아도 됨 프레임워크가 자동 핸들링 클라이언트 코드에서는 직접 서버 코드의 함수를 호출하는 것처럼 보임 gRPC google Remote Procedure Call 구글에서 만든 원격 프로시저 호출 프레..