한주의 휴식기를 가지고 돌아온 열정몬입니다 저번주차는 이번주차에 묶어 한번에 회고 해보도록 하겠습니다
이번 주차들은 jenkins를 이용한 CI/CD와 쿠버네티스를 helm으로 사용하는 방법, 그리고 간단한 dataMonitoring을 배워 본 시간이였습니다 그럼 같이 한 번 가시보죠!
느낀 점
Jenkins
이번 주차는 CI/CD의 방법론부터 적용을 배워 보았다.
1. rolling update 하나를 켜고 다른 하나를 끄고를 반복하는 무중단 배포 ( 3→4 →3 )
2. 블루 그린 배포(자원을 2배를 쓰면서 배포 하는 방식) 블루로 여러개 그린으로 여러개를 같이 띄우기
v1을 블루라고 하고 v2를 그린이라고 하면 업데이트가 된 그린은 블루가 되고 다음 업데이트 때 블루를 지우고 다시 그린을 띄우는 방식
3. 카나리 배포 일부만 버전업을 하는 배포 방식
위 방법들 중 이번에는 1번과 2번을 주로 사용했다 젠킨스를 깃헙과 web hook을 연동해서 CICD를 연동했고 깃헙 액션과 동일하게 명령어를 넣어서 진행했었다.
젠킨스는 freeproject 와 파이프라인으로 배포를 해보았는데 개인적으로 파이프 라인이 체계가 잡힌 모양이라 확실하게 쓰기 좋았다.
freeproject와 pipeline의 장단점
freeproject
[장점]
- 플러그인을 다운 받아서 편하게 사용이 가능함
- 생각보다 코드를 별로 안침
[단점]
- 커스텀이 힘듦
- 단계를 쪼개기 힘듦
pipeline
[장점]
- 내가 코드를 만들기 때문에 커스텀이 쉽다
- 단계를 볼 수 있다
[단점]
- 코드의 양이 많음
- 플러그인 사용을 위한 독스를 좀 봐야한다
Helm
이전에는 helm을 통해 ingress로 niginx를 열어 다른 서버들이랑 테스트를 해보았는데 이번에는 쿠버를 하나의 앱으로 직접 만들어 올리는 것을 해보았다.
1.Helm을 설치하자 Helm 사이트에 Doc을 들어가 install 명령어를 찾아 서버에 넣어준다
요로캐 3개를 다 넣어주자
그리고 이전에는 depoly와 svc를 각각 파일을 직접 만들어 넣어줬다면 helm은 보법부터 다르다!
helm create 파일명 이렇게 명령어를 쳐주면 deploy svc 그리고 각 파일에 맞는 env파일과 같은 value등의 파일을 넣어준다.
여기서 value 파일을 각각에 맞게 바꿔줘야 하는데 도커 이미지를 사용한다면 허브에 올라가 있는 repo 이름과 pull 받을 때를 대비한 Always를 pullPolicy에 넣어주고 tag를 붙여줘야 한다.
이렇게 value파일에 type을 정해주고 nodePort의 경우는 포트 번호를 지정해주고 서비스 파일에서 nodePort를 추가해줘야 한다.
여기에는 현재 내가 올린 이미지가 잘 돌아가는지 확인해줄 get타입의 url을 넣어준다 여기서는 health check를 해줄 actuator를 달아 올려줬다.
이렇게 공들여 만든 helm파일 실행시키는 명령어는 helm install {실행 시킬 이름} {helm 폴더이름} 이다.
반대로 삭제는 helm uninstall {이름} ,수정하고 update할 때는 helm upgrade {실행 시킬 이름} {helm 폴더이름} 이다.
helm을 통한 prometheus와 grafana를 이용한 데이터 시각화
이번에는 helm으로 그라파나와 프로메테우스를 설치 해줬다 helm-charts/charts/kube-prometheus-stack at main · prometheus-community/helm-charts · GitHub
위 사이트를 통해 설치 방법을 보고 아래 명령어를 순서대로 입력해주자
필자는 namespace를 mon으로 만들었기에 이에 따라서 만들어주자
이후 svc를 수정해주자 kubectl edit svc pgs-kube-prometheus-stack-prometheus -n mon 여기에 들어가 바꿔준다.
그라파나도 kubectl edit svc pgs-grafana -n mon 이렇게 열어 내용을 수정해준다.
이후 그라파나에 로그인을 해서 보면 이렇게 확인 할 수 있다.
이후 스프링 yml 파일을 바꿔주고 의존성을 추가하고 docker 이미지를 다시 말아주고 service에 ServiceMonitor 하나를 추가해준다 이후 공식 문서에서 원하는 대시보드를 찾고 열어놓은 그라파나에 import ID를 넣어준다.
좋았던 점
이전에는 이론으로 알고 있던 것들을 실제로 해보는 뜻 깊은 시간이였다 이전에는 docker도 모르는 응애였던 내가 이제는 k8s도 망설임 없이 뚝딱 치는 모습
그리고 더 간단하게 올리는 방법들을 알아가는 한 주 한 주 였던 것 같다.
역시 개발자는 원영적 마인드도 중요하지만 팰리컨적 마인드도 좋은 것 같다.
되던 안되던 일단 시도 해보자 일단 입으로 넣어보는 팰리컨처럼..바위를 뚫는건 꾸준함이니까..
아쉬웠던 점
알아야 할 것이 점점 늘어난다 블로그랑 노션에 정리를 하면서 한 번씩 깨닫고 가지만 아직 나는 부족하다 mbti가 N이라 그런가 아직도 망쳐서 울상에 빠진 나를 계속 생각하게 된다..시작도 안했는데 배포는 어디서 꼬일지 몰라서 더 두렵지만 이겨내야 한다. 이제 최종이 코 앞으로 다가왔기 때문에 더 빠르고 더 잘 더 완벽하게 해내야 한다. 끝까지 가면 내가 다 이길거니까 포기만 안했으면 좋겠다 앞으로 한 주 한 주를 더 소중하게 보내야 할 것 같다.
개선해야 할 점
누구에게 의존하기 보다는 나 스스로 잘 해낼 수 있다는 마음가짐과 그것에 대한 실천 능력을 키워야 할 것 같다.
할 일이 있는데 머뭇거리기 보다는 내가 먼저 나서서 처리 해버리는 멋진 내가 되어보자!
한주의 휴식기를 가지고 돌아온 열정몬입니다 저번주차는 이번주차에 묶어 한번에 회고 해보도록 하겠습니다
이번 주차들은 jenkins를 이용한 CI/CD와 쿠버네티스를 helm으로 사용하는 방법, 그리고 간단한 dataMonitoring을 배워 본 시간이였습니다 그럼 같이 한 번 가시보죠!
느낀 점
Jenkins
이번 주차는 CI/CD의 방법론부터 적용을 배워 보았다.
1. rolling update 하나를 켜고 다른 하나를 끄고를 반복하는 무중단 배포 ( 3→4 →3 )
2. 블루 그린 배포(자원을 2배를 쓰면서 배포 하는 방식) 블루로 여러개 그린으로 여러개를 같이 띄우기
v1을 블루라고 하고 v2를 그린이라고 하면 업데이트가 된 그린은 블루가 되고 다음 업데이트 때 블루를 지우고 다시 그린을 띄우는 방식
3. 카나리 배포 일부만 버전업을 하는 배포 방식
위 방법들 중 이번에는 1번과 2번을 주로 사용했다 젠킨스를 깃헙과 web hook을 연동해서 CICD를 연동했고 깃헙 액션과 동일하게 명령어를 넣어서 진행했었다.
젠킨스는 freeproject 와 파이프라인으로 배포를 해보았는데 개인적으로 파이프 라인이 체계가 잡힌 모양이라 확실하게 쓰기 좋았다.
freeproject와 pipeline의 장단점
freeproject
[장점]
- 플러그인을 다운 받아서 편하게 사용이 가능함
- 생각보다 코드를 별로 안침
[단점]
- 커스텀이 힘듦
- 단계를 쪼개기 힘듦
pipeline
[장점]
- 내가 코드를 만들기 때문에 커스텀이 쉽다
- 단계를 볼 수 있다
[단점]
- 코드의 양이 많음
- 플러그인 사용을 위한 독스를 좀 봐야한다
Helm
이전에는 helm을 통해 ingress로 niginx를 열어 다른 서버들이랑 테스트를 해보았는데 이번에는 쿠버를 하나의 앱으로 직접 만들어 올리는 것을 해보았다.
1.Helm을 설치하자 Helm 사이트에 Doc을 들어가 install 명령어를 찾아 서버에 넣어준다
요로캐 3개를 다 넣어주자
그리고 이전에는 depoly와 svc를 각각 파일을 직접 만들어 넣어줬다면 helm은 보법부터 다르다!
helm create 파일명 이렇게 명령어를 쳐주면 deploy svc 그리고 각 파일에 맞는 env파일과 같은 value등의 파일을 넣어준다.
여기서 value 파일을 각각에 맞게 바꿔줘야 하는데 도커 이미지를 사용한다면 허브에 올라가 있는 repo 이름과 pull 받을 때를 대비한 Always를 pullPolicy에 넣어주고 tag를 붙여줘야 한다.
이렇게 value파일에 type을 정해주고 nodePort의 경우는 포트 번호를 지정해주고 서비스 파일에서 nodePort를 추가해줘야 한다.
여기에는 현재 내가 올린 이미지가 잘 돌아가는지 확인해줄 get타입의 url을 넣어준다 여기서는 health check를 해줄 actuator를 달아 올려줬다.
이렇게 공들여 만든 helm파일 실행시키는 명령어는 helm install {실행 시킬 이름} {helm 폴더이름} 이다.
반대로 삭제는 helm uninstall {이름} ,수정하고 update할 때는 helm upgrade {실행 시킬 이름} {helm 폴더이름} 이다.
helm을 통한 prometheus와 grafana를 이용한 데이터 시각화
이번에는 helm으로 그라파나와 프로메테우스를 설치 해줬다 helm-charts/charts/kube-prometheus-stack at main · prometheus-community/helm-charts · GitHub
위 사이트를 통해 설치 방법을 보고 아래 명령어를 순서대로 입력해주자
필자는 namespace를 mon으로 만들었기에 이에 따라서 만들어주자
이후 svc를 수정해주자 kubectl edit svc pgs-kube-prometheus-stack-prometheus -n mon 여기에 들어가 바꿔준다.
그라파나도 kubectl edit svc pgs-grafana -n mon 이렇게 열어 내용을 수정해준다.
이후 그라파나에 로그인을 해서 보면 이렇게 확인 할 수 있다.
이후 스프링 yml 파일을 바꿔주고 의존성을 추가하고 docker 이미지를 다시 말아주고 service에 ServiceMonitor 하나를 추가해준다 이후 공식 문서에서 원하는 대시보드를 찾고 열어놓은 그라파나에 import ID를 넣어준다.
좋았던 점
이전에는 이론으로 알고 있던 것들을 실제로 해보는 뜻 깊은 시간이였다 이전에는 docker도 모르는 응애였던 내가 이제는 k8s도 망설임 없이 뚝딱 치는 모습
그리고 더 간단하게 올리는 방법들을 알아가는 한 주 한 주 였던 것 같다.
역시 개발자는 원영적 마인드도 중요하지만 팰리컨적 마인드도 좋은 것 같다.
되던 안되던 일단 시도 해보자 일단 입으로 넣어보는 팰리컨처럼..바위를 뚫는건 꾸준함이니까..
아쉬웠던 점
알아야 할 것이 점점 늘어난다 블로그랑 노션에 정리를 하면서 한 번씩 깨닫고 가지만 아직 나는 부족하다 mbti가 N이라 그런가 아직도 망쳐서 울상에 빠진 나를 계속 생각하게 된다..시작도 안했는데 배포는 어디서 꼬일지 몰라서 더 두렵지만 이겨내야 한다. 이제 최종이 코 앞으로 다가왔기 때문에 더 빠르고 더 잘 더 완벽하게 해내야 한다. 끝까지 가면 내가 다 이길거니까 포기만 안했으면 좋겠다 앞으로 한 주 한 주를 더 소중하게 보내야 할 것 같다.
개선해야 할 점
누구에게 의존하기 보다는 나 스스로 잘 해낼 수 있다는 마음가짐과 그것에 대한 실천 능력을 키워야 할 것 같다.
할 일이 있는데 머뭇거리기 보다는 내가 먼저 나서서 처리 해버리는 멋진 내가 되어보자!