Kubernetes 25

서비스 API 카테고리(Headless)

서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - 그 외 서비스 기능 - Headless (None) - ExternalName - None-Selector - 인그레스 Headless (None) 클라이언트가 Pod 1개가 아니라 모든 Pod 들과 통신해야 한다면요? 만약 같은 서비스 아래에 있는 Pod A 와 Pod B 가 서로 통신해야 한다면요? 다행히도, Kubernetes 는 클라이언트에게 Pod IP 리스트를 알려주는 방법을 DNS Lookup 을 통해 제공합니다. 보통의 서비스: Service의 DNS Lookup은 IP 주소 ..

Kubernetes 2024.02.11

서비스 API 카테고리(세션 어피니티)

서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - 그 외 서비스 기능 - Headless (None) - ExternalName - None-Selector - 인그레스 Session Affinity 서비스에서 세션 어피니티(세션 선호도)를 활성화할 수 있다. 예를 들어, ClusterIP 서비스에서 활성화한 경우, 파드에서 ClusterIP로 보내진 트래픽은 서비스에 연결된 어느 하나의 파드에 전송된 후 다음 트래픽도 계속 같은 파드에 보내진다. 상태(STATE) - 사용자가 로그인했는가? 그럼 해당 서비스를 이용할 수 있는 권한이 있다...

Kubernetes 2024.02.11

서비스 API 카테고리(LoadBalancer)

서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 LoadBalancer 쿠버네티스 클러스터 외부의 로드밸런서에 외부 통신이 가능한 가상 IP를 할당할 수 있다. GCP/AWS/Azure/OpenStack을 비롯한 클라우드 프로바이더가 LoadBalancer 서비스를 사용할 수 있는 환경을 제공하고 있다. NodePort나 ExternalIP는 하나의 쿠버네티스 노드에 할당된 IP주소로 통신하기 때문에 그 노드가 단일 장애점(SPoF)가 되어버린..

Kubernetes 2024.02.08

서비스 API 카테고리(ExternalIP, NodePort)

서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 ExternalIP ClusterIP 클러스터 내부 로드밸런서의 리스너 포트와 대상 서버의 포트 지정 으로 부하분산 ExternalIP 클러스터 외부(노드)의 IP 및 리스너 포트 그리고 클러스터 내부 로드밸런서의 리스너 포트와 대상 서버의 포트 지정 근데 보통 노드에 안붙이고 클라우드의 로드밸런서 IP로 붙으려 한다. NodePort ExternalIP는 지정한 쿠버네티스 노드의 IP 및 리스너..

Kubernetes 2024.02.07

서비스 API 카테고리(ClusterIP)

작성중... 서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 쿠버네티스 클러스터 네트워크와 서비스 파드 # 쿠버네티스 API에 접속할 수 있도록 쿠버네티스 서비스가 생성됨 $ kbuectl get services NAME TYPECLUSTER-IPEXTERNAL-IPPORT(S) AGE kubernetes ClusterIP10.3.240.1 443/TCP 5d10h sample-clusterip ClusterIP 10.3.251.192 8080..

Kubernetes 2024.01.20

서비스 API 카테고리(서비스)

참고 사이트: https://computing-jhson.tistory.com/106 작성중.. 서비스 API 카테고리 컨테이너를 외부에 공개하는 엔드포인트를 제공하는 리소스 - 서비스 - ClusterIP - ExternalIP (ClusterIP의 한 종류) - NodePort - LoadBalancer - Headless (None) - ExternalName - None-Selector - 인그레스 쿠버네티스 클러스터 네트워크와 서비스 파드 내부에는 여러 컨테이너가 존재할 수 있고, 같은 파드 내 컨테이너들은 동일한 IP 주소를 할당받는다. 따라서 같은 파드의 컨테이너로 통신하려면 localhost로 통신하고, 다른 파드에 있는 컨테이너와 통신하려면 파드의 IP 주소로 통신한다. 쿠버네티스 클러스..

