nexus - choisungwook/portfolio GitHub Wiki
- nexus helm 사용 메뉴얼
- 쿠버네티스 설치와 클러스터 구성
- helm3 설치
- cert-manager 설치와 사용방법 이해
- 외부 도메인/네임서버
- 실습에서는 네임서버를 cloudflare사용
- 동적 프로비저닝 활성화
helm repo add sonatype https://sonatype.github.io/helm3-charts/
helm repo update
- ingress 활성화
- ingress.hostRepo: 도메인주소
- ingress subpath 변경
- nexus.env: NEXUS_CONTENT
- ingress.hostPath: NEXUS_CONTENT에 설정한 값으로 변경
- docker
- helm nexus에서는 docker ingress설정이 필수
nexus:
docker:
enabled: true
registries:
- port: 5000
host: docker.choilab.com
secretName: docker-ssl
env:
- name: NEXUS_CONTEXT
value: nexus
livenessProbe:
path: /nexus
readinessProbe:
path: /nexus
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hostPath: /nexus
hostRepo: choilab.com
tls:
- hosts:
- docker.choilab.com
이 예제는 dns-01 solver을 사용하고 네임서버를 cloudflare를 사용했습니다.
- cloudflaer accesstoekn 생성
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-token-secret
namespace: nexus
type: Opaque
stringData:
api-token: <your-token>
- issuer 생성
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: nexus-prodissuser
namespace: nexus
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: <your email>
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: nexus-prodissuser
# Enable the challenge provider
solvers:
- dns01:
cloudflare:
email: <your email>
apiTokenSecretRef:
name: cloudflare-api-token-secret #cloudflare api token
key: api-token
- override_values.yaml파일 생성
nexus:
docker:
enabled: true
# docker domain
registries:
- port: 5000
host: docker.choilab.xyz
secretName: docker-tls
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/issuer: "nexus-prodissuser"
nginx.ingress.kubernetes.io/proxy-body-size: "0"
hostPath: /
# nexus domain
hostRepo: nexus.choilab.xyz
tls:
# docker domain
- hosts:
- docker.choilab.xyz
secretName: docker-tls
# nexus domain
- hosts:
- nexus.choilab.xyz
secretName: nexus-tls
kubectl create ns nexus
helm install -n nexus nexus -f override_values.yaml sonatype/nexus-repository-manager