SlideShare a Scribd company logo
Nexus Helm 설치
+ cert-manager로 https 적용
+ private docker repo 생성
+ private helm repo 생성
※ yaml파일 등의 소스코드는 https://github.com/choisungwook/portfolio/wiki/nexus에서 볼 수 있습니다.
Nexus helm 설치
 준비
▪ 쿠버네티스 설치와 클러스터 구성
▪ helm3 설치
▪ cert-manager 설치와 사용방법 이해
▪ https://youtu.be/jkAlpv4WAUg 참고
▪ 외부 도메인/네임서버
▪ 실습에서는 네임서버를 cloudflare사용
▪ 동적 프로비저닝 활성화
 설치 - 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
 설치 - 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
 설치 - cert manager 설정
▪ 네임서버 dns설정
 nexus helm 설치
▪ helm 저장소 추가
helm repo add sonatype https://sonatype.github.io/helm3-charts/
helm repo update
▪ override_values.yaml 파일생성
nexus:
docker:
enabled: true
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:
- hosts:
- docker.choilab.xyz
secretName: docker-tls
- hosts:
- nexus.choilab.xyz
secretName: nexus-tls
 nexus helm 설치
▪ 설치
helm install -n nexus nexus -f override_values.yaml sonatype/nexus-repository-manager
▪ 인증서 발급 확인
설치 확인
 설치확인 - 대시보드 접속
▪ 웹페이지 방문과 http적용 확인
 설치확인 - 대시보드 접속
▪ 관리자 비밀번호 변경
▪ 첫 로그인 시 자동비밀번호 변경 창으로 이동
private docker repo
 private docker repo
▪ docker hosted repo 생성
①
②
① 설정버튼 클릭
② repositories 메뉴 클릭
③ docker hosted 클릭
③
 private docker repo
▪ docker hosted repo 생성
① repo 이름을 docker로 설정
② http 포트 설정
• nginx ingres가 https 통신중계
①
②
 private docker repo
▪ login 테스트
 private docker repo
▪ docker push 테스트
▪ nginx:latest 이미지 다운로드
▪ docker tag로 이미지 복사
# docker tag nginx:latest docker.choilab.xyz/nginx:latest
 private docker repo
▪ docker push 테스트
▪ docker push
docker tag nginx:latest docker.choilab.xyz/nginx:latest
 private docker repo
▪ docker push 테스트
▪ nexus 확인
helm repo 생성
 private helm repo 생성
▪ hosted유형 helm repo 추가
 private helm repo 생성
▪ 이름입력
 helm 저장소 생성
▪ helm repo 추가
helm repo add nexus (옵션: --insecure-skip-tls)<your helm repo url> --username admin --password password1234
※ nexus helm 공식문서: https://help.sonatype.com/repomanager3/formats/helm-repositories
 helm 저장소 생성
▪ helm repo 추가 예제
▪ helm repo 추가 확인
테스트용 nginx helm 패키지 생성
 helm 패키지 생성
▪ nginx helm 패키지 생성
helm create nginxdemo
①
②
③
① chart 명세
② yaml파일과 helm관리파일(_helpers.tpl, NOTES.txt, tests디렉터리)
③ template 관리
 helm 패키지 생성
▪ nginx-test helm 패키지 생성
▪ tgz파일이 생성됨
helm create nginxdemo
helm 패키지 push
 helm 패키지 업로드
▪ nexus 관리자 계정과 비밀번호를 환경변수로 초기화
curl -F file=@nginxdemo-0.1.0.tgz 
-u $nexus_user:$nexus_password 
https://nexus.choilab.xyz/service/rest/v1/components?repository=custom-helm1
① 업로드할 helm 패키지 경로
② nexus admin 계정과 비밀번호
③ nexus api 주소
①
③
②
nexus_user=admin
nexus_password=<your_password>
▪ nexus api를 이용하여 helm 패키지 push
※ nexus helm 공식문서: https://help.sonatype.com/repomanager3/formats/helm-repositories
 helm 패키지 업로드
▪ nexus 웹 대시보드에서 helm 패키지가 업로드되었는지 확인
helm 패키지를 이용한 서비스 배포
 helm 패키지를 이용한 서비스 배포
▪ helm 저장소 업데이트
helm search repo nginxdemo
helm repo update
▪ helm 패키지 검색
 helm 패키지를 이용한 서비스 배포
▪ 업로드한 helm package를 이용하여 nginx 설치
helm install -n test --create-namespace nginx nexus/nginxdemo
 helm 패키지를 이용한 서비스 배포
