반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 카오스 엔지니어링
- argocd
- seldon core
- mlops
- blue/green
- keda
- CANARY
- kubernetes operator
- gitea
- operator
- Kubernetes
- serving
- nginx ingress
- CI/CD
- Kopf
- Pulumi
- opentelemetry
- Kubernetes 인증
- opensearch
- knative
- Argo
- MLflow
- Continuous Deployment
- argo rollout
- Litmus
- Model Serving
- Kubeflow
- gitops
- 오퍼레이터
- tekton
Archives
- Today
- Total
Kubernetes 이야기
Kubernetes에 Nexus 설치 본문
반응형
Sonatype Nexus는 소프트웨어 개발에서 사용되는 인기 있는 저장소 관리자 도구이다. 이는 소프트웨어 개발 프로세스에서 사용되는 바이너리 파일, 라이브러리 및 종속성과 같은 artifact를 관리하는 데 사용된다. Nexus는 이러한 artifact를 저장하고 검색하기 위한 중앙 저장소를 제공하여 개발 팀이 종속성을 관리하고 라이브러리를 공유하며 소프트웨어 빌드 프로세스의 일관성을 유지하는 데 도움을 준다.
개발자들은 Java개발 시 maven이나 gradle 컴파일 할 때 내부 Nexus 서버와 연동하여 jar 파일 등을 다운로드하거나 jar 를 deploy하는 형태로 많이 사용할 것이다. 특히 폐쇄망 환경에서는 거의 필수로 사용된다.
하지만, Nexus는 이러한 빌드 도구와의 통합 외에도 다양한 기능을 제공하고 있다. ( 예를들어, Docker Registry의 기능도 포함하고 있다. )
Sonatype Nexus의 주요 기능
- 아티팩트 관리: Nexus는 바이너리 아티팩트(라이브러리, 프레임워크 등)를 저장하고 관리하기 위한 저장소로 사용
- 프록시 및 캐싱: Nexus는 외부 저장소의 프록시로 작동하며 아티팩트를 로컬로 캐싱한다. 이는 빌드 시간을 단축하고 외부 저장소 다운타임으로 인한 빌드 프로세스에 영향을 최소화하는 데 도움이 된다.
- 보안 및 액세스 제어: Nexus는 액세스 제어 및 보안 기능을 제공하여 관리자가 누가 아티팩트에 액세스하고 발행할 수 있는지 정의할 수 있다.
- 저장소 상태 확인: Nexus는 저장소에 대한 상태 확인을 수행하여 저장된 아티팩트에 문제가 있는지 식별하고 플래그를 지정할 수 있다.
- 빌드 도구와의 통합: Nexus는 Apache Maven, Gradle 등과 같은 인기 있는 빌드 도구와 원활하게 통합된다. 이 통합을 통해 빌드 도구는 빌드 프로세스 중에 Nexus 저장소에서 종속성을 검색할 수 있다.
- 여러 저장소 형식 지원: Nexus는 Maven, npm, Docker, NuGet 등과 같은 다양한 저장소 형식을 지원한다. 이 유연성은 Nexus를 다양한 프로젝트 및 생태계에서 사용할 수 있게 한다.
- 아티팩트 검색 및 탐색: Nexus는 저장소에서 아티팩트를 검색하고 탐색할 수 있는 웹 인터페이스를 제공한다. 이를 통해 프로젝트에서 사용되는 종속성을 쉽게 찾고 이해할 수 있다.
설치
kubernetes에 설치하는 방법은 helm 배포가 있다. 이번에는 단순 yaml로 배포해 보자.
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nexus-data
spec:
storageClassName: openebs-hostpath
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
volumeMode: Filesystem
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nexus
spec:
replicas: 1
selector:
matchLabels:
app: nexus
template:
metadata:
labels:
app: nexus
spec:
containers:
- image: sonatype/nexus3:3.63.0
name: nexus
ports:
- containerPort: 8081
protocol: TCP
volumeMounts:
- mountPath: /nexus-data
name: nexus-data
volumes:
- name: nexus-data
persistentVolumeClaim:
claimName: nexus-data
---
apiVersion: v1
kind: Service
metadata:
name: nexus-service
spec:
ports:
- name: nexus
port: 8081
protocol: TCP
targetPort: 8081
nodePort: 30200
selector:
app: nexus
type: NodePort
로그인을 시도할 때 admin 패스워드는 /nexus-data/admin.password 파일에 존재한다.
로그인 후 다음과 같이 경고 메시지가 보인다.
The host system is allocating a maximum of 1 cores to the application. A minimum of 4 is recommended
Deployment.yaml 에 다음의 env를 추가하여 재기동하면 해결된다.
...
spec:
containers:
- image: sonatype/nexus3:3.63.0
name: nexus
env:
- name: INSTALL4J_ADD_VM_PARAMS
value: "-XX:ActiveProcessorCount=4"
...
반응형
'Kubernetes > devops' 카테고리의 다른 글
Nexus에 Pypi 저장소 구축 (1) | 2023.12.29 |
---|---|
tekton과 argocd를 이용한 GitOps 구축하기 (0) | 2023.01.12 |
Giblab install on kubernetes (0) | 2022.10.09 |
Backstage (0) | 2022.10.02 |
dapr (0) | 2022.09.30 |
Comments