[Kubernetes] Pod - LifeCycle
·
Infra/Kubernetes
오랜만에 `K8s` 공부를 다시 시작했다. 인프런의 일프로님의 강의를 보며 학습을 이어간다. 거두절미하고 `Pod`의 라이프사이클에 관해 정리한 내용을 포스팅하려 한다. Pod - LifeCycle`Pod`에는 라이프사이클이 존재하고 어떤 `Pod`든 생성되고 사라지기까지 일정한 단계를 거치게 된다. 그리고 `Pod` 라이프사이클의 특징은 각 단계에 따라 행해지는 행동이 다르기에 라이프사이클에 대해 잘 알아야 한다. `Pod` 라이프사이클 핵심 간단 정리PendingReadinessProbePolicyRunningLivenessProbeQosSucceededPolicyFailedUnknown 아래 사진은 `Pod`의 라이프사이클과 관련 요약이라고 생각하면 편할 것이다.  Pending -> Running..
[Flyway] Flyway 사용 시 함께 알면 좋은 것들 With 스프링부트
·
Infra
`Flyway`를 스프링부트 프로젝트에 적용해 사용하고 있다. 스프링부트에서 `Flyway`를 사용할 때 알아두면 좋은 것들에 관해 정리하고자 한다. 초기 작업 build.gradleimplementation 'org.flywaydb:flyway-core' 초기 스프링 프로젝트 생성 시 `flyway migration`을 선택하여 위와 같은 의존성이 등록된다. 그리고 나는 프로젝트에서 `postgresql`을 사용하기 때문에 아래 의존성도 추가해주었다.implementation 'org.flywaydb:flyway-database-postgresql'  db별 `Flyway` 구현체가 다름에 주의하자. 다음으로, `Flyway` 마이그레이션 파일 위치도 설정해주어야 한다. 기본 경로는 `resources..
[Flyway] Flyway - database migration tool
·
Infra/Flyway
1. Flyway 소개 우선, `Flyway` 공식 홈페이지에서는 `Flyway`를 다음과 같이 정리하고 있다."Flyway is an open-source database migration tool" 해석하자면 오픈 소스로 누구나 사용할 수 있는 데이터베이스 마이그레이션 툴이다. 여기서 데이터베이스 마이그레이션 툴?이 무슨 의미일까? 본래 데이터베이스 마이그레이션이라는 말은 한 데이터베이스에서 다른 데이터베이스로 이동하는 것을 의미한다.  하지만, `Flyway`에서는 모든 데이터베이스의 변경을 마이그레이션이라고 칭하고 있다.즉, `Flyway`에서 데이터베이스 마이그레이션 툴이란 데이터베이스 변경 관리도구가 된다.  마치, 소스코드 변경을 관리하는 깃허브처럼 데이터베이스의 변경은 flyway가 관리하..
분산 시스템에서 데이터를 전달하는 효율적인 방법 - 2
·
Infra/DevOps
2024.09.19 - [Infra/DevOps] - 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 1 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 1이번 포스팅에서는 NHN 유튜브의 분산 시스템에서 데이터를 전달하는 효율적인 방법 강의를 보고 정리한 내용이다.  포스팅에서 다룰 내용데이터 전달 보장 방법론RDB를 사용하는 애플리케이션hdbstn3055.tistory.com 이전 글과 이어지는 내용이다. 우리는 앞서 RDB를 사용하는 애플리케이션에서 전달 방법을 알아보았다. 이번 포스팅에서는 RabbitMQ를 사용한 전달 방법과 Kafka를 사용한 전달 방법에 관해 알아본다.  RabbitMQ를 사용한 전달 방법RabbitMQAMQP(Advanced Message Queuing Protoco..
분산 시스템에서 데이터를 전달하는 효율적인 방법 - 1
·
Infra/DevOps
이번 포스팅에서는 NHN 유튜브의 분산 시스템에서 데이터를 전달하는 효율적인 방법 강의를 보고 정리한 내용이다.  포스팅에서 다룰 내용데이터 전달 보장 방법론RDB를 사용하는 애플리케이션에서 전달 방법RabbitMQ를 사용한 전달 방법Kafka를 사용하는 애플리케이션의 전달 방법 분산 시스템이란?목표를 달성하기 위해 여러 개의 컴퓨터 리소스를 사용하는 시스템시스템은 두 개 이상의 컴포넌트로 구성되어 있다.엔터프라이즈 애플리케이션마이크로 서비스 아키텍처 애플리케이션모놀리식 아키텍처 애플리케이션 + 검색엔진네트워크를 사용하여 컴포넌트 간의 기능을 통합분산 시스템은 네트워크를 사용한다는 것이 특징 데이터를 전달하는 방법Remote APIMessageQueue 1. Remote API를 사용한 데이터 전달서버-..
[Kubernetes] Replication Controller, ReplicaSet - Template, Replicas, Selector
·
Infra/Kubernetes
Kubernetes  이번 포스팅에서는 컨트롤러에 대해 알아볼 것이다. `Kubernetes`의 컨트롤러는 여러 기능을 통해 서비스를 관리하고 운영하는데 큰 도움을 준다.  Auto Healing노드 위에 `Pod`가 있는데 해당 `Pod`가 갑자기 다운되던가 아니면 해당 `Pod`가 스케줄링 되어있는 노드가 다운되면해당 `Pod`에서 돌아가던 서비스에 장애가 온 것이다.이때, `Controller`는 이걸 즉각적으로 인지하고 `Pod`를 다른 노드에 새로 만들어준다.이걸 `Auto Healing` 기능이라고 한다. Auto Scaling`Pod`의 리소스가 리미트 상태가 됐을 때 `Controller`는 이 상태를 파악하고 `Pod`를 하나 더 만들어준다.즉, 부하가 분산되며 `Pod`가 죽지 않도록 ..