InfoGrab Docs

Kubernetes 통합 테스트

GitLab Runner의 Kubernetes 통합 테스트 인프라, 파이프라인 구조, 테스트 실행 방법 및 트러블슈팅 가이드를 설명합니다.

Kubernetes 통합 테스트는 GitLab Runner의 CI/CD 파이프라인에서 실행됩니다. 이 테스트는 GitLab Runner가 Kubernetes 클러스터와 올바르게 작동하는지 검증합니다. 테스트는 runner-Kubernetes-infra 리포지터리에서 관리하는 전용 Kubernetes 클러스터에서 실행됩니다. 테스트 인프라 # Runner Kubernetes 인프라 리포지터리 # 테스트 인프라는 다음에 호스팅됩니다: 리포지터리: https://gitlab.com/gitlab-org/ci-cd/runner-tools/runner-kubernetes-infra 목적: GitLab Runner 통합 테스트를 위한 전용 Kubernetes 클러스터 관리 클러스터: GCP의 runner-k8s (프로젝트 세부 정보와 영역에 대해서는 내부 문서 참고) 인프라는 다운타임 없는 업데이트를 위해 두 개의 별도 클러스터로 구성된 블루-그린 배포 모델을 사용합니다. 클러스터 구성 # 노드 풀, 리소스 제한, 오토스케일링 설정을 포함한 자세한 클러스터 구성은 인프라 리포지터리의 클러스터 구성 섹션을 참고하세요. 파이프라인 구조 # 테스트 파이프라인 스테이지 # 통합 테스트는 다음 GitLab CI/CD 스테이지를 통해 실행됩니다: 통합 Kubernetes 프로비저닝 ( provision integration kubernetes ): 테스트 전용 RBAC 리소스 프로비저닝 서비스 어카운트 k8s-runner-integration-tests-runner-$CI_PIPELINE_ID 생성 mage k8s:provisionIntegrationKubernetes $CI_PIPELINE_ID 실행 통합 테스트 작업 (병렬 실행): integration kubernetes : 표준 통합 테스트 integration kubernetes exec legacy : 레거시 실행 전략 테스트 integration kubernetes attach : attach 실행 전략 테스트 정리 ( destroy integration kubernetes ): 테스트 전용 리소스 삭제 mage k8s:destroyIntegrationKubernetes $CI_PIPELINE_ID 실행 파이프라인 구성 # 파이프라인은 .gitlab/ci/test-kubernetes-integration.gitlab-ci.yml 에 정의되어 있습니다: .integration kubernetes: extends: - .rules:merge_request_pipelines:no_docs:no-community-mr tags: - $KUBERNETES_RUNNER_INTEGRATION_TAG stage: test kubernetes integration variables: KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: "k8s-runner-integration-tests-runner-$CI_PIPELINE_ID" 테스트 실행 # 통합 테스트는 gotestsum 을 사용하여 실행됩니다