▪ helm upgrade를 이용하여 서비스 유형을 nodeport로 변경
helm upgrade -n test --create-namespace nginx --set service.type=NodePort nexus/nginxdemo
▪ 서비스 유형이 nodeport로 변경되었는지 확인
 helm 패키지를 이용한 서비스 배포
▪ nginx default index.html가 뜨는지 확인
 helm 패키지를 이용한 서비스 배포
▪ helm 삭제
helm uninstall -n test nginx
kubectl create delete ns test
springboot helm package 생성
 springboot helm package
▪ helm 패키지 템플릿 생성
helm create springboot
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ ctrl + shift + p > Remote-SSH: Add New SSh Host
 springboot helm package
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ extension 설치
 springboot helm package
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ ctrl + shift + p > Remote-SSH: Add New SSh Host
 springboot helm package
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ ctrl + shift + p > Remote-SSH: Add New SSh Host
 springboot helm package
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ <계정>@<IP>
▪ ssh연결정보 저장
 springboot helm package
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ ctrl + shift + p > Connect to Host
 springboot helm package
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ Open Folder > springboot helm 패키지 디렉터리경로 선택
 springboot helm package
▪ 편집을 편하게 하기 위한 vscode ssh 원격접속
▪ 연결 성공 > vscode로 원격 편집
 springboot helm package
▪ git history를 참고하여 helm 패키지 수정
▪ history 주소: https://github.com/choisungwook/portfolio/commits/master/kubernetes/helm/custom-springboot
▪ 이미지이름/tag, port, liveness 수정
 springboot helm package
▪ helm 패키지 생성
helm package springboot
▪ helm 패키지를 nexus helm repo에 push
curl -F file=@springboot-0.1.0.tgz 
-u $nexus_user:$nexus_password 
https://nexus.choilab.xyz/service/rest/v1/components?repository=custom-helm1
 springboot helm package
▪ helm repo 업데이트
helm repo update
▪ helm install 실행
helm install -n test --create-namespace --set service.type=NodePort springboot-demo nexus/springboot
 springboot helm package
▪ pod 상태 확인
▪ 웹페이지 접속

More Related Content

What's hot

PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
Jignesh Shah
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
SANG WON PARK
 
DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기
Byungho Lee
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
ssuserf8b8bd1
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
Opennaru, inc.
 
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon Web Services Korea
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)
용호 최
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
if kakao
 
Monitoring kubernetes with prometheus
Monitoring kubernetes with prometheusMonitoring kubernetes with prometheus
Monitoring kubernetes with prometheus
Brice Fernandes
 
Vagrant
Vagrant Vagrant
Vagrant
Akshay Siwal
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
흥배 최
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
철구 김
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
Ji-Woong Choi
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
Amazon Web Services Korea
 
컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항
컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항
컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항
Opennaru, inc.
 
Community Openstack 구축 사례
Community Openstack 구축 사례Community Openstack 구축 사례
Community Openstack 구축 사례
Open Source Consulting
 
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)
I Goo Lee.
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
NGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for KubernetesNGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for Kubernetes
NGINX, Inc.
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 

What's hot (20)

PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기DevOps 2년차 이직 성공기
DevOps 2년차 이직 성공기
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
 
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)
 
카프카, 산전수전 노하우
카프카, 산전수전 노하우카프카, 산전수전 노하우
카프카, 산전수전 노하우
 
Monitoring kubernetes with prometheus
Monitoring kubernetes with prometheusMonitoring kubernetes with prometheus
Monitoring kubernetes with prometheus
 
Vagrant
Vagrant Vagrant
Vagrant
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
 
컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항
컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항
컨테이너 (PaaS) 환경으로의 애플리케이션 전환 방법과 고려사항
 
Community Openstack 구축 사례
Community Openstack 구축 사례Community Openstack 구축 사례
Community Openstack 구축 사례
 
AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)AWS Aurora 운영사례 (by 배은미)
AWS Aurora 운영사례 (by 배은미)
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
NGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for KubernetesNGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for Kubernetes
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 

Similar to nexus helm 설치, docker/helm repo 설정과 예제

nexus helm 설치와 private docker repo 생성
nexus helm 설치와 private docker repo 생성nexus helm 설치와 private docker repo 생성
nexus helm 설치와 private docker repo 생성
choi sungwook
 
Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2
XpressEngine
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
wonyong hwang
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XpressEngine
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
Ji-Woong Choi
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
Ji-Woong Choi
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
Ji-Woong Choi
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
Jude Kim
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1
Steve Shim
 
Nginx Https 적용하기.pptx
Nginx Https 적용하기.pptxNginx Https 적용하기.pptx
Nginx Https 적용하기.pptx
wonyong hwang
 
cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급
choi sungwook
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
Gruter
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
Sukjin Yun
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
Dronix
 
Ngrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptxNgrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptx
wonyong hwang
 
Aws 커뮤니티데이 APM 헨즈온
Aws 커뮤니티데이 APM 헨즈온Aws 커뮤니티데이 APM 헨즈온
Aws 커뮤니티데이 APM 헨즈온
재현 신
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)
Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)
Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)
Jho Lee
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
Ji-Woong Choi
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
pyrasis
 

Similar to nexus helm 설치, docker/helm repo 설정과 예제 (20)

nexus helm 설치와 private docker repo 생성
nexus helm 설치와 private docker repo 생성nexus helm 설치와 private docker repo 생성
nexus helm 설치와 private docker repo 생성
 
Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2
 
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1
 
Nginx Https 적용하기.pptx
Nginx Https 적용하기.pptxNginx Https 적용하기.pptx
Nginx Https 적용하기.pptx
 
cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급
 
Hadoop security DeView 2014
Hadoop security DeView 2014Hadoop security DeView 2014
Hadoop security DeView 2014
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
 
Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기Docker로 서버 개발 편하게 하기
Docker로 서버 개발 편하게 하기
 
Ngrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptxNgrok을 이용한 Nginx Https 적용하기.pptx
Ngrok을 이용한 Nginx Https 적용하기.pptx
 
Aws 커뮤니티데이 APM 헨즈온
Aws 커뮤니티데이 APM 헨즈온Aws 커뮤니티데이 APM 헨즈온
Aws 커뮤니티데이 APM 헨즈온
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)
Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)
Enable the Docker Remote API with Secure Connection! (안전하게 도커 원격 작업하기)
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 

More from choi sungwook

테라폼스터디5주차 1편
테라폼스터디5주차 1편테라폼스터디5주차 1편
테라폼스터디5주차 1편
choi sungwook
 
컨테이너와 도커 이해
컨테이너와 도커 이해컨테이너와 도커 이해
컨테이너와 도커 이해
choi sungwook
 
kustomize 빠르게 시작하기
kustomize 빠르게 시작하기kustomize 빠르게 시작하기
kustomize 빠르게 시작하기
choi sungwook
 
entrypoint 오버라이딩
entrypoint 오버라이딩entrypoint 오버라이딩
entrypoint 오버라이딩
choi sungwook
 
젠킨스 컨셉
젠킨스 컨셉젠킨스 컨셉
젠킨스 컨셉
choi sungwook
 
System Manager를 이용한 EC2 원격쉘 접속
System Manager를 이용한 EC2 원격쉘 접속System Manager를 이용한 EC2 원격쉘 접속
System Manager를 이용한 EC2 원격쉘 접속
choi sungwook
 
aws profile관리
aws profile관리aws profile관리
aws profile관리
choi sungwook
 
nginx 입문 공부자료
nginx 입문 공부자료nginx 입문 공부자료
nginx 입문 공부자료
choi sungwook
 
nginx 504 timeout오류 해결
nginx 504 timeout오류 해결nginx 504 timeout오류 해결
nginx 504 timeout오류 해결
choi sungwook
 
AWS 다른계정 리소스 사용방법
AWS 다른계정 리소스 사용방법AWS 다른계정 리소스 사용방법
AWS 다른계정 리소스 사용방법
choi sungwook
 
docker build cache
docker build cachedocker build cache
docker build cache
choi sungwook
 
Dockerfile과 도커 이미지 레이어 관계
Dockerfile과 도커 이미지 레이어 관계Dockerfile과 도커 이미지 레이어 관계
Dockerfile과 도커 이미지 레이어 관계
choi sungwook
 
도커 이미지 레이어 구조
도커 이미지 레이어 구조도커 이미지 레이어 구조
도커 이미지 레이어 구조
choi sungwook
 
helm 입문
helm 입문helm 입문
helm 입문
choi sungwook
 
Prometheus 원리와 예제
Prometheus 원리와 예제Prometheus 원리와 예제
Prometheus 원리와 예제
choi sungwook
 
쿠버네티스 멀티 클러스터 관리
쿠버네티스 멀티 클러스터 관리쿠버네티스 멀티 클러스터 관리
쿠버네티스 멀티 클러스터 관리
choi sungwook
 
EC2 기타비용
EC2 기타비용EC2 기타비용
EC2 기타비용
choi sungwook
 
