Azure AKS 클러스터 생성
Azure Kubernetes Service (AKS)에서 클러스터를 생성할 수 있습니다. 이 프로세스는 Azure 및 Kubernetes Terraform 제공자를 사용하여 AKS 클러스터를 생성합니다. 그런 다음 GitLab 에이전트를 사용하여 클러스터를 GitLab에 연결합니다.
전제 조건:
단계:
예제 프로젝트 가져오기
IaC(Infrastructure as Code)를 사용하여 GitLab에서 클러스터를 만들려면 클러스터를 관리할 프로젝트를 만들어야 합니다. 이 튜토리얼에서는 샘플 프로젝트를 생성하고 필요에 따라 수정합니다.
다음을 수행하여 프로젝트를 가져옵니다:
- 왼쪽 사이드바에서 맨 위에 있는 새로 만들기 () 및 새 프로젝트/저장소를 선택합니다.
- 프로젝트 가져오기를 선택합니다.
- URL로 저장소 가져오기를 선택합니다.
-
Git 저장소 URL란에
https://gitlab.com/gitlab-org/ci-cd/deploy-stage/environments-group/examples/gitlab-terraform-aks.git
을 입력합니다. - 필드를 완성하고 프로젝트 만들기를 선택합니다.
이 프로젝트는 다음을 제공합니다:
- Azure Kubernetes Service (AKS) 클러스터
- 클러스터에 설치된 GitLab Kubernetes용 에이전트
에이전트 등록
Kubernetes용 GitLab 에이전트를 만들려면 다음을 수행합니다:
- 왼쪽 사이드바에서 운영 > Kubernetes 클러스터를 선택합니다.
- 클러스터 연결(에이전트)를 선택합니다.
-
에이전트 선택 드롭다운 목록에서
aks-agent
를 선택하고 에이전트 등록을 선택합니다. - GitLab은 에이전트 등록을 위한 등록 토큰을 생성합니다. 이 비밀 토큰을 안전하게 저장하십시오. 나중에 필요합니다.
- GitLab은 에이전트 서버(KAS)의 주소도 제공합니다. 이 주소도 나중에 필요합니다.
프로젝트 구성
프로젝트를 구성하려면 CI/CD 환경 변수를 사용합니다.
필수 설정:
- 왼쪽 사이드바에서 설정 > CI/CD를 선택합니다.
- 변수를 확장합니다.
- 변수
ARM_CLIENT_ID
를 Azure 클라이언트 ID로 설정합니다. - 변수
ARM_CLIENT_SECRET
를 Azure 클라이언트 시크릿으로 설정합니다. - 변수
ARM_TENANT_ID
를 서비스 주체로 설정합니다. - 변수
TF_VAR_agent_token
을 이전 작업에서 표시된 에이전트 토큰으로 설정합니다. - 변수
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에서:
- 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
- 실행 () 옆에 있는 드롭다운 목록 아이콘 ()을 선택합니다.
- 수동으로 배포 작업을 트리거하려면 배포를 선택합니다.
파이프라인이 성공적으로 완료되면 다음을 수행할 수 있습니다:
- Azure에서: Azure 포털에서 Kubernetes 서비스 > 보기를 선택합니다.
- GitLab에서: 왼쪽 사이드바에서 운영 > Kubernetes 클러스터를 선택하십시오.
클러스터 사용
클러스터를 프로비저닝한 후 GitLab에 연결되어 배포할 준비가 되었습니다. 연결을 확인하려면:
- 왼쪽 사이드바에서 운영 > Kubernetes 클러스터를 선택하십시오.
- 목록에서 연결 상태 열을 확인하십시오.
연결 기능에 대한 자세한 내용은 Kubernetes용 GitLab 에이전트 문서를 참조하십시오.
클러스터 제거
기본적으로 파이프라인에는 정리 작업이 포함되어있지 않습니다. 만든 모든 리소스를 제거하려면 정리 작업을 실행하기 전에 GitLab CI/CD 템플릿을 수정해야 합니다.
모든 리소스를 제거하려면:
-
.gitlab-ci.yml
파일에 다음을 추가합니다:stages: - init - validate - test - build - deploy - cleanup destroy: extends: .terraform:destroy needs: []
- 왼쪽 사이드바에서 빌드 > 파이프라인을 선택한 후 가장 최근의 파이프라인을 선택합니다.
-
destroy
작업에서 실행 ()을 선택합니다.