Azure AKS 클러스터 생성

Azure Kubernetes Service (AKS)에서 클러스터를 생성할 수 있습니다. 이 프로세스는 Azure 및 Kubernetes Terraform 제공자를 사용하여 AKS 클러스터를 생성합니다. 클러스터를 GitLab에 연결하려면 Kubernetes용 GitLab 에이전트를 사용합니다.

필수 조건:

  • Microsoft Azure 계정 및 구성된 일련의 보안 자격 증명이 있는 Azure 계정
  • GitLab CI/CD 파이프라인을 실행할 수 있는 런너

단계:

  1. 예제 프로젝트 가져오기.
  2. Kubernetes를 위한 에이전트 등록.
  3. 프로젝트 구성.
  4. 클러스터 프로비저닝.

예제 프로젝트 가져오기

Infrastructure as Code를 사용하여 GitLab에서 클러스터를 생성하려면 클러스터를 관리할 프로젝트를 만들어야 합니다. 이 튜토리얼에서는 샘플 프로젝트로 시작하여 필요에 맞게 수정합니다.

URL로 예제 프로젝트 가져오기를 시작하세요.

프로젝트를 가져오려면:

  1. 좌측 사이드바 상단에서 Create new () 및 New project/repository를 선택합니다.
  2. Import project를 선택합니다.
  3. 저장소 URL 가져오기를 선택합니다.
  4. Git 저장소 URL란에 https://gitlab.com/gitlab-org/ci-cd/deploy-stage/environments-group/examples/gitlab-terraform-aks.git을 입력합니다.
  5. 필드를 작성하고 프로젝트 생성을 선택합니다.

이 프로젝트는 다음을 제공합니다:

에이전트 등록

Kubernetes용 GitLab 에이전트를 생성하려면:

  1. 좌측 사이드바에서 운영 > Kubernetes 클러스터를 선택합니다.
  2. 클러스터 연결 (에이전트)를 선택합니다.
  3. 에이전트 선택 드롭다운에서 aks-agent를 선택하고 에이전트 등록을 선택합니다.
  4. GitLab이 에이전트를 위한 등록 토큰을 생성합니다. 이 비밀 토큰을 안전하게 저장해야 하며 나중에 필요합니다.
  5. GitLab이 에이전트 서버 (KAS)에 대한 주소를 제공하며 이 역시 나중에 필요합니다.

프로젝트 구성

프로젝트를 구성하려면 CI/CD 환경 변수를 사용하세요.

필수 구성:

  1. 좌측 사이드바에서 설정 > CI/CD를 선택합니다.
  2. 변수를 확장합니다.
  3. 변수 ARM_CLIENT_ID를 Azure 클라이언트 ID로 설정합니다.
  4. 변수 ARM_CLIENT_SECRET를 Azure 클라이언트 시크릿으로 설정합니다.
  5. 변수 ARM_TENANT_ID를 서비스 프린시털로 설정합니다.
  6. 이전 작업에서 표시된 에이전트 토큰을 가진 변수 TF_VAR_agent_token를 설정합니다.
  7. 이전 작업에서 표시된 에이전트 서버 주소를 가진 변수 TF_VAR_kas_address를 설정합니다.

선택적 구성:

파일 variables.tf에는 필요에 따라 재정의할 수 있는 다른 변수가 포함되어 있습니다:

  • TF_VAR_location: 클러스터의 지역을 설정합니다.
  • TF_VAR_cluster_name: 클러스터의 이름을 설정합니다.
  • TF_VAR_kubernetes_version: Kubernetes 버전을 설정합니다.
  • TF_VAR_create_resource_group: 새 리소스 그룹의 생성을 활성화 또는 비활성화합니다. (기본값은 true)
  • TF_VAR_resource_group_name: 리소스 그룹의 이름을 설정합니다.
  • TF_VAR_agent_namespace: GitLab 에이전트의 Kubernetes 네임스페이스를 설정합니다.

추가 리소스 옵션에 대한 자세한 내용은 Azure Terraform 제공자Kubernetes Terraform 제공자 문서를 참조하세요.

클러스터 프로비저닝

프로젝트를 구성한 후 클러스터 프로비저닝을 수동으로 트리거하세요. GitLab에서:

  1. 좌측 사이드바에서 빌드 > 파이프라인을 선택합니다.
  2. Play () 옆에 있는 드롭다운 아이콘 ()을 선택합니다.
  3. 배포 작업을 수동으로 트리거하기 위해 Deploy를 선택합니다.

파이프라인이 성공적으로 완료되면 새 클러스터를 볼 수 있습니다:

  • Azure에서: Azure portal에서 Kubernetes services > View를 선택합니다.
  • GitLab에서: 좌측 사이드바에서 운영 > Kubernetes 클러스터를 선택합니다.

클러스터 사용하기

클러스터를 프로비저닝한 후에는 GitLab에 연결되어 배포 준비가 된 상태입니다. 연결 상태를 확인하려면:

  1. 왼쪽 사이드바에서 운영 > 쿠버네티스 클러스터를 선택합니다.
  2. 목록에서 연결 상태 열을 확인합니다.

연결의 기능에 대한 자세한 정보는 쿠버네티스용 GitLab 에이전트 설명서를 참조하세요.

클러스터 제거하기

클린업 작업은 기본적으로 파이프라인에 포함되어 있지 않습니다. 생성된 모든 리소스를 제거하려면 클린업 작업을 실행하기 전에 GitLab CI/CD 템플릿을 수정해아 합니다.

모든 리소스를 제거하려면:

  1. 다음을 .gitlab-ci.yml 파일에 추가합니다:

    stages:
      - init
      - validate
      - test
      - build
      - deploy
      - cleanup
    
    destroy:
      extends: .terraform:destroy
      needs: []
    
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택하고 가장 최근의 파이프라인을 선택합니다.
  3. destroy 작업에서 실행 ()을 선택합니다.