스프링부트 JPA와 mariadb 도커 컨테이너 연동
스프링부트 JPA와 mariadb 도커 컨테이너 연동스프링부트 JPA와 mariadb 도커 컨테이너 연동
스프링부트 JPA와 mariadb 도커 컨테이너 연동
choi sungwook
 
윈도우에서 도커 설치
윈도우에서 도커 설치윈도우에서 도커 설치
윈도우에서 도커 설치
choi sungwook
 
onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치
choi sungwook
 

More from choi sungwook (20)

테라폼스터디5주차 1편
테라폼스터디5주차 1편테라폼스터디5주차 1편
테라폼스터디5주차 1편
 
컨테이너와 도커 이해
컨테이너와 도커 이해컨테이너와 도커 이해
컨테이너와 도커 이해
 
kustomize 빠르게 시작하기
kustomize 빠르게 시작하기kustomize 빠르게 시작하기
kustomize 빠르게 시작하기
 
entrypoint 오버라이딩
entrypoint 오버라이딩entrypoint 오버라이딩
entrypoint 오버라이딩
 
젠킨스 컨셉
젠킨스 컨셉젠킨스 컨셉
젠킨스 컨셉
 
System Manager를 이용한 EC2 원격쉘 접속
System Manager를 이용한 EC2 원격쉘 접속System Manager를 이용한 EC2 원격쉘 접속
System Manager를 이용한 EC2 원격쉘 접속
 
aws profile관리
aws profile관리aws profile관리
aws profile관리
 
nginx 입문 공부자료
nginx 입문 공부자료nginx 입문 공부자료
nginx 입문 공부자료
 
nginx 504 timeout오류 해결
nginx 504 timeout오류 해결nginx 504 timeout오류 해결
nginx 504 timeout오류 해결
 
AWS 다른계정 리소스 사용방법
AWS 다른계정 리소스 사용방법AWS 다른계정 리소스 사용방법
AWS 다른계정 리소스 사용방법
 
docker build cache
docker build cachedocker build cache
docker build cache
 
Dockerfile과 도커 이미지 레이어 관계
Dockerfile과 도커 이미지 레이어 관계Dockerfile과 도커 이미지 레이어 관계
Dockerfile과 도커 이미지 레이어 관계
 
도커 이미지 레이어 구조
도커 이미지 레이어 구조도커 이미지 레이어 구조
도커 이미지 레이어 구조
 
helm 입문
helm 입문helm 입문
helm 입문
 
Prometheus 원리와 예제
Prometheus 원리와 예제Prometheus 원리와 예제
Prometheus 원리와 예제
 
쿠버네티스 멀티 클러스터 관리
쿠버네티스 멀티 클러스터 관리쿠버네티스 멀티 클러스터 관리
쿠버네티스 멀티 클러스터 관리
 
EC2 기타비용
EC2 기타비용EC2 기타비용
EC2 기타비용
 
스프링부트 JPA와 mariadb 도커 컨테이너 연동
스프링부트 JPA와 mariadb 도커 컨테이너 연동스프링부트 JPA와 mariadb 도커 컨테이너 연동
스프링부트 JPA와 mariadb 도커 컨테이너 연동
 
윈도우에서 도커 설치
윈도우에서 도커 설치윈도우에서 도커 설치
윈도우에서 도커 설치
 
onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치onpremise환경에서 kubespray설치
onpremise환경에서 kubespray설치
 

