Azure Kubernetes 서비스의 LitmusChaos 2.0 시작

이것은 Azure Kubernetes 서비스에서LitmusChaos 2.0을 사용하는 방법에 대한 빠른 강좌입니다.먼저 AKS 클러스터를 만든 다음 클러스터에 Litmuschoos 2.0을 설치한 다음 Litmuschoos를 사용하여 간단한 사전 정의된 혼돈 워크플로우를 실행합니다.

LitmusChaos 소개


LitmusChaos는 클라우드 네이티브 혼돈 프로젝트를 수행하는 데 사용되는 도구 모음이다.Kubernetes에서 혼란을 조정하는 도구를 제공하여 SRE가 배치의 약점을 발견하도록 도와줍니다.SRE는 리트머스를 사용해 혼돈 실험을 하는데 처음에는 임시 저장 환경에서, 결국은 생산 환경에서 버그와 빈틈, 빈틈을 발견하기 위한 것이다.이런 약점을 복구하면 시스템의 탄력을 높일 수 있다.
Litmus는 클라우드 오리지널 접근 방식을 사용하여 혼란을 만들고 관리하며 모니터링합니다.혼돈은 다음과 같은 Kubernetes 사용자 정의 리소스 정의(CRD)를 사용하여 구성됩니다.
  • ChaosEngine: Kubernetes 응용 프로그램이나 Kubernetes 노드를ChaosExperiment의 자원에 연결합니다.Litmus의 혼돈 산자로 ChaosEngine을 관찰한 후 혼돈 실험을 호출
  • 혼돈 실험: 혼돈 실험의 모드 파라미터를 그룹으로 나누는 자원.ChaosEngine에서 실험을 호출하면 운영자가 ChaosExperiment CR을 생성합니다.
  • 혼돈 결과: 혼돈 실험 결과를 보존하는 자원.혼돈 도출기가 결과를 읽고 설정된 프로메테우스 서버에 도량을 내보냅니다.
  • 자세한 내용은 litmuschaos.io 또는 github.com/litmuschaos/litmus를 참조하십시오.

    선결 조건

  • Azure CLI-How to install on Linux/Debian
  • kubectl-How to install on Linux
  • 설치가 귀찮다면 언제든지 Azure Cloud Shell 을 사용할 수 있습니다. 도구가 설치되어 있습니다.

    AKS 클러스터 생성


    AKS 클러스터에 LitmusChaos를 설치하는 첫 번째 단계는 AKS 클러스터를 갖추는 것이다.그럼 우리 이렇게 하자.Azure Portal를 열고 계정으로 로그인하십시오.기본 화면이 표시됩니다.Kubernetes 서비스를 검색하고 엽니다.
    그룹을 만들려면 메뉴에서 생성 옵션을 누르고 Kubernetes 그룹을 만들기를 선택하십시오
    AKS 클러스터 생성
    현재, 어떤 그룹을 만들 것인지에 대한 상세한 정보를 기입해야 합니다.Azure는 클러스터 관리 비용을 받지 않기 때문에 실행할 노드의 실례에 대한 비용만 지불할 수 있습니다.그룹의 이름을 기입하십시오. 어떤 이름이든, 없으면 새로운 자원 그룹을 만들 수 있습니다. 다른 설정을 그대로 유지하거나, 그 기능을 알고 있으면 필요에 따라 변경할 수 있습니다.노드 풀에 대해 2개의 VCPU와 8개의 GiB RAM이 있는 B2ms 크기를 선택하고 노드 계수를 1로 설정합니다. 왜냐하면 우리는 Litmuschoos만 실행하고 싶기 때문입니다. 이 정도면 충분합니다.구성을 자유롭게 선택할 수 있지만 최소 2개의 vCPU와 8GiB RAM을 유지하면 원활한 실행이 가능합니다.비례법이 수동으로 설정되어 있는지 확인하여 원가를 확인하는 것을 기억하십시오.
    AKS 클러스터 구성
    이제 나머지 설정을 건너뛰고 리뷰 + Create를 누르면 그룹을 만들 수 있습니다.5-10분 정도 걸리니까 앉아서 물 한 잔 마시고 읽기도 하고ChaosEngineeringLitmusChaos 2.0
    AKS 클러스터 배포 중
    클러스터가 준비되었으므로 이제 클러스터에 LitmusChaos를 설치할 수 있습니다.Azure Cloud Shell 또는 로컬 시스템 터미널을 사용하여 클러스터에 연결할 수 있으며 두 단계는 동일합니다.나는 개인적으로 나의 로컬 시스템을 사용하는 것을 더 좋아하기 때문에, 나는 이 강좌에서 그것을 사용할 것이다.

    AKS 클러스터에 연결


    클러스터를 열고 Connect 버튼을 클릭하면 실행할 명령 두 개가 표시됩니다.이 두 명령을 복사하고 하나씩 실행합니다.첫 번째 명령은 구독 id에 따라 계정을 설정하고, 두 번째 명령은 특정 자원에 대한 증거를 가져옵니다.
    AKS 클러스터에 연결

    Litmuschoos 설치


    현재 그룹에 접근할 수 있는 증거가 있습니다. LitmusChaos 2.0을 계속 설치하고 조작할 수 있습니다.설치에 대해 나는 그들의 docs를 따를 것이다.두 가지 설치 방법이 있는데, 하나는 helm을 사용하는 것이고, 다른 하나는 manifest 파일을 응용하는 것이다.나는 helm repo 프로그램을 따를 것이다. 원한다면, 그들의 문서를 보고 다른 프로그램을 따를 수 있다.
    주의: 시스템에 헬멧을 설치해야 합니다.참고할 수 있다here
    우선, LitmusChaos Helm 저장소를 추가한 다음, LitmusChaos가 Helm 저장소에 존재하는지 확인합니다
    helm repo add litmuschaos [https://litmuschaos.github.io/litmus-helm/](https://litmuschaos.github.io/litmus-helm/)
    helm repo list
    
    리트머스를 helm repo에 추가
    다음에 이름 공간을 만들 것입니다. 기본적으로 *litmus*를 이름 공간 이름으로 사용합니다. 선택한 이름을 사용할 수 있습니다. 다음 명령에서 변경하는 것만 기억하십시오.
    kubectl create ns litmus
    
    이제 방금 추가한 helm 저장소를 사용하여LitmusChaos를 설치합시다.
    helm install chaos litmuschaos/litmus-2–0–0-beta --namespace=litmus --devel --set portalScope=namespace
    
    litmus 네임스페이스 만들기 및 LitmusChaos 설치
    주의: helm2를 사용하면 이 명령을 실행해야 합니다
    helm install --name chaos litmuschaos/litmus-2–0–0-beta --namespace=litmus --devel --set portalScope=namespace
    
    마지막 단계는 LitmusChaos CRD 설치
    kubectl apply -f https://raw.githubusercontent.com/litmuschaos/litmus/master/litmus-portal/litmus-portal-crds.yml
    
    LitmusChaos CRD 설치
    모든 서비스가 실행 중이며 문제가 없음을 확인합니다
    LitmusChaos 서비스
    이 서비스들은 정상적으로 실행 중이지만, AKS가 기본적으로 노드에 공공 IP를 제공하지 않기 때문에,litmusportal 프런트엔드 서비스를LoadBalancer 서비스로 변경해야 합니다.너는 편집 서비스를 통해 이 점을 할 수 있다.
    kubectl edit svc litmusportal-frontend-service -n litmus
    
    규범의 맨 끝에 종류가 있습니다: NodePort. 종류로 변경해야 합니다: LoadBalancer
    spec:
     clusterIP: xxxxxxx
     externalTrafficPolicy: Cluster
     ports:
     — name: http
     nodePort: xxxxx
     port: 9091
     protocol: TCP
     targetPort: 8080
     selector:
     app.kubernetes.io/component: litmus-2–0–0-beta-frontend
     sessionAffinity: None
     # Change the type here from NodePort to LoadBalancer
     type: LoadBalancer
    
    그리고 그것을 저장하고 서비스를 다시 보여 줍니다.외부 IP는 pending (마운트) 1분을 표시할 수 있습니다. 1분 후에 이 명령을 다시 실행하여 IP를 가져오십시오.
    LitmusChaos 서비스
    <external-ip>:9091
    
    litmusportal 프런트엔드 서비스의 표시 내용을 변경하고 브라우저의 주소를 방문하십시오.
    LitmusChaos 포털 로그인 페이지
    타다!LitmusChaos 2.0 설치를 완료했으므로 워크플로우를 실행할 수 있습니다.포털에 로그인하면 기본 자격 증명은 다음과 같습니다.
    username: admin
    password: litmus
    
    새 암호를 설정하고 대시보드에 로그인해야 합니다.
    주의: 프런트엔드 서비스를 LoadBalancer로 변경하는 것 외에, 하나의 노드에 공공 IP를 사용해서 NodePort와 함께 작업을 할 수 있습니다.나는 본문에서 그것을 소개한 적이 없지만, 마음대로 보십시오. here

    혼돈 작업 흐름 실행하기


    LitmusChaos 포털 대시보드 페이지
    지금 무슨 혼란이 일어났는지 봅시다.LitmusChaos는 서비스가 설정되어 심각한 파괴를 초래하는 사전 정의된 작업 흐름이 거의 없다.우리는podtato-head 작업 흐름을 실행하여 간단한 배치를 만들고pod-delete 실험을 주입할 것입니다.
    대시보드에서 워크플로우 스케줄링을 선택합니다.워크플로 대시보드에서 자체 에이전트를 선택하고 다음을 클릭합니다.다음 화면에서 미리 정의된 템플릿에서 작업 흐름을 만들고podtatohead를 선택한 다음next를 누르십시오.
    podtato head 템플릿을 기반으로 하는 작업 흐름 계획
    다음 이름을 클릭하고 다음 화면에서 이름 및 기본값을 정의합니다.
    이 화면에서는 실험 목록을 편집하고 작업 흐름에 실험을 추가하거나 삭제하거나 배정해서 작업 흐름을 조정할 수 있습니다.podtato head 템플릿에는 사용자가 정의한 워크플로우가 있으므로 Next를 클릭하면 됩니다.
    워크플로우 조정
    다음 화면은 신뢰성 점수에 대한 실험의 중요성을 조정하는 것입니다. 한 실험만 실행하면 모든 값을 보존할 수 있기 때문입니다. 만약 여러 실험을 실행한다면, 당신의 요구에 따라 모든 실험의 중요성을 설정하여 의미 있는 신뢰성 점수를 얻을 수 있습니다.이제 Next를 클릭하고 Schedule now를 선택하십시오. 만약 실험을 일정한 시간 간격으로 유지하고 싶다면 순환 계획을 만들 수도 있습니다.마지막 화면은 워크플로우를 확인하고 스케줄링하는 것입니다.워크플로우를 실행하려면 Finish 를 클릭합니다.
    워크플로가 작성됨
    예!워크플로우가 만들어지고 실행 중입니다.워크플로로 이동하려면 Go to Workflow를 클릭하면 워크플로우 화면으로 이동할 수 있으며, 여기서는 계획된 모든 워크플로우를 볼 수 있습니다.워크플로우의 상태를 보려면 워크플로우를 클릭합니다.
    워크플로우 대시보드 페이지
    워크플로를 실행하려면 몇 분 정도 소요되며 그 전에 잠시 휴식을 취할 수 있습니다.또한 가입LitmusChaos community on slack하여 최신 버전을 수시로 업데이트하고 커뮤니티에서 도움을 받을 수 있습니다.
    podtatohead 작업 흐름의 작업 흐름 계기판
    워크플로우 실행이 완료되었으므로 그래픽 뷰 또는 테이블 뷰를 사용하여 워크플로우 세부 정보에 액세스할 수 있습니다.
    워크플로우 완료 그래픽 뷰
    워크플로우 완료 테이블 보기
    클릭하여 로그와 결과를 보고 실험의 로그와 결과를 봅니다
    실험기록과 결과
    우리는 완성했다.AKS 클러스터를 생성하여 LitmusChaos 2.0을 설치하고 LitmusChaos 포털에 로그인한 다음 워크플로우를 예약할 수 있습니다.
    당신은 GithubSlack를 통해LitmusChaos 커뮤니티에 가입할 수 있습니다.이 지역사회는 활발하게 활동하며 빠른 해결을 시도하고 있다.
    나는 네가 이 여정을 좋아하고 이 블로그가 매우 재미있다고 생각하기를 바란다.너는 아래의 평론에 너의 의문이나 건의를 남길 수 있다. (고마울 수도 있다.)
    읽어주셔서 감사합니다.
    아카시 슈리바스타바
    Chaosnactive의 소프트웨어 엔지니어와 CSE 대학교 4학년 학생
    | Github | |

    좋은 웹페이지 즐겨찾기