Vault

Vault HA 및 Metric μˆ˜μ§‘ μ„€μ • - CI/CD μŠ€ν„°λ”” 8μ£Όμ°¨

  • kkumtree

2025-12-07T05:59:10+09:00

CloudNet@μ—μ„œ μ§„ν–‰ν•˜κ³  μžˆλŠ” CI/CD Study 8μ£Όμ°¨μ—λŠ” Vault의 HA(High Availability)에 λŒ€ν•΄ λ‹€λ£¨μ—ˆμŠ΅λ‹ˆλ‹€.

ꡬ성 λ°©λ²•μ˜ 이둠적 뢀뢄은 λ‹¨μˆœν–ˆμœΌλ‚˜, μ˜ˆμƒν•œ ꡬ성 방법과 λ‹¬λΌμ„œ μ œκ°€ λ‚˜μ€‘μ— μ°Έκ³ ν•˜λ €κ³  λΆ€μ—°μ„€λͺ…을 해두렀고 ν•©λ‹ˆλ‹€.

λ”λΆˆμ–΄ λŒ€μ‹œλ³΄λ“œμ—μ„œ Vault κ΄€λ ¨ λ©”νŠΈλ¦­μ„ 보고 μ‹Άμ–΄μ„œ, Datadogκ³Ό μ—°λ™ν•˜μ—¬ κ΄€μΈ‘ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

0. μ‹€μŠ΅ ν™˜κ²½ μ€€λΉ„

ν•΄λ‹Ή ꡬ성듀은 μ•„λž˜ GitHub에 νƒ‘μž¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
https://github.com/kkumtree/ci-cd-cloudnet-study 의 8w 폴더 Helm v4 μΆœμ‹œ ν›„ ν•œ 달도 μ•ˆλœ μ‹œμ μ— μž‘μ„±λ˜μ—ˆκΈ°μ—, v3에 ν˜Έν™˜λ˜λŠ” 차트 버전을 λͺ…μ‹œν•˜μ—¬ λ°°ν¬ν–ˆμŠ΅λ‹ˆλ‹€.

kind 배포와 ingress-nginx, 그리고 vault-worker κΉŒμ§€ λ°°ν¬ν•˜λ©΄, μ•„λž˜μ™€ 같은 ꡬ성도가 λ©λ‹ˆλ‹€.

Vault 101 in Kubernetes - CI/CD μŠ€ν„°λ”” 7μ£Όμ°¨

  • kkumtree

2025-11-30T08:59:34+09:00

CloudNet@μ—μ„œ μ§„ν–‰ν•˜κ³  μžˆλŠ” CI/CD Study 7μ£Όμ°¨μ—λŠ” Vaultλ₯Ό λ‹€λ£¨μ—ˆμŠ΅λ‹ˆλ‹€.

μžμ„Έν•œ μ„€λͺ…은 ν•΄λ‹Ή 곡식 νŽ˜μ΄μ§€μ—μ„œ ν•΄μ£Όκ³  μžˆμ§€λ§Œ, κ·Έμ € 1password 같은 νŒ¨μŠ€μ›Œλ“œ 관리 μ„œλΉ„μŠ€κ°€ μ—”λ“œμœ μ € λŒ€μƒμ΄λΌλ©΄ VaultλŠ” 인프라 κ΄€λ¦¬μž λŒ€μƒμœΌλ‘œ μ‚¬μš©λ˜λŠ” κ²ƒμœΌλ‘œ μ•Œκ³  μžˆλŠ” μ œκ²ŒλŠ” ν₯미둜운 μ£Όμ°¨μ˜€μŠ΅λ‹ˆλ‹€.

이번 μŠ€ν„°λ””μ—μ„œλŠ” κ³„μ†ν•΄μ„œ kind둜 둜컬 Kubernetes(k8s)λ₯Ό ν™œμš©ν–ˆκΈ°μ—, μ΄λ²ˆμ—λ„ λΉ„μŠ·ν•˜κ²Œ λ°°ν¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

0. μ‹€μŠ΅ ν™˜κ²½ μ€€λΉ„ - kind ν΄λŸ¬μŠ€ν„° 배포

ν•΄λ‹Ή ꡬ성듀은 μ•„λž˜ GitHub에 νƒ‘μž¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
https://github.com/kkumtree/ci-cd-cloudnet-study 의 7w 폴더

kind create cluster --name vault --image kindest/node:v1.32.8 --config - <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
  labels:
    ingress-ready: true
  extraPortMappings:
  - containerPort: 80
    hostPort: 30080
EOF


echo "[Provisoning..] ingress-nginx in vault cluster"

kubectl config use-context kind-vault

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml

kubectl wait --namespace ingress-nginx \
  --for=condition=ready pod \
  --selector=app.kubernetes.io/component=controller \
  --timeout=90s

sudo tailscale serve -bg localhost:30080

kubectl apply -f whoami.yaml 

μ΄λ²ˆμ—λŠ” UI κ΄€λ ¨ν•΄μ„œ 80포트 ν•˜λ‚˜λ§Œ λš«μ–΄λ†“κ³  μ‚¬μš©ν•˜κ³  μ‹Άμ—ˆλŠ”λ°, λ­”κ°€ ν•˜λ‚˜μ”© λ§‰νžˆλŠ” μ€‘μž…λ‹ˆλ‹€. κ·Έλž˜μ„œ traefik/whoami 이미지λ₯Ό ν™œμš©ν•˜μ—¬ 디버깅을 ν•˜κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€.

kkumtree

Source code on GitHub

Β© 2025 kkumtree and contributors All rights reserved.
Licensed under
CC BY-NC-ND 4.0