Operations

운영 작업은 render 확인, Argo CD 상태 확인, Kubernetes rollout 확인 순서로 진행합니다.

문제가 생겼을 때는 먼저 Git에 선언된 상태가 맞는지 확인하고, 그 다음 Argo CD가 그 상태를 sync했는지, 마지막으로 Kubernetes workload가 정상인지 확인합니다.

1. Render Checks

로컬에서 Kustomize output을 먼저 확인합니다.

kubectl kustomize clusters/dev/k3s/apps
kubectl kustomize clusters/dev/k3s/applications
kubectl kustomize clusters/stg/k3s/apps
kubectl kustomize clusters/stg/k3s/applications

Client-side dry-run으로 Kubernetes schema 수준의 오류를 더 확인할 수 있습니다.

kubectl kustomize clusters/dev/k3s/apps | kubectl apply --dry-run=client -f -

2. Argo CD Checks

Argo CD Application이 원하는 revision을 보고 있는지 확인합니다.

argocd app get tirosh-guide-dev --grpc-web
argocd app get tirosh-guide-stg --grpc-web

필요하면 수동 sync를 실행합니다.

argocd app sync tirosh-guide-dev --grpc-web

3. Kubernetes Checks

Workload 상태는 namespace 기준으로 확인합니다.

kubectl -n tirosh-guide-dev get deploy,pod,svc,ingress
kubectl -n tirosh-guide-stg get deploy,pod,svc,ingress

Image pull 실패는 describe pod 이벤트를 먼저 확인합니다.

kubectl -n tirosh-guide-dev describe pod <pod-name>

4. Docs Endpoint Checks

Docs portal은 아래 path를 확인합니다.

curl -I https://docs.dev-guide.internal.tirosh.ai/
curl -I https://docs.dev-guide.internal.tirosh.ai/source-repo/
curl -I https://docs.dev-guide.internal.tirosh.ai/cd-repo/

세 endpoint가 모두 200을 반환해야 docs image와 ingress가 정상입니다.