PaaS 221

kafka 서버 설치하기

CentOS7을 기준으로 작성한 가이드 입니다. JDK 설치 # sudo yum install java-1.8.0-openjdk-devel # java -version kafka 서버 Install # wget --no-check-certificate https://archive.apache.org/dist/kafka/3.2.0/kafka_2.12-3.2.0.tgz # tar xvf kafka_2.12-3.2.0.tgz # cd kafka_2.12-3.2.0 Configuration # cd config # vi server.properties //[31번 라인 정도에 있는 다음 내용 주석 해제] listeners=PLAINTEXT://:9092 //[36번 라인 정도에 있는 다음 내용 주석 해제 후 다..

PaaS/MQ 2022.06.07

App of Apps Pattern 이란? 그리고 ArgoCD에는 어떻게 정의해야 하나

App of Apps 패턴은 사실 원래 있던 구조 였다. 레거시로 거슬러 올라가면 Parrent 모듈에 Sub모듈이 있는 프로젝트가 그랬듯이 요즘 대두되는 App of Apps 패턴도 종속관계를 이용한 배포구성이다. 다만 요즘에는 어플리케이션이 인프라 레벨까지 배포컨트롤이 가능한 컨테이너 Base로 구현되다 보니, 레거시 보다 확장된 범위의 자원을 App of Apps 패턴으로 관리하고 있다. 토스뱅크도 배포 대상의 환경이 Kubernetes로 되어 있어 App of Apps 패턴을 적용하여 관련 리소스를 일괄 배포한다고 한다. (아래 링크 참조) https://armyost.tistory.com/240 토스뱅크의 쿠버네티스 기반 CI/CD 환경 관련링크 : https://www.youtube.com/w..

PaaS/CI CD 2022.06.02

KubeEdge에 대해서

소개 KubeEdge란 컨테이너기반 어플리케이션 오케스트레이션과 Edge컴퓨팅의 디바이스 관리를 확장하는 오픈소스 시스템이다. 이것은 Kubernetes 기반에 구축되며 네트워킹, APP배포, Cloud와 Edge간의 메타데이타를 관리할 수 있는 핵심 인프라 서비스를 제공한다. 그리고 KubeEdge는 MQTT를 지원하고 개발자에게 Custom Logic을 제작토록 허용하고, Edge구간에서 리소스 기반 디바이스 커뮤니케이션 가능케 한다. KubeEdge는 Cloud part와 Edge part로 이루어져 있다. 두 part모두 오픈소스로 공개되어 있다. 구성요소 Edged : Edge노드에서 실행되는 Agent. Edge노드의 컨테이너화 된 어플리케이션을 관리 EdgeHub : Edge Computin..

PaaS/Kubernetes 2022.05.18

토스뱅크의 쿠버네티스 기반 CI/CD 환경

관련링크 : https://www.youtube.com/watch?v=gF1wfTCDyI8 주요내용 개발 환경 : Testbed, Dev 환경으로 이루어져 있다. Testbed : 아무런 트래픽 없음(형상조합을 위한 환경인듯) Dev : 테스트 트래픽 발생 Live 환경 : 멀티클러스터, Active-Active 운영 DataCenter1에서 Version Blue, DataCenter2에서 Version Green을 운영하고 클러스터 Outside에서 트래픽을 조정하면서(데이터센터 자체의 로드벨런서, Gateway 등을 통해..) Blue/Green 혹은 Carany를 수행하는것으로 보임 GitOps를 사용하여 형상관리 중 CD : ArgoCD 가 Git Repository의 소스를 지속적으로 Sync..

PaaS/Kubernetes 2022.05.15

(Kubernetes) Probe들에 대한 이해

