728x90

Kubernetes 60

Kubernetes 기초 - Label(1)

레이블이란              ←  오늘 볼 내용워커 노드에 레이블 설정레이블과 애너테이션레이블을 이용한 카나리 배포1. 레이블(Label)이란Node를 포함하여 pod, deployment 등 모든 리소스에 할당리소스의 특성을 분류하고, Selector를 이용해서 선택Key-value 한쌍으로 적용Pod tamplatePod + Label tamplateapiVersion: v1kind: Podmetadata:  name: appjs-podspec:  containers:  - name: appjs-container     image: smlinux/appjs    ports:    - containerPort: 8080apiVersion: v1kind: Podmetadata:  name: appj..

Kubernetes 2023.12.21

Kubernetes 기초 - Ingress(1)

Ingress 란             ←  오늘 볼 내용Ingress Controller 설치             ←  오늘 볼 내용실습1. Ingress 란인그레스(Ingress)도 API 중에 하나다.쿠버네티스에서 HTTP나 HTTPS를 통해 클러스터 내부의 서비스를 외부로 노출하는 역할을 한다.인그레스의 기능은 다음과 같다.Service에 외부 URL을 제공 : 인그레스를 사용하면 클러스터 외부에서 특정 URL 또는 도메인으로 들어오는 트래픽을 쿠버네티스 내부의 서비스로 라우팅할 수 있다.트래픽을 로드밸런싱 : 인그레스는 백엔드 서비스에 대한 트래픽 로드 밸런싱을 제공한다. 여러 백엔드 서비스로 들어오는 트래픽을 분산하여 서비스의 가용성과 성능을 향상시킬 수 있다.SSL 인증서 처리 : 인그레스..

Kubernetes 2023.12.20

Kubernetes 기초 - Service(3)

서비스 개념서비스 타입서비스 사용하기헤드리스 서비스             ←  오늘 볼 내용kube-proxy             ←  오늘 볼 내용4. 헤드리스(Headless) 서비스헤드리스 서비스(Headless Service)는 쿠버네티스에서 제공하는 서비스 유형 중 하나로, 일반적인 클러스터IP 서비스와는 달리 Cluster IP를 부여하지 않는다.헤드리스 서비스는 주로 파드의 이름이 보존되는 StatefulSet과 함께 사용되며, 각각의 Pod에 고유한 DNS 이름을 부여하여 서비스를 구성한다.ClusterIP가 없는 서비스로 단일 진입점이 필요 없을 때 사용Service와 연결된 Pod의 Endpoint로 DNS 레코드가 생성됨(coreDNS에서 확인 가능)Pod들의 Endpoint에 DN..

Kubernetes 2023.12.19

Kubernetes 기초 - Service(2)

서비스 개념서비스 타입서비스 사용하기            ←  오늘 볼 내용헤드리스 서비스kube-proxy3. 서비스 사용하기ClusterIPselector의 label이 동일한 파드들의 그룹으로 묶어서 단일 진입점(Virtual IP)을 생성클러스텉 내부에서만 사용 가능type 생략 시 default 값으로 10.96.0.0/12 범위에서 할당됨 아래의 ClusterIP 서비스 yaml 구문에서 type과 clusterIP는 생략해도 상관없다.쿠버네티스는 기본적으로 type을 명시하지 않으면 ClusterIP로 생성하고 clusterIP를 지정하지 않으면 10.96.0.0/12 대역에서 랜덤으로 할당하여 생성한다. clusterip-nginx.yaml# clusterip-nginx.yamlapiVer..

Kubernetes 2023.12.19

Kubernetes 기초 - Service(1)

서비스 개념           ←  오늘 볼 내용서비스 타입           ←  오늘 볼 내용서비스 사용하기헤드리스 서비스kube-proxy1. 서비스 개념쿠버네티스에서의 서비스(Service)는 동일한 서비스를 제공하는 파드 그룹에 대한 단일 진입점을 제공하는 추상화다. 예를 들어 app: webui라는 레이블을 가진 파드가 3개의 각 노드에 하나씩 배포되어있다고 가정해보자.쿠버네티스 서비스를 통해 각 파드를 하나로 묶어서 랜덤의 가상의 IP를 생성할 수 있다.가상의 IP는 마치 로드밸런서와 같은 역할로서 3개의 파드를 묶은 단일 진입점이라고 할 수 있다.그래서 가상 IP를 로드밸런서 IP라고도 한다.만약 파드의 replicas가 증가하여 scale out되는 경우도 쿠버네티스는 새로 배포된 파드의..

Kubernetes 2023.12.18

