# deployment/manifests/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: kakao-review-api labels: app: kakao-review-api version: v1 spec: replicas: 1 selector: matchLabels: app: kakao-review-api template: metadata: labels: app: kakao-review-api version: v1 spec: imagePullSecrets: - name: acr-secret containers: - name: api image: acrdigitalgarage03.azurecr.io/kakao-review-api:latest imagePullPolicy: Always ports: - containerPort: 19000 name: http # πŸ”§ ConfigMap ν™˜κ²½ λ³€μˆ˜ envFrom: - configMapRef: name: kakao-review-api-config # πŸ”§ Secret ν™˜κ²½ λ³€μˆ˜ env: - name: EXTERNAL_API_KEY valueFrom: secretKeyRef: name: kakao-review-api-secret key: EXTERNAL_API_KEY - name: DB_USERNAME valueFrom: secretKeyRef: name: kakao-review-api-secret key: DB_USERNAME - name: DB_PASSWORD valueFrom: secretKeyRef: name: kakao-review-api-secret key: DB_PASSWORD - name: JWT_SECRET valueFrom: secretKeyRef: name: kakao-review-api-secret key: JWT_SECRET # πŸ”§ Chrome/ChromeDriver ν™˜κ²½ λ³€μˆ˜ (VMκ³Ό 동일) - name: WDM_LOCAL value: "/tmp/.wdm" - name: WDM_LOG_LEVEL value: "0" - name: CHROME_BIN value: "/usr/bin/google-chrome" - name: CHROMEDRIVER_BIN value: "/usr/local/bin/chromedriver" - name: DISPLAY value: ":99" - name: DBUS_SESSION_BUS_ADDRESS value: "/dev/null" # πŸ”§ λ¦¬μ†ŒμŠ€ μ œν•œ (Chrome 싀행에 μΆ©λΆ„ν•œ λ¦¬μ†ŒμŠ€) resources: requests: memory: "2Gi" cpu: "1000m" limits: memory: "4Gi" cpu: "2000m" # πŸ”§ ν—¬μŠ€ 체크 (νƒ€μž„μ•„μ›ƒ 증가) livenessProbe: httpGet: path: /health port: 19000 initialDelaySeconds: 60 periodSeconds: 30 timeoutSeconds: 15 failureThreshold: 5 readinessProbe: httpGet: path: /health port: 19000 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 10 failureThreshold: 5 # πŸ”§ κ°„μ†Œν™”λœ λ³΄μ•ˆ μ»¨ν…μŠ€νŠΈ (AKS ν˜Έν™˜) securityContext: runAsNonRoot: false runAsUser: 0 allowPrivilegeEscalation: true readOnlyRootFilesystem: false capabilities: add: - SYS_ADMIN drop: [] # πŸ”§ λ³Όλ₯¨ 마운트 (Chrome μ‹€ν–‰ μ΅œμ ν™”) volumeMounts: - name: tmp-volume mountPath: /tmp - name: dev-shm mountPath: /dev/shm # πŸ”§ λ³Όλ₯¨ μ •μ˜ (κ°„μ†Œν™”) volumes: - name: tmp-volume emptyDir: {} - name: dev-shm emptyDir: medium: Memory sizeLimit: 2Gi restartPolicy: Always # πŸ”§ Pod 레벨 λ³΄μ•ˆ μ„€μ • 제거 (AKS ν˜Έν™˜μ„ μœ„ν•΄) # securityContext: 제거