
Kubernetes ServiceKubernetes Service는 Kubernetes 클러스터 내에서 실행 중인 애플리케이션을 네트워크를 통해 접근할 수 있도록 하는 추상화된 방법이다. Service는 여러 Pod에 걸쳐 로드 밸런싱을 제공하고, Pod의 IP 주소가 변경되더라도 안정적인 네트워크 엔드포인트 즉, 동일한 서비스를 제공하는 Pod 그룹의 단일 진입점을 제공한다 Kuberntes에서 제공하는 Service는 총 4가지 종류가 있다.ClusterIP: 기본 서비스 유형으로, 클러스터 내부에서만 접근 가능NodePort: 클러스터 외부에서 접근할 수 있도록 각 노드의 특정 포트를 열어준다LoadBalancer: 클라우드 제공자의 로드 밸런서를 사용하여 외부 트래픽을 분산시킨다.ExternalN..

DeploymentKubernetes Deployment는 애플리케이션의 인스턴스를 관리하고 업데이트하는 데 사용되는 Kubernetes 리소스이다. Deployment는 애플리케이션의 상태를 선언적으로 관리할 수 있게 해주며, 원하는 상태를 Kubernetes 시스템에 선언하면, Kubernetes가 현재 상태를 원하는 상태로 변경하기 위해 작업한다. 이를 통해 애플리케이션의 배포, 스케일링 및 업데이트를 자동화할 수 있다. Deployment는 다음과 같은 주요 기능을 제공한다.Rollout & Rollback: Deployment는 애플리케이션의 새 버전을 롤아웃할 때 이전 버전으로 롤백할 수 있는 기능을 제공하며, 이를 통해 안정적인 업데이트와 버그 수정이 가능하다.Scaling: Deploym..
kubernetes controllerKubernetes 컨트롤러는 Kubernetes 시스템의 핵심 구성 요소로, 원하는 상태(desired state)를 현재 상태(current state)와 일치시키기 위해 지속적으로 작업을 수행한다. 컨트롤러는 클러스터 내의 리소스 상태를 관찰하고, 필요한 경우 조정 작업을 수행하여 원하는 상태를 유지한다. Kubernetes에는 여러 종류의 내장 컨트롤러가 있으며, 각각 특정 종류의 리소스를 관리한다.예를들어, ReplicaSet: 지정된 수의 파드 복제본이 항상 실행되도록 보장한다.Deployment: 애플리케이션의 업데이트와 롤백을 관리한다. ReplicaSet을 사용하여 파드의 원하는 수를 유지 관리한다.StatefulSet: 순서가 지정된 파드 집합을 관..
Liveness probeKubernetes의 Liveness Probe는 컨테이너가 실행 중인지 확인하는 메커니즘이다.Pod의 Spec에서 정의할 수 있고 컨테이너가 정상적으로 작동하지 않아 복구가 필요한 경우, Kubernetes는 이를 자동으로 재시작할 수 있으며, Liveness Probe는 다음 세 가지 방법 중 하나를 사용하여 설정할 수 있다. HTTP GET Probe: 지정된 경로에 대해 HTTP GET 요청을 수행한. 응답 코드가 200에서 399 사이이면 성공으로 간주하고, 아니면 오류로 간주하고 컨테이너를 재시작한다.TCP Socket Probe: 지정된 포트에 TCP 연결을 시도하고 포트가 열려 있으면 성공으로 간주한다.Exec Probe: 컨테이너 내에서 지정된 명령을 실행합니다...

Namespace란?리소스를 논리적으로 나누기 위한 방법을 제공하는 것이라 할 수 있다.가령 지금까지 살펴봤던 Pod, Deployment, Service와 같은 여러 오브젝트들을 하나의 Namespace로 그룹핑 해서 함께 관리할 수 있다. (논리적 그룹핑!)Namespace의 단위는 사용자 목적에 맞추어 결정한다. 딱 이렇다할 정답이 있는 게 아니다. 가령 다음의 예시처럼 어떤 논리적 단위로 구분할지를 결정할 수 있는 것이다.팀 단위 Namespace환경 단위 Namespace서비스 단위 Namespace예를 들어, 같은 클러스터에서 여러 회사에 서비스를 제공하고 있는 상황이라면, 백화점에서 필요한 비즈니스 로직을 실행하는 오브젝트들은 백화점 namespace를 만들어서 관리하고, 항공사에서 필요한 ..

쿠버네티스 아키텍처 쿠버네티스 클러스터는 worker machines들의 집합으로 구성되고, worker machine들을 node라고 부른다. 노드는 컨테이너화된 앱을 실행할 수 있으며 클러스터는 적어도 하나의 node가 포함되어 구성되고, node가 호스팅하고 있는 컨테이너화 된 앱을 pod라고 하며, pods와 nodes들을 contorl plane이 관리하게 된다. 클러스터 (Cluster): 쿠버네티스 클러스터는 하나의 마스터 노드와 다수의 워커 노드로 구성된 컨테이너화된 애플리케이션을 실행하는 집합체이다.노드 (Node): 클러스터의 일부로, 실제 애플리케이션 워크로드가 실행되는 물리적 또는 가상 머신이다.마스터 (Master): 클러스터 전체를 제어하고 관리하는 노드이다. 스케줄링, 클러..

헷갈리는 컨테이너, 도커, 쿠버네티스 개념 정리 먼저 컨테이너부터 살펴보자. 컨테이너란, 우리가 구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서, 어디서든 쉽게 실행할 수 있도록 해 주는 기술이다.PC에 프로그램을 설치할 때를 떠올려보자. 특정 경로에 맞춰 설치를 해야 하거나, 내 컴퓨터에 필요한 옵션을 일일이 맞춰주느라 설치 과정에서 힘들었던 경험이 있을 텐데, 컨테이너는 이러한 환경까지 모두 포함하여 독립적으로 프로그램을 실행할 수 있도록 도와주는 기술이다. 컨테이너 환경을 묶어서 배포한 컨테이너 이미지라는 프로그램을 내려받아 구동하면 실행되기 때문에, 각종 설정 과정이 줄어 들어서 좀 더 편하게 사용할 수 있다.컨테이너를 사용할 때 필요한 도구가 컨테이너 런타임인데, 컨테이너를 쉽게 내려받..

앱 개발에 대한 고민 spring을 연습하면서 생긴 고민.. local로 서버를 run하고 테스트를 하던중 api는 만들었는데.. 이걸 프론트한테 어떻게 보내주지? 뭐.. build를 해서 jar파일을 만들고 그걸 프론트한테 보내준 후 프론트에서 서버 실행하라고 해야되나프론트가 jar파일을 실행해서 서버를 돌린후 ajax url에 requestmapping url과 매치시킨다음 response 받아오기 -> 성공->음.. 그러면 프론트에서 jar파일을 실행하는 건 결국 local로 하는 방법인데.. 내 서버에 프론트가 접속하는 방법은 없는건가?->가능은 하지만 내가 개발을 할때는 접속하지 못하므로 나는 서버를 켜놓고 프론트에서 api연동이 완료 될때까지 기다려야 한다.->나는 일정부분 기능을 만들어놓고 ..