Jenkins Pipeline in Wooteco 22
Infra, DevOps/Jenkins, Github Action2024. 2. 24. 23:49Jenkins Pipeline in Wooteco 22

무중단 배포와 로드 밸런스 Pipeline 현재 구성된 아키텍쳐 기준으로 작성하였습니다. 여기서 현재란 우아한테크코스 교육 때를 뜻합니다 :) … 해당 글은 22년 늦가을에 작성된 오래된 글을 재구성하여 작성되었습니다. 두 가지 관점에서 무중단 배포를 기획했습니다. 하나는 배포 과정 중에는 사용자의 요청이 중단되지 않아야 한다는 것. (무중단) 다른 하나는 배포 후에 두 WAS 모두 사용자 요청을 받을 수 있어야 한다는 것입니다 (부하 분산) 아래 파이프라인은 복잡하게 보이나 결국 롤링 배포를 하는 것일 뿐입니다 (단, 현재 아키텍처 구조상 스케줄러 역할을 교체하는 과정이 있어서 보다 더 복잡하게 되었습니다) 저때 실제로 배포가 이루어지는 곳, 즉 WAS의 재기동이 일어나는 곳은 아래와 같이 세 군데입니..

[k8s] 쿠버로 백엔드 환경 구축하기
Infra, DevOps/Kubernetes, Docker2024. 2. 19. 16:59[k8s] 쿠버로 백엔드 환경 구축하기

이 글을 작성한 시점의 저는 아직 k8s에 대해 깊게 알지 못합니다, Backend 부분에 비해 틀린점이 있을 수 있습니다 또, 위 그림은 실제 진행한 설계의 일부분입니다. 특히 StatefulSet과 DB의 관계가 적절한지 아직 확실히 검증되지 않았습니다 (구상하다보니 애틋해져서 넣었습니다) 이 글을 보고 클론 코딩을 하며 배우겠다는 느낌보다는, (아마 그렇게 할 수 없을거에요...) 이런 기능이 있고 어떤 식으로 구성되어있구나란 것을 개략적으로 같이 느끼셨으면 좋겠습니다 :) k8s는 과제를 준비하면서 급하게 공부하게 되었는데, 아주 좋은 기술이라 느껴졌다 (구글이 그 동안의 노하우를 담아서 만들었다는게 잘 느껴졌다) 쿠버를 사용하면 인프라 구성도를 코드로 쉽게 관리할 수 있다는 장점이 있다 또 코드..

[일프로님 k8s 복습인증] 5. App기능으로 이해 Probe
Infra, DevOps/인프런 k8s 복습인증2024. 2. 5. 00:49[일프로님 k8s 복습인증] 5. App기능으로 이해 Probe

이 글은 일프로 선생님의 쿠버네티스 어나더 클래스 지상편을 수강하고 복습 메뉴얼을 가이드에 따라 작성한 포스팅입니다 쿠버는 probe라는 기능을 통해서 앱을 관리한다 개략적인 설명 pod가 만들어지자마자 startupProbe가 동작한다 startupProbe가 성공하면 readinessProbe와 livenessProbe가 동작한다 readinessProbe가 성공하면 pod를 외부 트래픽과 연결한다 livenessProbe가 성공하다가 실패하면 App을 재기동한다 상세 설명 /ready URL에 10초에 한 번, 10번씩 호출을 해서 단 한번이라도 응답이 오면 성공이라고 간주한다 이 프로브가 성공하면 앞서 설명했듯 readinessProbe와 ivenessProbe가 동작한다 프로브가 실패할 경우 컨..

[k8s] 쿠버로 무중단 배포 3종 모두 해보자 (argo없는 Blue Green)
Infra, DevOps/Kubernetes, Docker2024. 1. 30. 17:59[k8s] 쿠버로 무중단 배포 3종 모두 해보자 (argo없는 Blue Green)

이 글은 아주 짧습니다 :) 실습 스크립트 및 코드는 이곳에 있습니다. 현재 블루 그린의 경우 무중단 배포가 되지 않습니다! 편의상 쿠버네티스를 k8s 혹은 쿠버라고 표시하겠습니다 :) 눈물 젖은 젠킨스와의 추억 젠킨스에 셸 스크립트 작성하며 눈물 흘리며 지새웠던 지난 밤들의 추억... 쿠버를 사용하면 그 고통의 추억들을 보상받을 수 있다 아래는 내가 작성했던 젠킨스의 파이프라인이다 스케줄링 기능이 본 WAS 2대 중 한 대로 잡혀있는 구조라서 저렇게 다소 복잡하게 짜여진 것도 한 몫을 한다 일반적인 WAS 구조를 가정해서 조금 더 간소화하면 아래와 같다 하지만 쿠버네티스의 경우 아래와 같이 한 단계만이 존재한다 정확히는 yml파일에 배포할 container image를 넣고 아래와 같은 명령어를 기술하..

