분류 전체보기

Kafka 및 Strimzi 소개 kafka는 대량의 데이터를 안정적이고 실시간으로 처리하는 데 사용되는 분산형 스트리밍 플랫폼입니다. 이벤트 스트림 등을 효과적으로 처리하고 , 데이터를 여러 시스템 간에 안전하게 전송할 수 있도록 지원합니다. 카프카는 주요 요소는 다음과 같다. 주키퍼 ZooKeeper : 카프카의 메타데이터 관리 및 브로커의 정상 상태 점검 health check 을 담당 카프카 Kafka 또는 카프카 클러스터 Kafka cluster : 여러 대의 브로커를 구성한 클러스터를 의미 브로커 broker : 카프카 애플리케이션이 설치된 서버 또는 노드를 말함 프로듀서 producer : 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭 컨슈머 consumer : 카프카에서 메시지를 ..
Percona Server for MongoDB 개요 오늘 소개할 데이터베이스 오퍼레이터는 percona 사에서 만든, Percona Server for MongoDB이다. 이름이 길어 PSMDB라고 하겠다. https://docs.percona.com/percona-server-for-mongodb/6.0/comparison.html NoSQL 데이터베이스인 MongoDB 6.0을 기반으로 만들어졌으며, CE(Community Edtion) 외의 추가적인 기능들을 제공한다. Installing Percona Server for MongoDB - 링크 Percona Memory Engine - 링크 Hot Backup - 링크 Authentication - 링크 HashiCorp Vault integra..
CNPG(CloudNative PG)란? PostgreSQL Operator로 Operator Hub에서도 최고 레벨 5 AutoPilot 엄청나게 단계에 있는 완성도 있는 오픈소스이다 이름에서도 알 수 있듯이 Cloud Natvie 하게 동작하며 아래와 같은 기능들을 제공하며 운영에 필요한 대부분의 것들을 자동화하였음 Main features Direct integration with Kubernetes API server for High Availability, without requiring an external tool Self-Healing capability, through: Planned switchover of the primary instance by promoting a selected..
1. 개요 부끄럽지만, innoDB 클러스터라는 이름을 처음 들었을 때, 되게 낯설었고, 다른 DBMS 종류의 클러스터인 줄 알았는데, MySQL에서 고가용성을 위해 만든 서비스라고 한다. 왠지 반가웠다. MySQL에서 기본적으로 사용하는 innoDB 스토리지 엔진을 기반으로 동작한다고 해서 innoDB Cluster라는 이름이 붙여졌다고 한다. 사내의 개발환경에서는 데이터베이스를 컨테이너로 사용하고 있지만, 운영환경만큼은 아니었다. 개발 환경내에서 데이터베이스를 컨테이너로 사용해 보면서, 가용성 측면이나 자동화 등 좋은 부분들이 정말 많았지만 가장 중요한 데이터 안정성 등을 보장하기가 어려웠고 불안했다. 하지만 이번 innoDB Cluster를 공부해보면서 어쩌면 DB를 컨테이너로 도입에 하는데 한 걸..
쿠버네티스 오퍼레이터란? ( Kubernetes Operator ) 먼저 오퍼레이터를 이해하기 위해서는 쿠버네티스의 동작흐름과 몇 가지 개념을 알 필요가 있다. 왜냐하면 오퍼레이터는 쿠버네티스가 동작 흐름을 기반으로 동작하기 때문이다. 쿠버네티스는 다음과 같은 두 가지 접근법이 존재한다. 명령형(Imperative) - shell을 통해 kubectl과 같은 커맨드라인으로 오브젝트를 핸들링하는 방식이다. 선언형(Declarative) - yaml과 같은 파일에 오브젝트를 정의하고 apply로 생성하는 방식이다. 사용자는 두 접근방식으로 명시적인 애플리케이션 상태를 설정하면 쿠버네티스의 컨트롤러들은 지속적으로(컨트롤 루프) 리소스들을 감시하고 current state(현재 상태) -> desired sta..
쿠버네티스 운영중 빈번하게 클러스터 내부 파드간의 통신이 되지 않아 장애가 나는 경우가 많았는데, 그 중에서, 호스트를 찾지 못하는 문제가 많았다.(UnknownHostException) 그래서 보통 netshoot파드를 이용하여 간단하게 ping이나 curl 명령어로 통신을 테스트하곤 했었는데 이번 포스팅에서는 dig라는 dns 유틸리티를 활용해 테스트해보며 아주 아주 조금 더 평소에 잘 모르고 넘겼던 dns관련 개념들까지 간단히 알아보자. Prerequisites더보기1. 먼저 파드 간 통신을 디버깅한다는 전제로 nicolaka/netshoot 이미지 파드 안에서 진행2. 도메인은 coredns의 서비스 디스커버리로 예시(사전지식 필요)digdig는 DNS(Domain Name System) 조회를 ..
개요 보안 상의 이유로 IP의 Class A, Class B를 가리고, 등록할 엔드포인트 IP는 10.10.10.1 이라고 가정하겠다. 관리하는 쿠버네티스의 클러스터가 많아질 수록, kubeconfig 파일에 여러 개의 클러스터를 등록해서 사용하게 될 것이다. 그러던 중, 폐쇄망 환경의 클러스터를 연결한 외부망 프록시 IP를 클러스터의 엔드포인트로 설정하였는데, 아래와 같은 에러 문제가 발생하였다. kubectl get node Unable to connect to the server: x509: certificate is valid for x.x.0.1, x.x.50.24, x.x.10.176, not 10.10.10.1 클러스터에 등록하려는 엔드포인트 IP가 10,10.10.1이라고 가정하였을때 해당..
평소에 말로만 듣던 가시다님의 쿠버네티스 스터디를 운 좋게 참여하게 되었다. 마침 사내에서 DB를 컨테이너화를 고려하기도 했었고, 평소 오퍼레이터에 관심을 가지어 더욱 더 기대가 되었다. 이번 포스팅에는 1주차 스터디를 진행하면서 평소에 애매하게 알고만 있었던 스테이트풀셋을 정리해본다. Stateful vs Stateless 위 사진은 Stateful과 Stateless한 파드를 표현한 너무나도 유명한 그림이다. 우리가 애완동물에 기르면서 이름(고유한 식별자)를 붙이고, 가축과 같은 경우에는 굳이 이름을 붙이지 않는다. 즉, State의 유뮤는 사용하는 목적에 맞게 고유한 식별자를 부여하여 상태를 유지하거나, 또는 상태를 저장하지 않는 것이다. ( 일반적으로 웹서버와 같은 경우 stateless, 데이터..
장성필(hackjap)
'분류 전체보기' 카테고리의 글 목록 (9 Page)