GitLab 관리 클러스터(사용 중지)
certificate_based_clusters
이름의 피처 플래그를 활성화할 수 있습니다.GitLab이 클러스터를 관리하도록 선택할 수 있습니다. GitLab에서 클러스터를 관리하는 경우 프로젝트 리소스가 자동으로 생성됩니다. 생성된 리소스에 대한 자세한 내용은 접근 제어 섹션을 참조하세요.
자체 클러스터를 관리하려는 경우 프로젝트별 리소스가 자동으로 생성되지 않습니다. Auto DevOps를 사용하는 경우 배포 작업에서 KUBE_NAMESPACE
배포 변수를 명시적으로 제공해야 합니다. 그렇지 않으면 자동으로 네임스페이스가 생성됩니다.
클러스터 캐시 지우기
GitLab이 클러스터를 관리하도록 허용하면 GitLab은 프로젝트용으로 생성한 네임스페이스와 서비스 어카운트의 캐시를 저장합니다. 이러한 리소스를 클러스터에서 매뉴얼으로 수정하면 이 캐시가 클러스터와 동기화되지 않을 수 있습니다. 이는 배포 작업에 실패할 수 있습니다.
캐시를 지우려면:
- 프로젝트의 운영 > 쿠버네티스 클러스터 페이지로 이동하고 클러스터를 선택합니다.
- 고급 설정 섹션을 확장합니다.
- 클러스터 캐시 지우기를 선택합니다.
베이스 도메인
기본 도메인을 지정하면 KUBE_INGRESS_BASE_DOMAIN
이 자동으로 배포 변수로 설정됩니다.
Auto DevOps를 사용하는 경우이 도메인은 각 단계에 사용됩니다. 예를 들어 자동 리뷰 앱 및 자동 배포에 사용됩니다.
도메인은 와일드카드 DNS가 Ingress IP 주소로 구성되어 있어야 합니다. 다음 중에서 선택할 수 있습니다:
- 도메인 제공업체에서 Ingress IP 주소를 가리키는
A
레코드를 생성합니다. -
nip.io
또는xip.io
와 같은 서비스를 사용하여 와일드카드 DNS 주소를 입력합니다. 예를 들어,192.168.1.1.xip.io
.
외부 Ingress IP 주소 또는 외부 Ingress 호스트 이름을 결정하려면:
-
클러스터가 GKE에 있는 경우:
- Google Kubernetes Engine 링크를 선택하거나 Google Kubernetes Engine 대시보드로 바로 이동합니다.
- 적절한 프로젝트 및 클러스터를 선택합니다.
- 연결을 선택합니다.
- 로컬 터미널에서 또는 Cloud Shell을 사용하여
gcloud
명령을 실행합니다.
-
클러스터가 GKE에 없는 경우: 해당하는 Kubernetes 공급업체에 대한 명령을 실행하여
kubectl
을 구성합니다. 다음 예제의 출력은 클러스터의 외부 엔드포인트를 보여줍니다. 이 정보는 이후 배포된 애플리케이션에 대한 외부 액세스를 허용하는 DNS 항목 및 포워딩 규칙을 설정하는 데 사용할 수 있습니다.
Ingress에 따라 외부 IP 주소를 여러 가지 방법으로 검색할 수 있습니다. 이 디렉터리은 일반적인 솔루션과 몇 가지 GitLab 특정 방법을 제공합니다:
-
일반적으로 로드 밸런서의 모든 IP 주소를 나열할 수 있습니다. 다음 명령을 실행하여 모든 네임스페이스의 IP 주소를 나열할 수 있습니다:
kubectl get svc --all-namespaces -o jsonpath='{range.items[?(@.status.loadBalancer.ingress)]}{.status.loadBalancer.ingress[*].ip} '
-
Applications을 사용하여 Ingress를 설치한 경우:
kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
-
일부 Kubernetes 클러스터는 호스트 이름을 반환합니다. Amazon EKS와 같은 플랫폼의 경우 다음과 같이 실행합니다:
kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
EKS를 사용하는 경우 Elastic Load Balancer(ELB)도 생성되며 추가적인 AWS 비용이 발생합니다.
-
Istio/Knative는 다른 명령을 사용합니다. 다음과 같이 실행합니다:
kubectl get svc --namespace=istio-system istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} '
몇 가지 Kubernetes 버전에서는 IP 주소 뒤에 %
가 붙을 수 있습니다. 이러한 경우 뒤에 포함하지 마십시오.