Pod의 Probe 종류 livenessProbe 컨테이너가 동작 중인지 여부를 나타낸다. 만약 활성 프로브(liveness probe)에 실패한다면, kubelet은 컨테이너를 죽이고, 해당 컨테이너는 재시작 정책의 대상이 된다. 만약 컨테이너가 활성 프로브를 제공하지 않는 경우, 기본 상태는 Success 이다. readinessProbe 컨테이너가 요청을 처리할 준비가 되었는지 여부를 나타낸다. 만약 준비성 프로브(readiness probe)가 실패한다면, 엔드포인트 컨트롤러는 파드에 연관된 모든 서비스들의 엔드포인트에서 파드의 IP주소를 제거한다. 준비성 프로브의 초기 지연 이전의 기본 상태는 Failure 이다. 만약 컨테이너가 준비성 프로브를 지원하지 않는다면, 기본 상태는 Success 이..

PaaS/Kubernetes 2022.04.29

(Kubernetes) 모니터링에 관하여

우선 마이크로서비스 아키텍처를 적용함에 있어서 Istio Control Plane으로 통제받는 범위를 최대한 확장할 필요가 있다. Istio를 단지 Envoy 구성으로 사용하게 되면 Pod의 In/Outbound에 가시성이 생기는데, 여기에다 External-Kubernetes Cluster 구간의 가시성을 확보하기 위하여 Istio GW까지 적용을 해야 전구간 Istio Control 구간에 들어가게 된다. 모니터링1: 서비스의 흐름과 mesh에 집중 이렇게 수집한 Istio 데이터는 용도에 따라 다음의 Kiali와 구성요소를 사용하여 컨트롤 하면 유용하다. Kiali 사용 목적 서비스간 연결을 투명성있게 시각화하는 기능이 뛰어남 서비스간 Routing Rule을 통제하기 위한 기능이 뛰어남 Kiali..

(Kubernetes) Istio을 리소스에 주입시키면 추가되는 설정들

Istio를 Kubernetes 리소스에 주입시키기 위해 Injection할 경우 다음의 설정 들이 추가된다. spec.template.metadata.annotations: kubectl.kubernetes.io/default-container: → 어플리케이션 Container kubectl.kubernetes.io/default-logs-container: → 어플리케이션 Container prometheus.io/path: → Metric 수집 PaaS에 대한 설정 prometheus.io/port: → Metric 수집 PaaS에 대한 설정 prometheus.io/scrape: → Metric 수집 PaaS에 대한 설정 sidecar.istio.io/status: '{"initContainer..

PaaS/Kubernetes 2022.04.18

(Kubernetes) Ingress Class Object에 대해서

nginx Ingress Controller 1.0 버전전까지는 Ingress Class Object를 요구하지 않았는데, 버전 1.0이후의 Ingress Controller는 어떤 Ingress class Object를 제공할지 인지하고 있어야 한다. (k8s1.22부터 준수사항인듯...) 내 k8s 클러스터의 Ingress 관련 준수사항을 확인하려면.. $ kubectl explain ingressclass $ kubectl explain ingress.spec.ingressClassName k8s 1.22부터는 Ingress API는 "networking.k8s.io/v1" API로 부터만 접근할 수 있습니다. 즉 "extenstions/v1beta1" 혹은 "networking.k8s.io/v1b..

PaaS/Kubernetes 2022.04.18

(NoSQL) MongoDB 구성요소

Mongo DB 구성요소 1. Databases admin Database admin DB는 관리목적으로 사용되는 DB이며 인증과 인가의 핵심 역할을 수행한다. config Database 샤딩과 샤딩을 위한 메타데이타 정보를 저장하기 위해 사용. 단일 구성으로 mongoDB를 올릴경우에는 해당되지 않습니다. Replica Set 기반에 동작하면 해당됩니다. 일반 Database 2. 기타 구성요소 Aggregation Aggregation은 여러 document들을 grouping하여 연산을 수행한 후 하나의 result를 반환하는 연산입니다. MongoDB는 다음과 같은 세가지 방법의 Aggregation을 제공합니다. Aggregation Pipeline 가장 기본적인 파이프라인 단계는 filter..

PaaS/Data 2022.04.15