반응형

[Apache Kafka]kubernetes + helm 통해 Apache Kafka 설치 방법

*helm 이 설치되어 있습니다.

 

Strimzi Operator 설치

# 앞에 $ 부분은 뻈습니다.

# 1. namespace 생성
kubectl create namespace kafka

# 2. repo 생성
helm repo add strimzi https://strimzi.io/charts/
helm show values strimzi/strimzi-kafka-operator

# operator 설치
helm install kafka-operator strimzi/strimzi-kafka-operator --version 0.38.0 --namespace kafka

# 배포된 리소스 확인
kubectl get deploy,pod -n kafka

# operator가 지원하는 kafka 버젼 확인
kubectl describe deploy -n kafka | grep KAFKA_IMAGES: -A3

 

 

Kafka cluster 설치

*kafka 설치 전에 Strimzi 버젼 별로 설치 가능한 kafka를 확인해야 합니다. 아래 주소를 통해 확인합니다.

https://strimzi.io/downloads/

 

Downloads

Downloads Strimzi releases are available for download on our GitHub. The release artifacts contain documentation and example YAML files for deployment on Kubernetes.

strimzi.io

 

# Kafka cluster YAML 파일 다운로드
curl -s -O https://raw.githubusercontent.com/gasida/DOIK/main/strimzi/kafka-1.yaml

# kafka 배포
kubectl apply -f kafka-1.yaml -n kafka

# 배포된 리소스 확인
kubectl get all -n kafka

 

 

 

 

반응형
반응형

kubernetes   yaml 분석

#apiVersion: 이 오브젝트를 생성하기 위해 사용하고 있는 쿠버네티스 API 버전 설정.
apiVersion: apps/v1
#kind: 어떤 종류의 오브젝트를 생성하는지 설정.
#Deployment: ReplicaSet 을 관리하는 controller.
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: tuba-metric-collector #Deployment의 label
  name: tuba-metric-collector #Deployment의 이름
  namespace: dev
#spec: 각 컴포넌트에 대한 자세한 설명과 어떤 오브젝트 종류인지에 따른 내용 설정.
spec:
	#replicas: 유지하고자 하는 Pod 의 갯수.
  replicas: 2
	#selector: 관리하고자 하는 Pod 를 선택.
  selector:
    matchLabels:
      app: tuba-metric-collector
  strategy: {}
	#template: 관리되고자 하는 Pod 에 대해 정의하는 필드.
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: tuba-metric-collector
    spec:
      containers:
      - image: harbor.vista.astellu.com/tuba-dev/tuba-metric-collector:latest
        imagePullPolicy: Always
        name: tuba-metric-collector
        ports:
        - containerPort: 8080
        resources: {}

        env:
        - name: TUBA_SETTING_FILENAME
          value: "setting.yml"
        - name: TUBA_KAFKA_CONSUMER_TOPIC
          value: "tuba-meta-topic"
        - name: TUBA_KAFKA_CONSUMER_GROUP
          value: "oper2-mc-netapp"
        - name: TUBA_KAFKA_CONSUMER_EXPIRYTIME
          value: "120000"
      imagePullSecrets:
        - name: harbor
#status: 쿠버네티스가 자동으로 생성, 자신이 원하는 상태가 되도록 현재 상태를 설정.
status: {}
---
apiVersion: v1
kind: Service
metadata:
  name: tuba-metric-collector
  namespace: dev
spec:
  selector:
    app: tuba-metric-collector
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 32008
  type: NodePort
반응형
반응형

Airflow 란?

Apache Airflow는 초기 에어비엔비(Airfbnb) 엔지니어링 팀에서 개발한 워크플로우 오픈 소스 플랫폼입니다. 프로그램 방식으로 워크플로우를 작성, 예약, 모니터링 할 수 있습니다.

**워크플로우 : 의존성으로 연결된 작업(Task)들의 집합.

반응형

'Data engineer > Airflow' 카테고리의 다른 글

Linux 환경에서 airflow 설치 및 실행  (0) 2024.10.04
반응형


Airflow 설치 방법

1. pip 사용하여 설치

# 먼저 가상환경 생성
python3 -m venv airflow_venv
source airflow_venv/bin/activate