[일프로님 k8s 복습인증] 4. Object 그려보며 이해하기
Infra, DevOps/인프런 k8s 복습인증2024. 1. 24. 16:16[일프로님 k8s 복습인증] 4. Object 그려보며 이해하기

이 글은 일프로 선생님의 쿠버네티스 어나더 클래스 지상편을 수강하고 복습 메뉴얼을 가이드에 따라 작성한 포스팅입니다 코드는 이곳에 있습니다. 사실 이번 편은 개인적으로 실전에 부딫치면서 알게 된 사실이 많아 세심하게 정리를 하지 않았습니다. ㅠㅠ 죄송합니다. 파레토의 법칙은 20%의 인구가 80%를 대변한다는 법칙이다. 이번 강의 또한 그렇다 20%의 오브젝트가 거의 전체를 대변한다 이때 그림에서 Cluster Level Object에는 Namespace, PV가 있고 Namespace Level Object에는 그 외 오브젝트 (Pod, Service, PVC 등이 속한다) Namespace Object를 그룹핑하는 역할이다 Deployment Pod를 만들고 업그레이드를 해 주는 역할이다 - 전체 코..

[일프로님 k8s 복습인증] 3. 실무에서 느껴본 쿠버네티스가 정말 편한 이유
Infra, DevOps/인프런 k8s 복습인증2024. 1. 24. 03:56[일프로님 k8s 복습인증] 3. 실무에서 느껴본 쿠버네티스가 정말 편한 이유

이 글은 일프로 선생님의 쿠버네티스 어나더 클래스 지상편을 수강하고 복습 메뉴얼을 가이드에 따라 작성한 포스팅입니다 저 위 그라파나를 정말 쉽게 설치할 수 있다 오랜만에 보는 그라파나... 정말 이쁘지 않은가?? :) 환경설정 Set up 가이드 Monitoring 설치 체험 App배포 쿠버네티스 생태계 아래는 쿠버네티스가 클라우드 생태계를 영역별로 카테고리화한 것이다 응.. 그렇다 저게 다 쿠버 생태계 위에서 함께하는 앱이다 (하하하) 물론 다 볼 필요는 없다 어떤 것을 포함하고 제외할 지를 살펴보자 쿠버 관련 교육 파트너 업체 → 제외 카오스 엔지니어링은 메인 영역이 아니다 → 제외 CNCF 멤버는 회부를 내고 제품 홍보나 등급별 혜택 여부다 (앱의 품질과는 관계 없다는 뜻) 따라서 비 멤버라도 생태..

[일프로님 k8s 복습인증] 2. 쿠버네티스 무게감 있게 설치하기
Infra, DevOps/인프런 k8s 복습인증2024. 1. 23. 03:10[일프로님 k8s 복습인증] 2. 쿠버네티스 무게감 있게 설치하기

이 글은 일프로 선생님의 쿠버네티스 어나더 클래스 지상편을 수강하고 복습 메뉴얼을 가이드에 따라 작성한 포스팅입니다 설치 과정 개요 Virtual Box (VB)를 설치한다 (1) VB의 동작을 코드로 제어할 수 있는 Vagrant를 설치하고 (2) 스크립트를 실행한다 (3) 클라이언트 접속 툴인 MobaX Terminal을 설치 후 (4) SSH 원격 접속을 한다 (5) 마지막으로 Pod의 상태를 확인하는 것으로 (6) 쿠버네티스 설처를 마무리한다 스크립트 설명 Rocky Linux 8을 설치한다 VM의 이름은 master-node 이다 명령어로 hostname을 입력하면 나오는 이름은 k8s-master이다 네트워크는 private_network로 설정했고 호스트와 연결될 IP주소는 192.168.5..

[일프로님 k8s 복습인증] 1. 컨테이너 한방 정리
Infra, DevOps/인프런 k8s 복습인증2024. 1. 23. 01:29[일프로님 k8s 복습인증] 1. 컨테이너 한방 정리

이 글은 일프로 선생님의 쿠버네티스 어나더 클래스 지상편을 수강하고 복습 메뉴얼을 가이드에 따라 작성한 포스팅입니다 위 대화에는 몇 가지 오류가 있다고 한다 여러분도 한 번 찾아보길 바란다 :) 아래는 컨테이너의 개요이다 정의 내용이 만만치 않다 (하지만 이 글을 작성하는 지금의 나는 저 내용이 아주 멀게 느껴지진 않는다) 쉽게 얘기하면, OS의 커널 기능을 이용해서 호스트 OS의 자원을 격리하고 커널을 제외한 경량화한 OS를 설치후 필요한 애플리케이션을 기동한다 이렇게 되면 호스트 OS가 윈도우, 우분투, 레드햇 종류 없이 동일한 동작을 보장한다 혹시나 어렵게 느껴지면 미안하다 ... 리눅스 OS 역사 유료 CLI OS인 Unix가 있었지만, 유료라 오래가지는 못하고 유저층은 리눅스에게 넘어간다 이 리..

