이 문서는 Helm Chart를 이용하여 Kubernetes에 Artifactory를 설치하는 방법을 공유하기 위해 작성되었습니다.


설치 환경

  • Kubernetes : v1.28.6

  • Helm : v3.13.1

  • Artifactory : v7.90.7


사전 요구 사항

  • Kubenetes : v1.19 이상

  • 동적 스토리지 프로비저닝이 활성화되어 있어야 합니다.

  • 기본 StorageClass가 영구 저장소로 설정되어 있어야 합니다.

  • Kubectl이 설치되어 있어야 합니다.

  • Helm : v3


저장소 추가

Helm 클라이언트에 https://charts.jfrog.io를 추가합니다. 

helm repo add jfrog https://charts.jfrog.io
helm repo update

Master Key 생성

고유한 마스터 키를 생성합니다. 

export  MASTER_KEY=$(openssl rand -hex 32) 
echo  ${MASTER_KEY}


secret을 생성하여 사용할 수도 있습니다.

secret 안에 포함될 키의 이름은 ‘master-key’로 설정해야 합니다. 

kubectl create secret generic my-masterkey-secret -n artifactory --from-literal=master-key=${MASTER_KEY}


Join Key 생성

고유한 조인 키를 생성합니다. 

export  JOIN_KEY=$(openssl rand -hex 32)
echo  ${JOIN_KEY}


secret을 생성하여 사용할 수도 있습니다.

secret 안에 포함될 키의 이름은 ‘join-key’로 설정해야 합니다. 

kubectl create secret generic my-joinkey-secret -n artifactory --from-literal=join-key=${JOIN_KEY}


외부 데이터 베이스 연동 (선택 사항)

 Artifactory에는 기본으로 내장된 Derby 데이터베이스가 제공됩니다.

그러나 운영 환경에서는 외부 PostgreSQL 데이터베이스를 사용할 것을 권장합니다.

Artifactory 차트에는 PostgreSQL 설치가 포함되어 있습니다. 만약 다른 외부 PostgreSQL을 사용하려면 ‘values.yaml’ 파일을 생성하여 필요한 설정을 할 수 있습니다. 

postgresql:
  enabled: false
database:
  initDBCreation: false
  type: postgresql
  driver: org.postgresql.Driver
  url: 'jdbc:postgresql://${DB_HOST}:${DB_PORT}/my-artifactory-db'
  user: <DB_USER>
  password: <DB_PASSWORD>

공식 Artifactory Docker 이미지에는 PostgreSQL 데이터베이스 드라이버가 포함되어 있습니다. 다른 데이터베이스 유형의 경우 Artifactory의 tomcat/lib에 관련 데이터베이스 드라이버를 추가해야 합니다.


Artifactory 설치

Helm install 및 Helm upgrade를 수행할 때는 항상 같은 조인 키를 전달해야 합니다. 

helm upgrade --install artifactory --set artifactory.masterKey=${MASTER_KEY} --set artifactory.joinKey=${JOIN_KEY} --namespace artifactory --create-namespace jfrog/artifactory


master/join key를 secret으로 생성한 경우 다음과 같은 옵션을 사용하여 설치합니다.

  • --set artifactory.masterKeySecretName=my-masterkey-secret

  • --set artifactory.joinKeySecretName=my-joinkey-secret


helm upgrade --install artifactory --set artifactory.masterKeySecretName=my-masterkey-secret --set artifactory.joinKeySecretName=my-joinkey-secret --namespace artifactory --create-namespace jfrog/artifactory

기본적으로 Artifactory Helm Chart는 artifactory-pro 이미지를 사용합니다. OSS 버전으로 설치하려면, Helm 명령어에서 image repository명을 지정하는 옵션을 추가하여 설치할 수 있습니다.

  • --set artifactory.image.repository=jfrog/artifactory-oss


values.yaml' 파일을 생성하여 추가 설정을 한 경우 다음과 같은 옵션을 추가하여 설치합니다.

  • -f values.yaml


Artifactory Pod 확인

다음 명령을 사용하여 Artifactory 관련 Pod의 상태를 확인할 수 있습니다. 

kubectl --namespace <your namespace> get pods


Artifactory 로그 확인

다음 명령을 사용하여 Artifactory 컨테이너 로그를 확인합니다. 

kubectl --namespace <your namespace> logs -f <name of the pod>


Artifactory 설정

artifactory nginx 서비스를 조회하여 80:<nodeport>를 확인합니다. 

kubectl --namespace <your namespace> get svc

Artifactory를 설정하기 위해 http://localhost:<nodeport>/ui/ 으로 접속합니다.

초기 계정 정보는 다음과 같습니다.

  • ID : admin

  • PW : password

  • 레이블 없음