[Schema Registry UI] EKS

JunMyung Lee·2022년 7월 7일
0

데이터

목록 보기
11/14

스키마 레지스트리 UI를 EKS환경에서 사용할 수 있도록 구성한다
해당 문서에서는 schema registry ui를 SRU 로 명명한다

스키마 레지스트리 UI 구성하기

Docker 이미지

EKS에서 구동하기 위한 docker 이미지가 있어야 한다. 해당 이미지는

landoop 이라는 사람? 명칭? 기업?이 제공하고 있는 이미지를 사용한다

landoop/schema-registry-ui:0.9.5

💡 현재 날짜 기준 (2022. 01. 21) 가장 최신 버전이 `0.9.5` 이다.

지정 옵션

도커에서 SRU을 구동시킬때 필요한 옵션은 다음과 같다

SCHEMAREGISTRY_URL

이전에 작업된 EKS SR의 서비스명(dev-schema-registry-service)을 입력한다
단, 로컬환경에서의 연결은 /etc/hosts를 변경해서 사용해야한다 ( 로컬호스트끼리 안됨 )

💡 이분 다른 옵션은 전부 **SCHEMA_REGISTRY** 로 시작하는데 해당 옵션만 **SCHEMAREGISTRY** 로 되어 있다( 다르게 사용하면 디폴트인 localhost:8081로 되므로 주의 )

SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_METHODS

REST API를 사용하기 위한 허용 메소드 옵션인듯 하다. 설정하지 않으면 연결 실패

SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_ORIGIN

REST API를 행위를 허용하는 것으로 추측

CADDY_OPTIONS

이미지를 구동하는 웹서버인 CADDY 옵션 설정, 현재 쿠버네티스에서는 시간 초과를 적용하지 않는 옵션

PROXY

CORS 문제가 있거나 방화벽을 통과하고 서버를 공유하려는 경우 PROXY옵션을 추가 해야한다. 같은 대역대 에서 SR과 SRU의 연동시 필수 옵션이다

💡 프록싱을 할 때 `SCHEMAREGISTRY_URL`해당 IP 주소 또는 이에 대해 확인할 수 있는 도메인을 사용해야 합니다. localhost에서 Schema Registry를 제공하더라도 **사용할 수 없습니다 .** `localhost`그 이유는 도커 컨테이너에 자체 네트워크가 있으므로 *localhost* 가 컨테이너의 *localhost* 와 다르기 때문 입니다. 예를 들어 홈 네트워크에 있고 IP 주소가 `192.168.5.65`있고 컴퓨터에서 스키마 레지스트리를 실행하는 경우 `http://127.0.0.1:8082`대신 `http://192.168.5.65:8082`.

스키마 레지스트리가 자체 서명된 SSL 인증서를 사용하는 경우 PROXY_SKIP_VERIFY=true환경 변수를 사용하여 백엔드 TLS 인증서를 확인하지 않도록 프록시에 지시할 수 있습니다

로컬호스트 Docker 구동 예시

docker run -p 8000:8000 \
-e SCHEMAREGISTRY_URL=http://kubernetes.docker.internal:8081 \
-e SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_METHODS=GET,POST,PUT,OPTIONS,HEAD \
-e SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_ORIGIN='*' \
-e PROXY=true \
-d landoop/schema-registry-ui:latest

쿠버네티스 설정

서비스 설정

deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: schema-registry-ui
  namespace: dev
  labels:
    app: schema-registry-ui
spec:
  replicas: 1
  selector:
    matchLabels:
      app: schema-registry-ui
  template:
    metadata:
      labels:
        app: schema-registry-ui
    spec:
      containers:
        - name: schema-registry-ui
          image: landoop/schema-registry-ui:0.9.5
          imagePullPolicy: Always
          resources:
            requests:
              cpu: 250m
              memory: 512Mi
            limits:
              cpu: 500m
              memory: 1024Mi
          env:
            - name: SCHEMAREGISTRY_URL
              value: "http://dev-schema-registry-service"
            - name: SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_METHODS
              value: "GET,POST,PUT,OPTIONS,HEAD"
            - name: SCHEMA_REGISTRY_ACCESS_CONTROL_ALLOW_ORIGIN
              value: '*'
            - name: PROXY
              value: "true"
            - name: PROXY_SKIP_VERIFY
              value: "true"
            - name: CADDY_OPTIONS
              value: "timeouts none"
          ports:
            - containerPort: 8000

profile
11년차 검색개발자 입니다. 여러 지식과 함께 실제 서비스를 운영 하면서 발생한 이슈에 대해서 정리하고 공유하고자 합니다.

0개의 댓글