Azure/k3s 보안 환경에서 ArgoCD를 사용하여 여러 클러스터를 관리하고 Traefik & 암호화

Azure에서 ArgoCD를 손쉽게 배포하여 GitOps 방식으로 여러 클러스터를 관리할 수 있습니다.
코드 위치 https://github.com/ams0/argocd-azure-k3s-traefik
나는 ArgoCD여러 번 (최근 내가 Fullstaq에 있는 친구에게here) 들은 적이 있지만, 지금까지 나는 돌아와서 그것을 방해하지 않았다.만약 당신이 모른다면, ArgoCD는 성명식으로 Kubernetes 응용 프로그램을 연속적으로 배치하는 플랫폼으로, 여러 집단에 응용 프로그램을 대규모로 배치하고 관리하는 것이 매우 유행하는 선택이 되고 있다.
나는 그것을 집단에 배치하고 싶기 때문에, 나의 계획은 집단 외에 ArgoCD 실례가 하나 있는데, 집단의 생명주기에 독립하여 그것들을 관리할 수 있다.그래서 저는 이런 방법을 설계하여 ArgoCD를 azure의 VM에 배치하고 Rancher Labsincubated CNCF project의 Kubernetes 경량급 발행판(사용k3s을 실행하며 k3d helper tool을 통해 공개하고 Let's Encrypt 인증서를 사용하여 보호합니다.시작합시다!
먼저 클론Traefik ingress controller을 생성하고 다음을 입력합니다.
git clone [*https://github.com/ams0/argocd-azure-k3s-traefik](https://github.com/ams0/argocd-azure-k3s-traefik)
cd argocd-azure-k3s-traefik*
현재 몇 가지 선결 조건이 있다.
  • Azure CLI
  • Azure 구독(로그인)
  • kubectl과 jq
  • 가 설치되어 있음
    Kubernetes API 및 80/443에 액세스하여 애플리케이션을 공개하기 위한 추가 포트를 열어 인프라를 구축합니다.
    ./deploy.sh <rg> <dns_name> <location> <size>
    
    dns_ 이름은 선택한 영역에서 유일해야 합니다.몇 분 후에 k3s 집단의 프로필 (한 VM, 두 개의 가상 노드가 docker 용기로 있음) 을 가지고 있을 것입니다.
    k3s 내장 Traefik 입구의 설치를 건너뛰었음을 알 수 있습니다.이것은 여전히 1.7가지를 포함하고 있기 때문에, 나는 비교적 새로운 2를 사용하고 싶다.IngressRoute CRD의 x지점을 도입합니다repo .이제 이 issue 를 사용하여 traefik을 설치합니다. (Let'sEncrypt 인증서 발급 기관에 이메일을 보내야 합니다.)
    ./install-traefik <email>
    
    마지막으로 선택한 암호와 동일한 dns\u 이름/영역을 통해 ArgoCD를 설치합니다.
    ./install-argo.sh <dns_name> <region> <password>
    
    그렇습니다!이 스크립트는 http에서 실행될 수 있도록 아르고cd 서버를 수정합니다. (SSL은 Traefik에서 종료됨) 암호의 bcrypt 인코딩 버전을 사용하여 암호를 수정합니다.script*로 이동하여 ArgoCD에 로그인합니다.*https://dns_name.region.cloudapp.azure.com를 사용하여 로그인할 수도 있습니다.
    argocd login --username admin \
    --password Password \
    dns_name.region.cloudapp.azure.com
    
    마지막으로, argo가 관리하는 그룹을 하나 이상 추가할 수 있습니다. (예를 들어 azure cli로 검색하는 경우)
    az aks get-credentials -g rg -n *cluster_name* -f kubeconfig
    argocd cluster add --kubeconfig  ./kubeconfig manageme
    
    위의 명령줄의 마지막 옵션은kubeconfig 설정의 상하문과 일치해야 합니다.
    이제 응용 프로그램을 배치합시다!
    저는 download the CLI 프로젝트의 충실한 팬입니다. ArgoCD에 사용하고 싶습니다.간단히 말해, 컨트롤러는 그룹에서 HelmRelease* 클래스 객체(Helm 버전을 의미)를 생성하고, 이러한 Helm 버전의 라이프 사이클(생성/업데이트/제거)을 프로그래밍으로 관리할 수 있습니다.따라서 내 저장소의 * 목록/폴더에서helm 컨트롤러를 배치하는 템플릿을 찾을 수 있습니다. 이 컨트롤러는 같은 폴더에 있는helm 버전을 배치합니다.
    이 글의 맨 위에 있는 저장소를 가리키고 Argo UI로 이동해서 새 프로그램을 만듭니다. (취향에 따라 호출하고 기본 항목을 선택하십시오.) 가리키는 가리키기와 목록/경로입니다.
    Helm-controller
    중요한 것은 디렉터리 귀속이 활성화되어 있는지 확인하는 것이다.또한 Argo/k3s 클러스터에서 동일한 결과를 실현하기 위해 "Application"유형의 객체를 만들 수 있습니다.
    이 프로그램은 즉시 동기화를 시작합니다. 먼저 Helm 조작자를 설치하고nginx 입구 컨트롤러를 설치하면 창설 중인 자원 트리를 볼 수 있습니다.

    그렇습니다!현재githubrepo에 대한 모든 변경 사항이 그룹에 반영됩니다.
    어쨌든, 이 작품은 준비되었느냐고 물어볼 수도 있다.절대 아닙니다. 저는 여전히 배치의 몇 가지 측면(예를 들어 Argo의 AAD 인증, 그리고 데이터의 지속성)을 개선하고 싶습니다.그러나 이것은 Azure에서 ArgoCD의 빠른 시작입니다. 이것은 제가 미래에 더 많은 정보를 이해하는 데 도움을 줄 것입니다.너도 좋아했으면 좋겠어!
    최초 출판

    좋은 웹페이지 즐겨찾기