# 환경 변수를 설정
export AIRFLOW_HOME=~/airflow

# 설치할 때에는 Apache Airflow의 특정 버전을 설정해주는 것이 좋습니다.
# 예시로 airflow의 기본 패키지를 설치합니다.
pip install "apache-airflow==2.6.3" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.6.3/constraints-3.8.txt"

airflow db init
airflow webserver --port 8080

*blinker 삭제 실패 등 여러 원인으로 실패가 발생할 수 있습니다. 현재 해결한 방법은 pip3 apt update, pip3 apt upgrade를 통해서 pip3 패키지를 최신화해서 패키지 위치를 잡아줘야 합니다.

 

2. Helm 사용하여 설치

# 먼저 Helm 저장소 추가
helm repo add apache-airflow https://airflow.apache.org

# 저장소 업데이트
helm repo update

# Airflow 설치
kubectl create namespace airflow
helm install airflow apache-airflow/airflow --namespace airflow

 

3. Docker Compose 사용하여 설치

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml'

mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env

docker-compose up airflow-init
docker-compose up

 

4. APT 사용하여 설치

sudo apt-get update
sudo apt-get install apache-airflow

 

5. Apache Airflow 설치 스크립트 사용하여 설치

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/stable/installation-script.sh'
bash installation-script.sh

 

반응형

'Data engineer > Airflow' 카테고리의 다른 글

Airflow 란?  (0) 2024.10.05
반응형

Pod에 붙어 있는 PV 확인

 

$ kubectl describe pod "파드 이름" -n "namespace"

# Mounts 부분을 확인하면 어떤 디렉토리가 pv인지 확인 할 수 있다.
반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes]Node, Pod, Container 리소스 사용량 확인  (0) 2024.11.03
kubernetes yaml 분석  (1) 2024.10.07
kubectl 자동 완성  (0) 2024.09.06
kubernetes cluster 재설정  (1) 2024.06.30
Ubuntu 20.04 Kubernetes cluster 구축 방법  (1) 2024.06.30
반응형
# postgresql console 접속
$ psql postgres

# 사용자 확인
$ \du

# 사용자 생서
$ CREATE ROLE postgres WITH LOGIN PASSWORD 'postgres'

# 사용자 권한 부여
$ ALTER ROLE postgres CREATEDB;
$ ALTER ROLE postgres CREATEROLE;

# 새로 만든 유저로 접속
$ psql postgres -U postgres
# -> cmd 창을 보면 postgres=# 에서 postgres => 으로 변환 것을 확인 가능
# '#'은 superuser를 의미, '>' 는 superuser가 아니라는 의미

# 데이터 베이스 생성
$ CREATE DATABASE [데이터베이스명];

# 특정 유저에게 DB의 모든 권한 부여
$ GRANT ALL PRIVIELEGES ON DATABASE [데이터베이스명] TO [유저명];

# 데이터 베이스 리스트 보기
$ \list

# 특정 db로 연결
$ \connect [데이터베이스명];
반응형

'DB > PostgreSQL' 카테고리의 다른 글

[PostgreSQL] sequence(자동 증가) 값 확인  (0) 2023.12.13
반응형

maxscale 사용 중인 mariaDB에 디비 및 계정 생성

 

  1. maxscale master 계정 확인 후 해당 pod에 접속해서 커맨드를 사용합니다.
  2. 아래 코드를 참조해서 적용하면 됩니다.
$ mariadb -uroot -psecret -e "CREATE DATABASE test"
$ mariadb -uroot -psecret -e "CREATE USER 'test'@'%' IDENTIFIED BY 'test'"
$ mariadb -uroot -psecret -e "grant all privileges on test.* to 'test'@'%';"
$ mariadb -uroot -psecret -e "flush privileges;"
반응형

'DB Middleware > Maxscale' 카테고리의 다른 글

Maxscale 연결된 서버 조회  (0) 2024.09.06
반응형

Maxscale 연결된 서버 조회

$ maxctrl list servers
반응형

'DB Middleware > Maxscale' 카테고리의 다른 글

maxscale 사용 중인 mariaDB에 디비 및 계정 생성  (0) 2024.09.07

+ Recent posts