페이지 트리

이 문서는 Kubernetes 환경에서 SonarQube 배포에 대한 가이드 정보를 공유하기 위해 작성되었다. 



개요

다음 링크를 통해 SonarQube Helm Chart 정보를 확인할 수 있습니다. 



Kubernetes 환경 권장 사항

Kubernetes에서 SonarQube를 운영하기 위한 권장사항은 다음과 같습니다. 

전제조건

지원되는 버전

SonarQube Helm Chart는 최신 버전의 SonarQube 및 지원되는 Kubernetes 버전에서만 사용해야 하며, 지원되는 Kubernetes 버전 및 호환되는 LTS 버전의 SonarQube 전용 Helm 차트 사용이 필요합니다. 


Pod 보안 표준

Pod 보안 수준 과 호환되는 컨테이너 목록은 다음과 같습니다 .


  • privileged:
    • init-sysctl
  • baseline:
    • init-fs
  • restricted:
    • SQ 애플리케이션 컨테이너
    • SQ 초기화 컨테이너
    • postgresql 컨테이너


대부분의 컨테이너에서 SecurityContext 설정 :


allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
  type: RuntimeDefault
capabilities:
  drop: ["ALL"]



이를 기반으로 루트 권한으로 initSysctl.enabled initFs.enabled를 비활성화하여 제한된 Namespace에서 SQ helm 차트를 실행할 수 있습니다 .

자세한 내용은 프로덕션 사용 사례를 참조 하거나 values.yaml. 파일을 참고하시기 바랍니다. 


SonarQube 설치

현재는 Helm 3만 지원되며, Helm 저장소에서 Helm 차트를 설치하려면 다음 명령을 실행하세요.


helm repo add sonarqube https://SonarSource.github.io/helm-chart-sonarqube
helm repo update
kubectl create namespace sonarqube
helm upgrade --install -n sonarqube sonarqube sonarqube/sonarqube


Ingress 생성

클러스터 외부에서 SonarQube 서비스에 액세스할려면 ingress가 필요할 수 있습니다. 새로운 Ingress 생성도 Helm 차트에서 포함되어 있으니 다음을 참고하시기 바랍니다. 

Ingress 클래스

SonarSource Helm 차트에는  NGINX-ingress helm 차트에 대한 선택적 종속성이 있기 때문에 클러스터에 이미 NGINX 수신이 있는 경우 이를 사용할 수 있습니다.


NGINX도 설치하려면 values.yaml 다음을 추가하세요.  


nginx:
  enabled: true



본체 크기가 64MB 이상인 Ingress 클래스 NGINX를 사용하는 것을 권장하며 이는 value.yaml에 다음과 같이 수정하면 됩니다. 


ingress:
  enabled: true
  # Used to create an Ingress record.
  hosts:
    - name: <Your Sonarqube FQDN>
      # Different clouds or configurations might need /* as the default path
      path: /
      # For additional control over serviceName and servicePort
      # serviceName: someService
      # servicePort: somePort
  annotations: 
    nginx.ingress.kubernetes.io/proxy-body-size: "64m"

Helm 차트 값 사용자 정의 

다양한 방법으로 Helm 차트 값을 사용자 정의할 수 있습니다. 다음 예시를 참고하시기 바랍니다.


helm upgrade --install --set edition=enterprise sonarqube sonarqube/sonarqube


기타 구성 옵션

설치하기 전에 차트를 사용자 정의할 수 있습니다.  이에 대한 자세한 내용은 Helm 차트  README 파일을 참조하세요.


제한사항

SonarQube를  Kubernetes에서 작동할 때 알려진 몇 가지 문제가 있습니다. 

준비 및 시작 지연

지속성이 비활성화되면 Elasticsearch 인덱스를 다시 빌드해야 하므로 SonarQube 시작 시간이 길어집니다.

이 지연은 SonarQube 인스턴스의 데이터 양에 따라 달라지므로 시작/준비 및 활성 프로브 값을 환경에 맞게 조정해야 합니다. 

또한 SonarQube에 사용 가능한 CPU 코어도 시작 시간에 영향을 미치므로 SonarQube 배포에 대한 기본 제한을 살펴보는 것이 좋습니다.



  • 레이블 없음