nexus helm 설치, docker/helm repo 설정과 예제

  • 1. Nexus Helm 설치 + cert-manager로 https 적용 + private docker repo 생성 + private helm repo 생성 ※ yaml파일 등의 소스코드는 https://github.com/choisungwook/portfolio/wiki/nexus에서 볼 수 있습니다.
  • 3.  준비 ▪ 쿠버네티스 설치와 클러스터 구성 ▪ 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
  • 6.  설치 - cert manager 설정 ▪ 네임서버 dns설정
  • 7.  nexus helm 설치 ▪ helm 저장소 추가 helm repo add sonatype https://sonatype.github.io/helm3-charts/ helm repo update ▪ override_values.yaml 파일생성 nexus: docker: enabled: true 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: - hosts: - docker.choilab.xyz secretName: docker-tls - hosts: - nexus.choilab.xyz secretName: nexus-tls
  • 8.  nexus helm 설치 ▪ 설치 helm install -n nexus nexus -f override_values.yaml sonatype/nexus-repository-manager ▪ 인증서 발급 확인
  • 10.  설치확인 - 대시보드 접속 ▪ 웹페이지 방문과 http적용 확인
  • 11.  설치확인 - 대시보드 접속 ▪ 관리자 비밀번호 변경 ▪ 첫 로그인 시 자동비밀번호 변경 창으로 이동
  • 13.  private docker repo ▪ docker hosted repo 생성 ① ② ① 설정버튼 클릭 ② repositories 메뉴 클릭 ③ docker hosted 클릭 ③
  • 14.  private docker repo ▪ docker hosted repo 생성 ① repo 이름을 docker로 설정 ② http 포트 설정 • nginx ingres가 https 통신중계 ① ②
  • 15.  private docker repo ▪ login 테스트
  • 16.  private docker repo ▪ docker push 테스트 ▪ nginx:latest 이미지 다운로드 ▪ docker tag로 이미지 복사 # docker tag nginx:latest docker.choilab.xyz/nginx:latest
  • 17.  private docker repo ▪ docker push 테스트 ▪ docker push docker tag nginx:latest docker.choilab.xyz/nginx:latest
  • 18.  private docker repo ▪ docker push 테스트 ▪ nexus 확인
  • 20.  private helm repo 생성 ▪ hosted유형 helm repo 추가
  • 21.  private helm repo 생성 ▪ 이름입력
  • 22.  helm 저장소 생성 ▪ helm repo 추가 helm repo add nexus (옵션: --insecure-skip-tls)<your helm repo url> --username admin --password password1234 ※ nexus helm 공식문서: https://help.sonatype.com/repomanager3/formats/helm-repositories
  • 23.  helm 저장소 생성 ▪ helm repo 추가 예제 ▪ helm repo 추가 확인
  • 24. 테스트용 nginx helm 패키지 생성
  • 25.  helm 패키지 생성 ▪ nginx helm 패키지 생성 helm create nginxdemo ① ② ③ ① chart 명세 ② yaml파일과 helm관리파일(_helpers.tpl, NOTES.txt, tests디렉터리) ③ template 관리
  • 26.  helm 패키지 생성 ▪ nginx-test helm 패키지 생성 ▪ tgz파일이 생성됨 helm create nginxdemo
  • 28.  helm 패키지 업로드 ▪ nexus 관리자 계정과 비밀번호를 환경변수로 초기화 curl -F file=@nginxdemo-0.1.0.tgz -u $nexus_user:$nexus_password https://nexus.choilab.xyz/service/rest/v1/components?repository=custom-helm1 ① 업로드할 helm 패키지 경로 ② nexus admin 계정과 비밀번호 ③ nexus api 주소 ① ③ ② nexus_user=admin nexus_password=<your_password> ▪ nexus api를 이용하여 helm 패키지 push ※ nexus helm 공식문서: https://help.sonatype.com/repomanager3/formats/helm-repositories
  • 29.  helm 패키지 업로드 ▪ nexus 웹 대시보드에서 helm 패키지가 업로드되었는지 확인
  • 30. helm 패키지를 이용한 서비스 배포
  • 31.  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
  • 37.  springboot helm package ▪ helm 패키지 템플릿 생성 helm create springboot ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ ctrl + shift + p > Remote-SSH: Add New SSh Host
  • 38.  springboot helm package ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ extension 설치
  • 39.  springboot helm package ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ ctrl + shift + p > Remote-SSH: Add New SSh Host
  • 40.  springboot helm package ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ ctrl + shift + p > Remote-SSH: Add New SSh Host
  • 41.  springboot helm package ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ <계정>@<IP> ▪ ssh연결정보 저장
  • 42.  springboot helm package ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ ctrl + shift + p > Connect to Host
  • 43.  springboot helm package ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ Open Folder > springboot helm 패키지 디렉터리경로 선택
  • 44.  springboot helm package ▪ 편집을 편하게 하기 위한 vscode ssh 원격접속 ▪ 연결 성공 > vscode로 원격 편집
  • 45.  springboot helm package ▪ git history를 참고하여 helm 패키지 수정 ▪ history 주소: https://github.com/choisungwook/portfolio/commits/master/kubernetes/helm/custom-springboot ▪ 이미지이름/tag, port, liveness 수정
  • 46.  springboot helm package ▪ helm 패키지 생성 helm package springboot ▪ helm 패키지를 nexus helm repo에 push curl -F file=@springboot-0.1.0.tgz -u $nexus_user:$nexus_password https://nexus.choilab.xyz/service/rest/v1/components?repository=custom-helm1
  • 47.  springboot helm package ▪ helm repo 업데이트 helm repo update ▪ helm install 실행 helm install -n test --create-namespace --set service.type=NodePort springboot-demo nexus/springboot
  • 48.  springboot helm package ▪ pod 상태 확인 ▪ 웹페이지 접속