본문 바로가기
728x90

[DevOps]36

kubernetes - Node Update(drain, cordon, uncordon) 🛠️ 쿠버네티스에서의 클러스터 유지보수 쿠버네티스의 클러스터는 여러 개의 노드로 구성되어 있다. 각 노드는 하나의 인스턴스로 구성되어 각자에 맞는 OS와 Kubelet 버전이 있을 것이다. 만약 이 OS 혹은 kubelet 버전을 업데이트하거나, 하드웨어를 교체하는 등 노드의 유지보수 작업이 수행될 때 파드의 서비스 중단 없이 안전하게 노드를 유지 보수하려면 어떻게 해야 할까? 쿠버네티스에는 pod의 스케줄링 정책을 커스텀하게 설정할 수 있는 여러 명령어를 제공한다. 이를 통해 업데이트가 필요한 노드의 파드를 다른 노드로 옮기고 안전하게 업데이트를 진행할 수 있다. 📌 drain kubectl drain --ignore-daemonsets drain은 '물을 빼다'라는 뜻으로 쿠버네티스에서는 해당 노드의.. 2024. 1. 20.
kubernetes - initContainer : 초기화를 위한 컨테이너 📌 initContainer(초기화 컨테이너) Kubernetes Pod 내에서 실행되는 특별한 종류의 컨테이너이다. 주 컨테이너가 시작되기 전에 실행되며, 주로 초기화 작업을 수행하기 위해 사용된다. 주 컨테이너와는 독립적으로 실행되며 initContainer의 실행이 완료되어야 주 컨테이너가 시작된다. 각각의 순서대로 실행되며 이전 initContainer가 성공적으로 완료되어야 다음 initContainer가 실행된다. 주 컨테이너와 별도의 리소스를 사용하며 다른 네트워크 네임스페이스에 속해 있기 때문에 주 컨테이너와 직접 통신할 수는 없다. Pod 내에서 초기화 작업을 수행하여 애플리케이션의 안정성과 신뢰성을 높일 수 있다. 🤔 initContainer의 사용 목적 데이터 초기화 주 컨테이너가 시.. 2024. 1. 17.
쿠버네티스 배포 전략 간단히 알아보기 📌 쿠버네티스 배포 전략 관련 용어 정리 롤링 업데이트(Rolling Update) 롤링 업데이트는 가장 일반적으로 사용되는 배포 전략 중 하나이다. 다른 배포 전략인 블루/그린 배포이나 카나리아 배포도 구현 가능하다. 이전 버전의 애플리케이션을 점진적으로 제거하고 새로운 버전을 추가함으로써 업데이트를 수행한다. 롤링 업데이트를 통해 애플리케이션의 가용성을 유지하면서 안정적인 업데이트를 진행할 수 있다. 쿠버네티스에서는 ReplicaSet 또는 Deployment 리소스를 사용하여 롤링 업데이트를 구현할 수 있다. yaml 파일에 직접 적용하는 방법은 아래 설명에 있다. 롤아웃(Rollout) 애플리케이션의 업데이트나 변경 사항을 수행하는 과정을 말한다. 롤아웃을 통해 애플리케이션의 배포를 관리하고, 이.. 2023. 12. 15.
kubernetes - DaemonSet, Static Pod 📌 DaemonSet 모든 노드에 특정 파드를 배포하고 관리하는 컨트롤러이다. 레플리카셋과 비슷한데 모든 노드에서 특정 작업이 실행될 수 있도록 하기위해 사용한다. 예를 들어, 모든 노드에서 로그 수집을 위한 파드를 실행하거나, 모든 노드에서 특정 네트워크 프록시를 실행할 수 있다. 노드가 추가되거나 제거될 때 자동으로 파드를 생성하거나 삭제하여 노드의 상태 변화에 따라 자동으로 관리할 수 있다. 각 노드의 정보를 수집하거나 노드마다 필수적으로 실행되어야 하는 파드를 배포 관리한다. ReplicaSet과 유사한 방식으로 동작한다. ReplicaSet은 파드 수를 정적으로 지정하지만, DaemonSet은 노드 수에 따라 파드 수가 동적으로 조절된다. 노드가 3개면 파드도 각 노드마다 하나씩 총 3개 또한,.. 2023. 12. 4.
쿠버네티스 CKA 응시료 할인받고 접수하기(Cyber Monday 50% 할인) 📌 CKA(Certified Kubernetes Administrator) Kubernetes 관련 자격증으로 AWS 자격증과 더불어 개발자에게 매우 유명한 자격증이다. 클러스터 설치, 구성, 모니터링, 스케일링, 애플리케이션 배포, 스토리지 관리, 네트워크 설정 등 Kubernetes 운영에 필요한 다양한 기술을 검증한다. 시험은 실제 Kubernetes 클러스터를 다루는 실습 문제와 객관식 문제로 구성되어 있다. Kubernetes 운영 업무자로서의 역량을 테스트한다. 자격증을 취득하면 Kubernetes 클러스터를 안정적으로 운영하고 관리할 수 있는 기술력을 보유하고 있다는 것이 인정되어 경쟁력을 갖출 수 있다. 👀 CKA 공식 사이트 살펴보기 리눅스 재단에서 운영하고 있기 때문에 검색창에 위와 .. 2023. 12. 3.
로컬에서 젠킨스로 블루/그린 무중단 배포 테스트하기 (3) - 젠킨스 파일 작성, 배포 테스트 진행 💡 이 글은 3편으로 2편인https://suzuworld.tistory.com/418에 이어 쓰는 글이다. 💡 1편부터 보려면 이곳으로 https://suzuworld.tistory.com/419 📌 JenkinsFile 작성 준비 이제 젠킨스에 로그인해 보자. 기존에 깃허브 아이디에 대한 Credential 등록은 이미 했다고 가정한다. 잘 모르겠다면, 여기를 보고 따라 하면 된다. 매우 자세히 적어 놓았다. 새로운 Item을 클릭한다. Item은 Jenkins에서 관리되는 모든 항목을 의미한다. 일반적으로 프로젝트, 작업, 빌드, 파이프라인, 뷰 등이 있다. 여기서 Pipeline을 선택하고 item의 이름을 기입한다. 나는 jenkinTest라고 지었다. 이는 jenkinsFile을 작성할 때 .. 2023. 11. 27.
로컬에서 젠킨스로 블루/그린 무중단 배포 테스트하기 (2) - 쉘 스크립트 배포 파일 작성 💡 이 글은 2편으로 1편인https://suzuworld.tistory.com/419에 이어 쓰는 글이다. 🤗 쉘 스크립트 작성 준비 이제 할 일은 먼저 쉘스크립트로 배포 파일을 만드는 것이다. 스프링 부트 프로젝트 상위 폴더에 script라는 디렉터리를 만든 다음에 deploy.sh라는 이름의 파일을 만들자. 🤔 들어가기 전에 본격적으로 들어가기 전에 위 그림을 한 번 더 보고 시작하면 스크립트 이해에 많은 도움이 될 것이다. 이번에 쉘 스크립트 파일을 처음 만져봐서 상당히 애먹었는데 대부분의 블로그가 각 명령어에 대해 자세히 설명하지 않아 시간이 더 걸렸던 것 같다. 나처럼 쉘 스크립트 작성이 처음인 사람을 위해 최대한 자세히 설명해 보겠다.(설명이 다소 장황하고 틀릴 수도 있음😅) 묶음 단위로 .. 2023. 11. 25.
로컬에서 젠킨스로 블루/그린 무중단 배포 테스트하기 (1) - 젠킨스 설치, 스프링 부트 서버 세팅 💡 이 글에서 테스트해 볼 내용은 nginx + jenkins + springboot + github를 사용하여 프로젝트 서버의 배포 자동화 및 무중단 배포를 로컬 환경에 구현하는 것이다. 📌 젠킨스 설치 로컬에서 젠킨스를 설치하는 방법은 간단하다. https://www.jenkins.io/ 위 링크에 접속하여 다운로드를 클릭한다. 그럼 젠킨스를 다운로드 할 수 있는 페이지가 나오는데 각 운영체제나 컨테이너 환경에서 맞는 걸 클릭하면 다운로드하는 방법이 나온다. MAC을 기준으로 설명하면 macOS를 클릭한다. 그럼 이렇게 Homebrew로 다운로드하는 방법이 나온다. brew install jenkins brew services start jenkins 처음 설치라면 위 두 명령어로 간단히 설치하고 실.. 2023. 11. 24.
728x90