✔️ Service Object의 개념 쿠버네티스에서의 Service는 Pod들의 집합이며 동일한 서비스 동작을 구현하는 여러가지 Pod를 묶어 하나로 관리하는 오브젝트이다. [Kubernetes] Object 개념 ✔️ Kubernetes 구성 쿠버네티스는 크게 오브젝트(Object)와 오브젝트를 관리하는 컨트롤러(Controller)로 나눠져 있다. 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가진다. 오브젝트를 nice-engineer.tistory.com ✔️ Service Object의 등장 배경 1. 서비스를 위한 고정 IP의 필요성 서버는 문제가 생기면 서버를 재시작하고 서비스를 재시작하지만 Pod는 문제가 생기면 그 Pod를 삭제한 뒤 새로운 Pod를 생성한다. 따라서 Pod의 IP..
✔️ Kubernetes 구성 쿠버네티스는 크게 오브젝트(Object)와 오브젝트를 관리하는 컨트롤러(Controller)로 나눠져 있다. 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가진다. 오브젝트를 생성하면 쿠버네티스는 원하는 상태를 보장하기 위해 지속적으로 작동한다. 쿠버네티스는 클러스터의 상태(Status)를 나타내기 위해 이 오브젝트를 이용한다. 거의 모든 쿠버네티스 오브젝트는 오브젝트 구성을 결정해주는 두개의 중첩된 오브젝트 필드인 status와 spec을 포함한다. status : 쿠버네티스 시스템과 컴포넌트에 의해 제공되고 업데이트된 오브젝트의 현재 상태를 설명 spec : 오브젝트의 특성으로 추구하는(Desired) 상태를 설명 컨트롤러는 status가 spec과 일치하도록 오브..
나의 반나절을 잡아먹은 "Error establishing a database connection" 에러 ...ㅠ 혹시나 같은 오류로 머리를 뜯고 있을 사람들에게 도움이 되고자 글을 작성한다. "Error establishing a database connection" 오류가 발생시 해결 방법에 대한 공식 문서는 다음과 같다. Common WordPress Errors If you are encountering a WordPress error message or white screen, don’t panic. Someone has likely encountered the same message before and it can easily be solved. This page lists the most c..
✔️ Workload란 ?! 워크로드란 쿠버네티스에서 구동되는 어플리케이션이다. 워크로드가 단일 구성 요소든 함게 작동하는 여러 구성 요소이든 상관없이 쿠버네티스에서는 Pod 세트 내에서 실행한다. 쿠버네티스 Pod에는 LifeCycle이 정의되어 있다. 예를 들어 클러스터에서 Pod가 실행 중에 그 Pod가 실행 중인 노드에 심각한 장애가 발생하면 해당 노드의 모든 Pod에 장애가 발생한다는 것을 의미한다. 노드가 나중에 정상 상태가 되더라도 복구하려면 새 Pod를 생성해야 한다. 그러나 Pod의 LifeCycle을 관리하기 위해 우리는 각 Pod를 직접 관리할 필요가 없다. 우리대신 Pod set을 관리하는 Workload Resources를 사용할 수 있다. ✔️ Workload Resources란..
AWS EKS 실습을 진행하면서 만났던 생소한 개념들을 정리하는 글. 하단 링크 글이 많은 도움이 되었다. [Kubernetes] 쿠버네티스 Pod 안녕하세요. 개발자 김모씨입니다. 쿠버네티스 시리즈를 이어가고 있죠. 혹시 이전 포스팅 '쿠버네티스 구조'를 아직 안 보신 분은 얼렁 다녀오세요~ artist-developer.tistory.com/31 안 artist-developer.tistory.com ✔️ Pod란 ? Pod란 쿠버네티스의 가장 기본적인 배포 단위이다. 마스터 노드에서는 워커 노드로 Pod를 전달하고 워커 노드에서는 Pod를 수행하는 구조이다. 한 개의 워커 노드에는 N개의 Pod들이 돌아가게 된다. 쿠버네티스는 컨테이너(Docker 등)를 개별적으로 배포하는 것이 아닌 Pod 안에 ..
EKS 구성을 완료했다면 드디어 ! 컨테이너를 배포해보자 배포한 어플리케이션의 전체 시스템 구성도는 다음과 같다. ✔️ Application 배포 Database 배포하기 만약 배포할 어플리케이션이 로컬 sqlite DB 대신 외부 RDBMS(maridDB, mysql 등) 리소스를 연동한 경우에는 쿠버네티스 위에 DB app을 배포해야한다. 배포를 위해 Deployment manifast 파일을 작성한다. 참고할 문서는 다음과 같다. 디플로이먼트 디플로이먼트(Deployment) 는 파드와 레플리카셋(ReplicaSet)에 대한 선언적 업데이트를 제공한다. 디플로이먼트에서 의도하는 상태 를 설명하고, 디플로이먼트 컨트롤러(Controller)는 현재 상태에서 의 kubernetes.io 디플로이먼트에서..