Kubernetes + Helm + Kustomize
Prometheous
로컬 k8s를 운영하는 경우에는 argocd-server 서비스에 설정된 포트를 port-forwarding 해야만 로컬 컴퓨터에서 접근이 가능하다.
public IP를 가진 클러스터나 EKS와 같은 Public Cloud Managed Service를 사용하는 경우에는 NodePort나 LoadBalaner로 서비스를 수정해서 외부에서 접근이 가능하게 해야 한다.
로컬 쿠버네티스를 실습하기 위해 가상머신에 리눅스를 설치하고 클러스터를 구성할 때 Control Plane에는 GUI를 같이 설치하는 것이 좋다.
초기 비밀번호 확인 : kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.passwd}" | base64 -d
비밀번호 :
로컬 k8s에서 Web UI 접근을 위한 포트포워딩
: kubectl port-forward service/argocd-server -n argocd 포트번호:443
kubectl port-forward service/argocd-server -n argocd 포트번호:80
로컬 컴퓨터에서 http://localhost:포트번호로 브라우저에서 접근 가능
서비스 타입 변경 : kubectl edit svc argocd-server -n argocd
mkdir argocd
cd argocd
application.yaml
apiVersion: argoproj.io/v1alpha1
kind: application
metadata:
name: nginx
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
syncPolicy:
automated:
prune: true
selfHeal: true
SyncOptions:
- CreateNamespace=true
destination:
namespace: nginx
server: https://kubernetes.default.svc
project: default
source:
repoURL: https://charts.bitnami.com/bitnami
chart: nginx
targetRevision: 13.2.10
kubectl apply -f application.yaml -n argocdcurl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64chmod +x argocd-linux-amd64sudo mv argocd-linux-amd64 /usr/local/bin/argocdargocd version현재 argocd Web UI에 로그인
argocd login localhost:30080
이전 애플리케이션 삭제 : argocd app delete nginx
nginx 배포 : argocd app crete nginx --repo https://charts.bitnami.com/bitnami --helm-chart nginx --revision 13.2.10 --dest-server https://kubernetes.default.svc
Argo CD를 GitOps 방식으로 설치/운영하기 쉽게 만들어주는 툴
Argo CD는 수동으로 설치하고 Application을 하나하나 정의하지만 Autopilot은 Argo CD 자체 설치하고 애플리케이션 관리 구조를 Git Repository 중심으로 자동화한다.
설치 가이드 : https://argocd-autopilot.readthedocs.io/en/stable/Installation-Guide/
# get the latest version or change to a specific version
VERSION=$(curl --silent "https://api.github.com/repos/argoproj-labs/argocd-autopilot/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
# download and extract the binary
curl -L --output - https://github.com/argoproj-labs/argocd-autopilot/releases/download/"$VERSION"/argocd-autopilot-linux-amd64.tar.gz | tar zx
# move the binary to your $PATH
mv ./argocd-autopilot-* /usr/local/bin/argocd-autopilot
# check the installation
argocd-autopilot version