Kubernetes 2024.01.20

워크로드 API 카테고리(크론잡)

워크로드 API 카테고리 컨테이너 실행에 관련된 리소스 - 파드 - 레플리케이션 컨트롤러 - 레플리카셋 - 디플로이먼트 - 데몬셋 - 스테이트풀셋 - 잡 - 크론잡 크론잡(cronjob) 크론잡과 잡의 관계는 디플로이먼트와 레플리카셋의 관계와 비슷하다. 즉, 크론잡이 잡을 관리, 잡이 파드를 관리하는 3계층 구조라고 할 수 있다. 크론잡 생성 spec.schedule에는 Cron과 같은 형식으로 시간을 지정할 수 있다. apiVersiion: batch/v1beta1 kind: CronJob metadata: name: sample-cronjob spec: schedule: "*/1 * * * *" concurrencyPolicy: Allow startingDeadlineSeconds: 30 succes..

Kubernetes 2024.01.20

워크로드 API 카테고리(잡)

워크로드 API 카테고리 컨테이너 실행에 관련된 리소스 - 파드 - 레플리케이션 컨트롤러 - 레플리카셋 - 디플로이먼트 - 데몬셋 - 스테이트풀셋 - 잡 - 크론잡 잡 잡(job)은 컨테이너를 사용하여 한 번만 실행되는 리소스이다. N개의 병렬로 실행하면서 지정한 횟수의 컨테이너 실행(정상 종료)을 보장하는 리소스이다. 레플리카셋과 잡과의 차이 잡은 기동 중인 파드가 정지되는 것을 전제로 만들어짐 잡 생성 apiVersion: batch/v1 kind: Job metadata: name: sample-job spec: completions: 1 parallelism: 1 backoffLimit: 10 template: spec: containers: - name: tools-container image:..

Kubernetes 2024.01.14

워크로드 API 카테고리(스테이트풀셋)

참고 사이트: https://yeoulcoding.me/239 워크로드 API 카테고리 컨테이너 실행에 관련된 리소스 - 파드 - 레플리케이션 컨트롤러 - 레플리카셋 - 디플로이먼트 - 데몬셋 - 스테이트풀셋 - 잡 - 크론잡 스테이트풀셋 스테이트풀셋은 레플리카셋의 특수한 형태라고 할 수 있는 리소스이다. 데이터베이스 등과 같은 스테이트풀(stateful)한 워크로드에 사용하기 위한 리소스이다. 레플리카셋과의 차이점 생성된 파드명의 접미사는 인덱스가 부여된 것임 sample-statefulset-0, sample-statefulset-1, ... (파드명 바뀌지 않음) 데이터를 영구적으로 저장하기 위한 구조로 되어있음 Stateful vs Stateless stateless한 서비스 (웹, 앱) stat..

Kubernetes 2024.01.13

워크로드 API 카테고리(데몬셋)

워크로드 API 카테고리 컨테이너 실행에 관련된 리소스 - 파드 - 레플리케이션 컨트롤러 - 레플리카셋 - 디플로이먼트 - 데몬셋 - 스테이트풀셋 - 잡 - 크론잡 데몬셋 데몬셋은 레플리카셋의 특수한 형태이다. 레플리카셋은 각 노드의 상황에 맞게 파드를 배치한다. 모든 노드에 반드시 배치되는 것이 아니고 각 노드의 파드 수가 동일하지도 않다. 그러나 데몬셋은 각 노드에 파드를 하나씩 배치하는 리소스다. 따라서 데몬셋은 레플리카 수를 지정할 수 없고 하나의 노드에 두 개의 파드를 배치할 수 없다. 다만 파드를 배치하고 싶지 않은 노드가 있으면 예외처리(nodeSelector, node AntiAffinity) 할 수 있다. 노드를 늘렸을 때도 데몬셋의 파드는 자동으로, 늘어난 노드에서 기동된다. 그래서 데..

Kubernetes 2024.01.13