AWS의 플럭스(EKS)

K8s의 세계에는 Gitops라는 매우 강력한 유행 주제가 있습니다. Git + Fluxcd 연산자를 사용합니다. 대부분의 사람들은 GitOps가 Github에 속한 것이라고 생각하는데 이는 잘못된 것입니다. CodeCommit과 같이 코드 버전 관리를 위해 git 사용을 제공하는 모든 서비스와 함께 사용할 수 있습니다.



Taken from https://fluxcd.io/docs/



클러스터 생성




eksctl create cb-cluster


AWS CodeCommit용 Flux 설치



Git 리포지토리를 로컬로 복제합니다.

git clone ssh://git-codecommit.<region>.amazonaws.com/v1/repos/<my-cb-repository>
cd my-cb-repository


리포지토리 내에 디렉터리를 만듭니다.

mkdir -p ./clusters/my-cb-cluster/flux-system


Flux CLI를 다운로드하고 다음을 사용하여 매니페스트를 생성합니다.

flux install \
  --export > ./clusters/my-cb-cluster/flux-system/gotk-components.yaml


매니페스트를 커밋하고 마스터 브랜치에 푸시합니다.

git add -A && git commit -m "add flux components" && git push


클러스터에 매니페스트를 적용합니다.

kubectl apply -f ./clusters/my-cb-cluster/flux-system/gotk-components.yaml


컨트롤러가 시작되었는지 확인합니다.

flux check


리포지토리의 SSH 주소(내 권장 사항)를 지정하여 클러스터에 GitRepository 객체를 생성합니다.

flux create source git flux-system \
  --git-implementation=libgit2 \
  --url=ssh://git-codecommit.<region>.amazonaws.com/v1/repos/<my-repository> \
  --branch=<branch> \
  --ssh-key-algorithm=rsa \
  --ssh-rsa-bits=4096 \
  --interval=1m


HTTPS를 통해 Git을 사용하려는 경우 codecommit에 대한 HTTPS 연결을 위한 git 자격 증명을 생성하고 다음 세부 정보를 사용자 이름/암호로 사용합니다.

flux create source git flux-system \
  --git-implementation=libgit2 \
  --url=https://git-codecommit.<region>.amazonaws.com/v1/repos/<my-repository> \
  --branch=main \
  --username=${AWS_IAM_GC_USER} \
  --password=${AWS_IAM_GC_PASS} \
  --interval=1m


클러스터에서 Kustomization 객체를 생성합니다.

flux create kustomization flux-system \
  --source=flux-system \
  --path="./clusters/my-cb-cluster" \
  --prune=true \
  --interval=10m


두 개체를 모두 내보내고 kustomization.yaml을 생성하고 매니페스트를 커밋하고 Git에 푸시합니다.

flux export source git flux-system \
  > ./clusters/my-cb-cluster/flux-system/gotk-sync.yaml

flux export kustomization flux-system \
  >> ./clusters/my-cb-cluster/flux-system/gotk-sync.yaml

cd ./clusters/my-cb-cluster/flux-system && kustomize create --autodetect

git add -A && git commit -m "add sync manifests files" && git push


Flux가 다음을 사용하여 이전 커밋을 받을 때까지 기다립니다.

flux get kustomizations --watch


결론



더 이상 수동 배포가 필요 없으며 Flux에 위임할 수 있습니다. AWS에서 K8을 작업하는 새로운 방식을 시도해 보십시오.

좋은 웹페이지 즐겨찾기