5. 컨테이너링커 연동
Composite Container Application 적용 가이드(샘플)
동일한 POD에 두 개의 컨테이너 실행 가이드
- 멀티 컨테이너 패턴 참고 자료 : https://seongjin.me/kubernetes-multi-container-pod-design-patterns/
- 컨테이너링커가 사용하는 ConfigMap을 해당 업무세스템 namespace에 추가
apiVersion: v1
kind: ConfigMap
metadata:
name: cloud-cdf-config
namespace: dev
data:
##[컨테이너링커 전용] SKMS URL 필수 설정
SKMS_API_URL: "http://cloud-skms-service.dev.svc.cluster.local"
##[컨테이너링커 전용] 서비스 포트
CONTAINER_LINKER_SERVER_PORT: "8181"
## 선택 설정
# LOG_LEVEL: debug (기본 설정: info)
- yaml 실행 전 업무시템과 동일한 namespace로 수정
- SKMS_API_URL은 컨테이너링커가 설치되는 POD에서 통신이 가능해야함
- Deployment yaml 파일에 사이드카 컨테이너(Security365 컨테이너링커) 서비스 추가
## 서비스 이름
- name: cloud-containerlinker-service
## 도커 이미지 정보
image: security365acr.azurecr.io/shieldrm/cloud-containerlinker:latest
imagePullPolicy: Always
## 컨테이너 서비스 포트
ports:
- containerPort: 8181
## ConfigMap 정보
envFrom:
- configMapRef:
name: cloud-cdf-config
## 공유 디렉토리 정보
volumeMounts:
- name: data-cloud-drm-shared
mountPath: /rmswork
## 컨테이너링커 서비스 메모리 설정
resources:
requests:
memory: 256Mi
limits:
memory: 512Mi
- 고객사 업무시스템과 동일한 POD에서 실행되므로 호출 URL은 항상 "http://127.0.0.1:8181" 사용
- 업무시스템과 파일 공유가 가능한 공유 디렉토리(PVC) 마운트 필요
- Deployment yaml 샘플
apiVersion: apps/v1
kind: Deployment
metadata:
name: cloud-ssevtr-service
namespace: dev
labels:
app: cloud-ssevtr-service-label
# namespace: cloud-ss-svc
spec:
replicas: 1
selector:
matchLabels:
app: cloud-ssevtr-service-label
template:
metadata:
labels:
app: cloud-ssevtr-service-label
spec:
containers:
- name: cloud-ssevtr-service
image: scr.softcamp.co.kr/saas/cloud-ss-evtr-svc:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: cloud-ssevtr-config
volumeMounts:
- name: data-cloud-drm-shared
mountPath: /rmswork
resources:
requests:
memory: 2Gi
limits:
memory: 2Gi
##==========================[컨테이너링커 전용 START]==========================##
- name: cloud-containerlinker-service
image: security365acr.azurecr.io/shieldrm/cloud-containerlinker:latest
imagePullPolicy: Always
ports:
- containerPort: 8181
envFrom:
- configMapRef:
name: cloud-cdf-config
volumeMounts:
- name: data-cloud-drm-shared
mountPath: /rmswork
resources:
requests:
memory: 256Mi
limits:
memory: 512Mi
##==========================[컨테이너링커 전용 END]==========================##
volumes:
- name: data-cloud-drm-shared
persistentVolumeClaim:
claimName: data-cloud-drm-shared
imagePullSecrets:
- name: security365acr
사이드카 컨테이너 접속 및 로그 확인 명령
- 컨테이너링커 pod 접속 : kubectl -n dev exec --stdin --tty cloud-ssevtr-service-754b65cfb-bjzzr -c cloud-containerlinker-service sh
- 컨테이너링커 pod 로그 : kubectl logs -f --tail 10000 -n dev cloud-ssevtr-service-754b65cfb-bjzzr -c cloud-containerlinker-service