メインコンテンツまでスキップ

2) EKMS 서비스 Deploy

PVC(PersistentVolumeClaim) 생성

테넌트 별 키파일 저장을 위해 신규 구축 시 최초 한 번만 실행

  • cloud-ekms-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cloud-ekms-data
namespace: dev
spec:
storageClassName: dev
volumeMode: Filesystem
accessModes:
- ReadWriteMany
resources:
requests:
storage: 5Gi
  • 고객사 환경에 맞게 변경이 필요한 항목 : namespace, storageClassName

EKMS 서비스 생성

EKMS 서비스 Deploy 파일

  • cloud-ekms-service.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: cloud-ekms-config
namespace: dev
data:
## 필수 설정
# 인증/인가 서비스에 등록된 Master-tenant ID
CUSTOM_AUTH_SERVICE_EXTRA: "uFhoVIZI-wni6zwDS-E6xGXPqT-m2ms8GWh"
# 인증/인가 서비스 master-tenant에 등록된 앱(서비스) ID
CUSTOM_APP_TENANT_ID: "c290ed67-bfbf-49eb-a9af-0c8b29ee2ab5"
# 인증/인가 서비스 master-tenant에 등록된 앱(서비스) secret
CUSTOM_APP_TENANT_SECRET: "KyQmKiMtIyokISQoKSglJyktKSYoISQhJSYjLCsqISM"
# 서비스가 설치된 클러스터의 네임스페이스 이름 설정
CUSTOM_NAMESPACE: dev
## 현재 사용하지 않는 기능(변경 하지 않음)
# ZIPKIN 설정
CUSTOM_ZIPKIN_USE: "false"
CUSTOM_ZIPKIN_BASE_URL: http://127.0.0.1:9411
CUSTOM_APPLICATION_NAME: "EKMS"
CUSTOM_SLEUTH_SAMPLER_PROBABILITY: "0.1"
## 선택 설정(인증인가 및 통합로그 서비스가 다른 클러스터로 구성된 경우)
# EDGE 서버 사용 시 인증인가 URL 정보
# CUSTOM_AUTH_SERVICE_URL: https://devlogin.softcamp.co.kr/
# EDGE 서버 사용 시 통합로그 URL 정보
# CUSTOM_LOG_SERVICE_URL: https://devlog.softcamp.co.kr/
# LOG_LEVEL: debug (기본 설정: info)
# 프로메테우스 앤드포인트 노출 포트 (기본 설정: 9090)
# METRICS_PORT: 9090
# Metric 사용 여부 (기본 설정: true)
# METRICS_ENABLED: true
# Metric 경로에 대한 인증 활성화 (기본 설정: false)
# SECURITY_ACTUATOR_ENABLED: false
---
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"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cloud-ekms-service
namespace: dev
labels:
app: cloud-ekms-service
spec:
replicas: 1
selector:
matchLabels:
app: cloud-ekms-service
template:
metadata:
labels:
app: cloud-ekms-service
spec:
containers:
- name: cloud-ekms-service
image: security365acr.azurecr.io/shieldrm/cloud-ekms:latest
imagePullPolicy: Always
resources:
requests:
memory: 2Gi
limits:
memory: 2Gi
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: cloud-ekms-config
volumeMounts:
- name: cloud-ekms-data
mountPath: /opt/shieldrm/data
- name: nfs-temp-pvc
mountPath: /opt/shieldrm/shw
##==========================[컨테이너링커 전용 START]==========================##
- name: cloud-containerlinker-service
image: security365acr.azurecr.io/shieldrm/cloud-containerlinker:latest
imagePullPolicy: Always
resources:
requests:
memory: 256Mi
limits:
memory: 512Mi
ports:
- containerPort: 8181
envFrom:
- configMapRef:
name: cloud-cdf-config
volumeMounts:
- name: cloud-ekms-data
mountPath: /opt/shieldrm/data
- name: nfs-temp-pvc
mountPath: /opt/shieldrm/shw
##==========================[컨테이너링커 전용 END]==========================##
volumes:
- name: cloud-ekms-data
persistentVolumeClaim:
claimName: cloud-ekms-data
- name: nfs-temp-pvc
persistentVolumeClaim:
claimName: nfs-temp-pvc
imagePullSecrets:
- name: security365acr
---
apiVersion: v1
kind: Service
metadata:
labels:
app: cloud-ekms-service
name: cloud-ekms-service
namespace: dev
spec:
type: ClusterIP
ports:
- name : ekms
port : 80
protocol: TCP
targetPort: 8080
- name : metric
port : 9090
protocol: TCP
targetPort: 9090
selector:
app: cloud-ekms-service
  • 고객사 환경에 맞게 변경이 필요한 항목 : namespace, ConfigMap, image 경로

실행 명령

  • POD 생성 명령 : kubectl apply -f .\cloud-ekms-service.yaml
  • POD 삭제 명령 : kubectl delete -f .\cloud-ekms-service.yaml