[배포 기록] 도커 역사 및 빠른 재정리 (feat. 삽질 ..)
Infra, DevOps/Kubernetes, Docker2024. 1. 20. 19:37[배포 기록] 도커 역사 및 빠른 재정리 (feat. 삽질 ..)

이 글은 도커를 어느 정도 알고 있다는 가정하에 작성한 글입니다 :/ 혹시나 도커를 잘 모르시는 분은 생활코딩의 도커를 추천합니다. 오랜만에 도커를 사용하다 보니 자잘한 실수도 많이 하고 (특히 경로라던가 경로라던가...) 복습 겸 정리를 하는 것이 좋다고 생각해서 이렇게 정리를 하게 되었다 알잖아요, 도커는 신기술이 아니란 걸... 요새 쭈니어분들이 아주 똑똑하단 것을 나는 안다. 아마 이 글을 보는 당신도 그렇겠지... ㅠㅠ 지나가도 좋다! 나도 알고 있던걸 다시 한번 정리해보는 거니깐... ㅎ.ㅎ 어느 기술이나 다 그렇겠지만 도커는 유독 신기술이 아니다란 꼬리표가 더 잘 붙어다닌다 리눅스에 가상화 관련 기술인 namespace, cgroups, chroot 가 이미 있었다 그리고 저 위에 LinuX..

VMware 설치 과정 및 필요한 앱들 기록
Infra, DevOps/Linux, Shell2024. 1. 19. 09:54VMware 설치 과정 및 필요한 앱들 기록

내 랩탑에 설치한 VMware인데 이쁘지 않은가...? 근데 저 이쁜게 종종 쓰레기가 될 떄가 있다. 먹통 현상이 심하게 몇 번 일어났는데, 결국 한 번 더 설치하게 됐다 이미지 스냅샷으로 빼는 방법도 있지만 은근히 이 반복적인 행위가 환경에 적응하는데 도움을 주어서, 다음에도 내가 작성한 글을 통해서 빠르게 적용해보고자 한다 먹통 현상 주의… 앞에서도 얘기했으나 처음엔 안그런데 설치되는 프로그램이 많아지면서 종종 게스트 OS가 먹통이 되는 현상이 있다… 이때, 먹통된 우분투에 마우스가 갇혀서 못나올 때가 있다 (너 납치 당한거야) 이때, “Ctrl + Alt”를 누르면 마우스를 구출할 수 있다 Guest OS CPU, RAM 세팅 WSL2 자원 누수 이슈와 같은 현상이 발생하지 않아서 엄격하게 제한을 ..

따끈따끈 쿠버네티스 기초 개념 요약
Infra, DevOps/Kubernetes, Docker2024. 1. 17. 03:04따끈따끈 쿠버네티스 기초 개념 요약

컨테이너 기술 발달 컨테이너 기술이 발전함에 따라 현재는 많은 기업들이 쿠버네티스(이하 쿠버)를 많이 사용하고 있다 리눅스의 자원 격리 기술을 기반으로 컨테이너 기술이 생기고, 여기서 사람들이 많이 아는 현재의 도커가 모습을 드러냈다 시간이 지나면서 사람들은 더 많은 컨테이너를 관리해야 했고, MSA가 유행하는 현재는 쿠버네티스를 사용하기 정말 좋은 시대가 된 것 같다 쿠버네티스 종류 현재 사용해본 것만 기술하면 kubeadm과 minikube가 있다 kubeadm의 경우 멀티 노드 구성 및 다양한 기능을 사용할 수 있지만 설치 방법이 어렵다는 점이 있다 minikube는 반대로 kubeadm와 달리 초기 셋업은 쉽지만 kubeadm 만큼 기능이 다양하지 않다 제공되는 기능 컨테이너 자체 관리에 탁월하다..

윈도우에서 쿠버네티스 긴급 사용 후기
Infra, DevOps/Kubernetes, Docker2024. 1. 16. 18:56윈도우에서 쿠버네티스 긴급 사용 후기

15년에 클라우드 재단에서 쿠버네티스란 기술을 발표했다고 한다 (아는 척) 그리고 그 유행이 어느덧 우리나라에도 전파되어 많은 기업들이 적용했다고 한다 나는 최근에 이 기술을 적용해야 할 기회가 생겨서 긴급하게 공부를 했다 후기를 먼저 말하면, 정말 신세계였다 내가 젠킨스로 힘들게 구현한 롤링 배포 뿐만 아니라 블루/그린, 카나리까지 지원을 하고 수평/수직 오토 스케일링, 자동 복구, 전 버전 롤 백도 지원했다 예전에 짰었던 젠킨스 파이프라인이다... 복잡하지 않은가? 우리의 경우 WAS가 마스터/슬레이브인데 스케줄러가 마스터에만 있어서 조금 더 복잡한 파이프라인이 나왔다 그리고 먼저 배포되는 WAS에 문제가 생기면, 메인 파이프라인이 중단되고 롤백 파이프라인이 작동해서 전 버전으로 자동 롤백된다 근데 ..

image