Kubernetes 기초 - Controller(7)

ReplicationControllerReplicaSetDeploymentDaemonSetStatefulSetJobCronJob          ←  오늘 볼 내용7. CronJobCronJob은 쿠버네티스에서 주기적으로 실행되는 작업을 정의하는 리소스다.즉, 시간 기반으로 일정한 주기로 반복되는 작업을 스케줄링하는 데 사용된다.이는 Linux/Unix 시스템에서 사용되는 cron 서비스와 유사한 개념이다. 쉽게 말하자면 사용자가 원하는 시간에  Job 실행을 예약할 수 있도록 지원해주는 것이 CronJob이다.  CronJob Schedule : " 0 3 1 * * "   ←  순서대로 다음과 같다. " 분 시 일 월 요일 "Minutes (from 0 to 59)Hours (from 0 to 23)..

Kubernetes 2023.12.15

Kubernetes 기초 - Controller(6)

ReplicationControllerReplicaSetDeploymentDaemonSetStatefulSetJob         ←  오늘 볼 내용CronJob6. JobJob 컨트롤러는 쿠버네티스에서 일회성 작업을 수행하는데 사용되는 컨트롤러다.주로 한 번 실행되고 완료되면 종료되는 작업에 사용된다.Job은 성공 또는 실패한 작업을 트래킹하고, 성공적으로 완료된 경우에는 파드를 종료한다.  파드는 일련의 프로세스 동작이 마무리가 되면 파드를 종료된다.하지만 쿠버네티스는 기본적으로 파드를 Running 상태로 유지하려고 하는 특성에 의해 파드가 종료되더라도 재시작한다.# 5초 멈췄다가 종료되는 파드kubectl run test --image=centos:7 --command sleep 5  하지만 Jo..

Kubernetes 2023.12.15

Kubernetes 기초 - Controller(5)

ReplicationControllerReplicaSetDeploymentDaemonSetStatefulSet         ←  오늘 볼 내용JobCronJob5. StatefulSetStatefulSet은 쿠버네티스에서 제공하는 컨트롤러 중 하나로, 상태를 가지는 애플리케이션을 관리하는 데 사용된다.즉, Pod의 이름이나 볼륨(스토리지) 등의 상태를 유지해주는 역할을 한다.주로 데이터베이스나 메시지 큐와 같은 서비스에 적합하다. StatefulSet의 특징고유한 식별자 : 각 파드에 고유한 식별자가 할당되어 순차적으로 증가하며 관리됩니다. 이는 파드가 삭제되거나 실패한 경우에도 같은 식별자를 유지하는 데 도움이 됩니다.안정적인 네트워크 식별자 : StatefulSet은 각 파드에 안정적인 DNS 이름..

Kubernetes 2023.12.14

Kubernetes 기초 - Controller(4)

ReplicationControllerReplicaSetDeploymentDaemonSet        ←  오늘 볼 내용StatefulSetJobCronJob4. DaemonSetDaemonSet은 쿠버네티스에서 런타임 환경이나 로그 수집과 같은 특정한 작업을 클러스터의 모든 노드에 분산하여 실행할 때 사용되는 리소스다.각 노드에 하나의 파드가 실행되도록 보장하여 클러스터 전체에서 특정한 서비스나 작업을 유지할 수 있도록 도와준다. DaemonSet이 관리하는 파드는 노드의 상태에 따라 자동으로 생성되거나 삭제되어 노드가 추가되거나 제거될 때 자동으로 조정된다.  DaemonSet의 주요 특징클러스터 전체에 특정한 서비스 제공 : 모든 노드에 특정한 서비스, 데몬, 에이전트 등을 배포하고자 할 때 사용..

Kubernetes 2023.12.14

Kubernetes 기초 - Controller(3)

ReplicationControllerReplicaSetDeployment        ←  오늘 볼 내용DaemonSetStatefulSetJobCronJob3. DeploymentDeployment은 쿠버네티스에서 애플리케이션을 배포하고 관리하기 위한 리소스 오브젝트 중 하나다.주로 파드를 관리하는데 사용되며, 쿠버네티스 클러스터에서 어플리케이션의 업데이트, 롤백, 스케일링 등을 쉽게 처리할 수 있게 해준다.Deployment는 Rolling update를 목적으로 만들어졌으며 이전에 본 ReplicaSet의 상위 오브젝트다. Rolling update : 파드 인스턴스를 점진적으로 새로운 것으로 업데이트하여 디플로이먼트 업데이트가 서비스 중단 없이 이루어질 수 있도록 해주는 것 Deployment ..

Kubernetes 2023.12.14
728x90