728x90

분류 전체보기 79

Kubernetes 기초 - Label(4)

레이블이란워커 노드에 레이블 설정레이블과 애너테이션레이블을 이용한 카나리 배포                ←  오늘 볼 내용4. 레이블을 이용한 카나리 배포카나리 배포는 '카나리아' 라는 새의 이름을 따서 만들어졌다.카나리아는 유독가스에 굉장히 민감해서 탄광에 함께 데리고 들어가던 새로 유명하다.유독가스가 많이 누출되어 사람이 느끼게 되면 굉장히 위험한 상태가 되지만 카나리아는 그 보다 먼저 반응하여 죽기 때문에 위험을 사전에 인지한다는 의미로 사용되었다. 카나리 배포라고 이름이 붙은 이유도 위와 비슷하다.실제 카나리 배포는 일부 버전만 신규로 올렸다가 성능이나 안정성에 이상이 없으면 새로운 버전을 점진적으로 더 많은 사용자에게 릴리즈하거나, 문제가 발생하면 빠르게 롤백한다. Canary 배포 : 기존 ..

Kubernetes 2023.12.22

Kubernetes 기초 - Label(3)

레이블이란워커 노드에 레이블 설정레이블과 애너테이션               ←  오늘 볼 내용레이블을 이용한 카나리 배포3. 애너테이션(Annotation)어노테이션이라고도 불리는데 발음 상 애너테이션이 맞긴하다.아무래도 상관은 없다.애너테이션의 특징은 다음과 같다.Label과 동일하게 Key-Value를 통해 리소스의 특성을 기록Kubernetes 에게 특정 정보를 전달할 목적으로 사용Deployment의 RollingUpdate 정보 기록annotations:    kubernetes.io/change-cause: version 1.15관리를 위해 필요한 정보를 기록할 용도로 사용릴리즈, 로깅, 모니터링에 필요한 정보들을 기록annotations:    builder: "Lee (abc1234@gm..

Kubernetes 2023.12.22

Kubernetes 기초 - Label(2)

레이블이란워커 노드에 레이블 설정               ←  오늘 볼 내용레이블과 애너테이션레이블을 이용한 카나리 배포2. 워커 노드에 레이블(Label) 설정레이블을 설정할 때 워커 노드에도 설정할 수 있다.파드나 다른 리소스 API에 레이블을 설정하면 되지 왜 굳이 노드에 레이블을 설정할까?각 노드는 다른 조건의 하드웨어 환경을 가질 수도 있다.쿠버네티스는 하드웨어 시스템 환경까지 정보를 가지고 있지 않다.만약 머신러닝 프로그램이 들어있는 파드를 배포한다고 가정했을 때 GPU를 가진 노드에 배포하면 좋을 것이다.이 때 GPU를 가진 노드에 레이블을 설정해 놓으면 파드를 배포할 때 적절한 환경을 지닌 노드에 배포할 수 있게 된다.쿠버네티스에게 이러한 물리 시스템 환경 등의 정보를 레이블을 통해 미리..

Kubernetes 2023.12.21

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
728x90