Litmuschoos GitLab 원격 템플릿
18187 단어 gitlablitmuschaoskubernetesdocker
선행 조건:
GitLab 원격 템플릿 소개
GitLab는 현재 DevOps 생명주기 도구로 현재 DevOps 세계에서 파이프 기능을 연속적으로 통합하고 배치하는 것으로 유명하다. 이런 기능은 YAML 파일로 구성된 것이다.gitlab ci.항목마다yml.
.gitlab-ci.yaml
구조를 정의하고 GitLab Runner를 사용하여 수행할 작업을 결정합니다.그것은 특정한 상황에 직면했을 때 취해야 할 결정과 관련된다.예를 들어 프로세스가 통과되거나 실패할 때.GitLab에서 키워드는 외부 yaml 파일을 포함하고 있으며, 이를 템플릿이라고 합니다.템플릿 사용의 이점:
다양한 유형의 템플릿
GitLab에 템플릿을 추가하는 것은 매우 간단한 작업입니다.외부 YAML 파일에 확장자
include
또는 include
가 필요하지 않으면 외부 파일을 포함하지 않는 키워드 .yml
만 추가하면 됩니다.다음과 같은 메서드를 지원합니다.로컬: 로컬 프로젝트 저장소에서 온 파일을 포함하고 루트 디렉터리의 전체 경로를 참조합니다.
우리는 그것을 이렇게 사용할 수 있다.
include:
- local: '/templates/.gitlab-chaos-template.yml'
파일: 파일과 include를 사용하여 같은 GitLab 실례에 다른 개인 프로젝트에서 온 파일을 포함할 수 있습니다.다음과 같이 추가할 수 있습니다.
include:
- project: 'mayadata-io/gitlab-remote-template'
file: '/templates/pod-delete-template.yml'
템플릿: 사전 구성된 GitLab 템플릿을 포함하는 데 사용됩니다.다음과 같이 사용할 수 있습니다.
# File sourced from GitLab's template collection
include:
- template: Auto-DevOps.gitlab-ci.yml
원격: HTTP/HTTPS를 사용하여 전체 URL을 참조하여 다양한 위치에서 파일을 포함할 수 있습니다.이로 인해 원격 템플릿은 모든 사람들에게 매우 유행하고 많은 프로젝트에서 광범위하게 사용된다.원격 파일은 원격 URL의 인증 모드가 지원되지 않으므로 간단한 GET 요청을 통해 액세스해야 합니다.응용 프로그램에서 혼돈을 일으키는 그림에 LitmusChaos Remote Templates 가져옵니다.yaml 템플릿은github 저장소에 저장되어 외부 템플릿으로 사용할 수 있습니다.
include:
- remote: 'https://raw.githubusercontent.com/mayadata-io/gitlab-remote-templates/master/templates/pod-delete-template.yml'
CI 워크플로우에서 LitmusChaos 원격 템플릿 설정
CI 파이프의 일부로 리트머스 실험을 사용하고 GitLab을 CI 플랫폼으로 사용하고 싶다면 올바른 위치에 있습니다.Litmuschoos는 GitLab 원격 템플릿을 도입하여 CI 워크플로우에 혼돈 실험을 통합합니다.이것은 프로필을 관리하고 응용 프로그램에 대한 혼돈 테스트를 실행하는 간단한 방법을 제공하는 데 도움이 됩니다.CI 워크플로우에서 간단한 절차에 따라 GitLab 원격 템플릿을 설정해야 합니다.
1. 클러스터 설정: 시작하기 전에 CI 워크플로우에kubernetes 클러스터를 설치해야 합니다. 이것은 선결 조건과 같습니다.만약 우리가 GKE나 AWS와 같은 구름 덩어리가 없다면, 예를 들어 KinD 덩어리를 만들 수 있다.
2. 응용 프로그램 배치: 일단 우리가 집단을 구축하면 우리는 응용 프로그램이 필요하다. 우리는 그 위에서 혼돈 테스트를 실행해야 한다.만약pod에서 프로그램을 실행하지 않았다면, 걱정하지 마세요. 이 두 가지 간단한 절차를 통해 설정할 수 있습니다.
i. 응용 프로그램 이미지 만들기: 응용 프로그램에 Dockerize를 해야 합니다. 이를 위해서는 응용 프로그램 이미지를 만드는 데 사용할 Dockerfile이 필요합니다.루트 위치
.yaml
에 Dockerfile이 있다고 가정합니다.그래서 우리는 그것으로 이미지를 구축할 것이다.2.응용 프로그램 용기를 사용하여pod를 실행합니다. 현재 Docker 등록표에 응용 프로그램 이미지가 있습니다.우리는 이 이미지를 사용하여 응용 프로그램의 선실을 배치할 수 있다.예시pod 목록을 참고할 수 있습니다. 이 목록은 here 에서 응용 프로그램pod를 만들고nginx 이미지를 이미지와 다른 속성으로 바꿀 수 있습니다.현재pod 목록을 적용하고 실행 상태에 들어갈 때까지 기다립니다.
kubectl apply -f app.yaml
3. 혼돈 템플릿 선택: 현재 혼돈 템플릿repository에서 사용할 수 있는 템플릿 목록에서 혼돈 템플릿을 선택합니다.실행할 실험에 따라 템플릿의 원본 링크를 가져옵니다.모든 실험을 실행하기 전에 리트머스를 설치해야 합니다. 같은 목록의 install litmus 템플릿으로 완성할 수 있습니다.혼돈 템플릿은 다음과 같습니다.---
variables:
APP_NS: default
APP_KIND: deployment
APP_LABEL: APPLICATION_LABEL
TARGET_CONTAINER: TARGET_CONTAINER_NAME
TOTAL_CHAOS_DURATION: "30"
CHAOS_INTERVAL: "10"
FORCE: "false"
EXPERIMENT_IMAGE: litmuschaos/go-runner
EXPERIMENT_IMAGE_TAG: 1.7.0
.pod_delete_template:
image:
name: mayadata-io/chaos-ci-lib:ci
entrypoint: ["./pod-delete"]
script:
- echo "Running Pod Delete Experiment"
원시 링크를 가져오려면 raw 단추를 누르십시오.원본 링크 복사
4. 템플릿을 추가합니다.gitlabciyml:gitlab 프로필에 혼돈 템플릿을 추가해야 합니다.
/build
키워드가 있는 원격 템플릿 URL을 추가해야 합니다.include:
- remote: 'https://raw.githubusercontent.com/mayadata-io/gitlab-remote-templates/master/templates/node-cpu-hog-template.yml'
stages:
- chaosInject
Inject Node CPU Hog:
stage: chaosInject
extends: .node_cpu_hog_template
before_script:
variables:
APP_NS: default
APP_LABEL: "run=nginx"
APP_KIND: deployment
TARGET_CONTAINER: nginx
include
단계 3에서 복사한 링크를 사용합니다.5. 혼돈 실험 추가: 일단 우리가 혼돈 인프라 시설의 설정을 완성하면 우리는 혼돈 실험을 추가할 수 있다. 우리는 유사한 방식으로 우리의 응용 프로그램에 혼돈 실험을 도입하기를 희망한다. 예를 들어 아래의 코드에poddelete 혼돈을 추가했다.
.gitlab ci.yml 회사
include:
- remote: 'https://raw.githubusercontent.com/mayadata-io/gitlab-remote-templates/master/templates/install-litmus-template.yml'
- remote: 'https://raw.githubusercontent.com/mayadata-io/gitlab-remote-templates/master/templates/node-cpu-hog-template.yml'
- remote: 'https://raw.githubusercontent.com/mayadata-io/gitlab-remote-templates/master/templates/uninstall-litmus-template.yml'
stages:
- appDeploy
- chaosInfraSetup
- chaosInject
- chaosInfraCleanup
Deploy to Staging:
stage: appDeploy
script:
- kubectl run nginx --image=nginx --restart=Always
Install LitmusChaos:
stage: chaosInfraSetup
extends: .install_litmus_template
before_script:
variables:
APP_NS: default
EXPERIMENT_IMAGE: litmuschaos/go-runner
EXPERIMENT_IMAGE_TAG: 1.7.0
Inject Node CPU Hog:
stage: chaosInject
extends: .node_cpu_hog_template
before_script:
variables:
APP_NS: default
APP_LABEL: "run=nginx"
APP_KIND: deployment
TARGET_CONTAINER: nginx
UnInstall LitmusChaos:
stage: chaosInfraCleanup
extends: .uninstall_litmus_template
before_script:
variables:
APP_NS: default
EXPERIMENT_IMAGE: litmuschaos/go-runner
EXPERIMENT_IMAGE_TAG: 1.7.0
6. 트리거 파이프: 설치가 완료되면 우리는 파이프를 트리거하고 파이프의 각 단계에서 결과를 얻을 수 있다.마찬가지로 GitLab CI에 혼돈 실험을 추가하고 수행할 수 있습니다.결론
GitLab 원격 템플릿을 사용하면 Litmuschoos 실험과 GitLab을 쉽게 통합할 수 있어 CI 워크플로우의 응용 프로그램에 혼돈 테스트를 수행할 수 있습니다.우리는 GitLab의
include:remote
특성을 이용하여 litmuschaos 원격 템플릿에서 desired 템플릿을 선택하기만 하면 된다.그렇다면 CI 워크플로우에서의 혼란에 대해 어떻게 생각합니까?만약 네가 이 점에 찬성한다면, 그것은 도움이 될 것 같니?DevOps 전문가의 의견과 조언을 환영합니다!당신은 SRE입니까, 아니면 Kubernetes 애호가입니까?혼돈 공사가 당신을 흥분시켰습니까?
우리 Slack 커뮤니티에 가입하여 Kubernetes의 혼돈 프로젝트에 대해 상세한 토론, 피드백 및 정기적인 업데이트를 진행합니다: https://kubernetes.slack.com/messages/CNXNB0ZTN
(#Kubernetes 작업공간의 리트머스 채널)
Litmus Chaos GitHub 리셋 보기 및 피드백 공유: https://github.com/litmuschaos/litmus
필요한 변경 사항이 확인되면 요청을 제출하십시오.
Litmuschoos 회사 / 리트머스
Litmus는 SRE와 개발자가 클라우드 네이티브 방식으로 혼돈 프로젝트를 실천하도록 도와줍니다.혼돈 실험은 《조서》에 발표되었다 (https://hub.litmuschaos.io). 커뮤니티 노트https://hackmd.io/a4Zu_sH4TZGeih-xCimi3Q
리트머스
개원 혼돈 공사 플랫폼
다른 언어로 읽다.
🇰🇷 🇨🇳 🇧🇷 🇮🇳
개요
Litmuschoos는 혼돈의 프로젝트 플랫폼을 개척하여 팀을 통과할 수 있도록 한다
통제받는 방식으로 혼돈 테스트를 유도하다.개발자와 SRE는 Litmus를 사용하여 혼돈 프로젝트를 실천할 수 있다. 왜냐하면 사용하기 쉽고 현대를 바탕으로 하기 때문이다.
혼돈 공사 원리와 지역사회 협력.이것은 100% 개원한 CNCF 프로젝트다.
Litmus는 클라우드 네이티브 방법으로 혼란을 생성, 관리, 모니터링합니다.플랫폼 자체가 하나의 마이크로서비스로 실행되고 Kubernetes를 사용한다
사용자 정의 자원으로 혼돈의 의도와 안정적인 가설을 정의합니다.
높은 수준에서 리트머스는 다음과 같다.
혼돈 제어 평면: 혼돈 중심이라고 불리는 집중식 혼돈 관리 도구로 구축, 스케줄링과 시각화 리트머스 혼돈 작업 흐름
혼돈 집행 비행기 서비스: 혼돈으로 구성...
Reference
이 문제에 관하여(Litmuschoos GitLab 원격 템플릿), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/uditgaurav/litmuschaos-gitlab-remote-templates-6l2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)