티스토리 뷰

728x90

✅ GitOps + HelmChart + k3s = 자동화된 GitOps 운영

GitOps 스타일 운영이란:

"모든 인프라/애플리케이션 설정을 Git에 선언적으로 관리하고, 변경사항이 자동으로 클러스터에 반영되도록 하는 방식"

k3s는 HelmChart CRD를 지원하므로 GitOps 방식에 아주 잘 맞습니다.
즉, HelmChart 리소스를 Git에 저장하고, 이를 k3s에 자동 반영되도록 구성하면 GitOps 스타일 운영이 완성됩니다.


🧩 GitOps 구성 흐름

[ Git 저장소 ]
   │
   │  (HelmChart, HelmChartConfig YAML 파일)
   ▼
[ GitOps Agent ]
 (예: Fleet, ArgoCD, FluxCD)
   │
   ▼
[ k3s 클러스터 ]
 (HelmChart CRD가 자동 적용됨)

✅ 구성 방법 예시: k3s + Fleet 사용

k3s의 공식 GitOps 도구는 Fleet입니다. Rancher가 만든 도구로, 가볍고 빠르며 HelmChart CRD와 잘 연동됩니다.


1. Fleet 설치 (k3s에 내장 가능)

k3s 설치 시 Fleet 자동 설치:

curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable traefik --disable servicelb --disable local-storage --disable metrics-server --disable-cloud-controller --disable-network-policy --disable=helm-controller" sh -

Fleet은 보통 Rancher와 함께 쓰이지만, 독립 실행도 가능하며 아래와 같이 설치할 수도 있습니다:

kubectl apply -f https://github.com/rancher/fleet/releases/latest/download/fleet-crd.yaml
kubectl apply -f https://github.com/rancher/fleet/releases/latest/download/fleet-agent.yaml

2. Git 저장소 준비

Git 저장소 예시 구조:

git-repo/
└── helmcharts/
    └── my-nginx/
        ├── helmchart.yaml
        └── helmchartconfig.yaml

helmchart.yaml 예:

apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: my-nginx
  namespace: kube-system
spec:
  chart: bitnami/nginx
  repo: https://charts.bitnami.com/bitnami
  version: 15.5.2
  targetNamespace: default

3. Fleet GitRepo 리소스 작성

이 리소스를 k3s에 배포하면, Fleet이 Git을 주기적으로 동기화합니다:

apiVersion: fleet.cattle.io/v1alpha1
kind: GitRepo
metadata:
  name: helmchart-demo
  namespace: fleet-default
spec:
  repo: https://github.com/your-org/your-gitops-repo.git
  branch: main
  paths:
    - ./helmcharts/
  targets:
    - clusterSelector:
        matchLabels:
          name: local

이제 Git에 변경 사항을 push하면 → Fleet이 HelmChart CR을 자동 적용 → Helm 차트 설치됨. 🚀


✅ 요약

HelmChart Helm 차트를 선언적으로 정의
Git 저장소 GitOps의 소스 오브 트루스 (truth)
Fleet / ArgoCD / FluxCD Git과 k3s를 연결하는 GitOps 에이전트
k3s HelmChart CR을 감지하고 차트를 자동 배포

 

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함