Nexus Helm 설치
+cert-manager로 https 적용
+ private docker repo 생성
+ private helm repo 생성
※ yaml파일 등의 소스코드는 https://github.com/choisungwook/portfolio/wiki/nexus에서 볼 수 있습니다.
준비
▪ 쿠버네티스설치와 클러스터 구성
▪ helm3 설치
▪ cert-manager 설치와 사용방법 이해
▪ https://youtu.be/jkAlpv4WAUg 참고
▪ 외부 도메인/네임서버
▪ 실습에서는 네임서버를 cloudflare사용
▪ 동적 프로비저닝 활성화
4.
설치 -cert manager 설정
▪ namespace 생성
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-token-secret
namespace: nexus
type: Opaque
stringData:
api-token: <your-token>
▪ cert-manager 네임서버 access-token 생성
kubectl create ns nexus
kubectl apply -f token.yaml
5.
설치 -cert manager 설정
▪ cert-manager 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
kubectl apply -f issuer.yaml
helm 패키지를이용한 서비스 배포
▪ helm 저장소 업데이트
helm search repo nginxdemo
helm repo update
▪ helm 패키지 검색
32.
helm 패키지를이용한 서비스 배포
▪ 업로드한 helm package를 이용하여 nginx 설치
helm install -n test --create-namespace nginx nexus/nginxdemo
33.
helm 패키지를이용한 서비스 배포
▪ helm upgrade를 이용하여 서비스 유형을 nodeport로 변경
helm upgrade -n test --create-namespace nginx --set service.type=NodePort nexus/nginxdemo
▪ 서비스 유형이 nodeport로 변경되었는지 확인
34.
helm 패키지를이용한 서비스 배포
▪ nginx default index.html가 뜨는지 확인
35.
helm 패키지를이용한 서비스 배포
▪ helm 삭제
helm uninstall -n test nginx
kubectl create delete ns test