본문 바로가기

반응형

Kubernetes

(62)
[Kubernetes] Service 개념과 종류 Service - 동일한 서비스를 제공하는 Pod 그룹의 단일 진입점을 제공 "파드들을 하나의 IP로 묶어서 관리" Service definitioin apiVersion: v1 kind: Service metadata: name: webui-svc spec: clusterIP: 10.100.100.100 selector: app: webui ports: - protocol: TCP port: 80 targetPort: 80 ClusterIP는 Pod의 단일 진입점 IP이고 생략 가능함 ClusterIP는 Virtual IP, 로드밸런서 IP라고도 불림 Service Tyep 1. ClusterIP(default) - Pod 그룹의 단일 진입점(Virtual IP) 생성 2. NodePort - Clus..
[Kubernetes] CronJob CronJob 이란? - 사용자가 원하는 시간에 JOB 실행 예약 지원 - job 컨트롤러로 실행할 Application Pod를 주기적으로 반복해서 실행 Linux의 cronjab의 스케줄링 기능을 Job Controller에 추가한 API 다음과 같은 반복해서 실행하는 Job을 운영해야 할 때 사용 1. Data Backup 2. Send email 3. Cleaning tasks - Cronjob Schedule : "0 3 1 * *" → " 매월 1일 3시 정각에 반복해서 실행" . Minutes (from 0 to 59) . Hours (from 0 to 23) . Day of the month (from 1 to 31) . Month (from 1 to 12) . Day of the week..
[Kubernetes] Job Controller Job 이란? - Kubernetes는 Pod를 running 중인 상태로 유지 - Batch 처리하는 Pod는 작업이 완료되면 종료됨 - Batch 처리에 적합한 컨트롤러로 Pod의 성공적인 완료를 보장 . 비정상 종료 시 다시 실행 . 정상 종료 시 완료 kubectl run testpod --image=centos:7 --command sleep 5 명령을 통해서 5초 후 종료 및 Running 으로 변경되는것을 확인 "쿠버네티스는 pod의 running 중인 상태를 보장" # kubectl run testpod --image=centos:7 --command sleep 5 pod/testpod created # kubectl get pods --watch NAME READY STATUS RESTA..
[Kubernetes] StatefulSet StatefulSet 이란? - Pod의 상태를 유지해주는 컨트롤러 . Pod 이름 . Pod의 볼륨(스토리지) rc-nginx.yaml apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: replicas: 3 selector: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 pod의 이름은 random hash 값으로 지정(fv24x, st9h1, xmvns) # kubectl create -f rc-nginx.yaml replicationcontr..
[Kubernetes] DaemonSet + RollingUpdate DaemonSet 이란? - 전체 노드에서 Pod가 한 개씩 실행되도록 보장 - 로그 수입기, 모니터링 에이전트와 같은 프로그램 실행 시 적용 daemonset-exam.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: daemonset-nginx spec: selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 daemonset-exam.yaml 실행시 노드마다 pod가 하나씩 실행 # kubectl create -f daemonset-exam..
[Kubernetes] RollingUpdate를 위한 Deployment Deployment - ReplicaSet을 컨트롤해서 Pod 수를 조절 - Rolling Update & Rolling Back ※ Rolliing Update 란? - 서비스 중단 없이 버전이 업데이트 되어 고객에게 서비스 제공 deploy-nginx.yaml 예제 apiVersion: apps/v1 kind: Deployment metadata: name: deploy-nginx spec: replicas: 3 selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 deploy-nginx.y..
[Kubernetes] ReplicaSet(ReplicationController와의 차이점은?) 쿠버네티스 pod 개수 보장 Replicaset - ReplicationController와 같은 역할을 하는 컨트롤러(Pod의 개수 보장) - ReplicationController 보다 풍부한 selector selector matchLabels: component: redis matchExpressions: - {key: tier, operator: In, values: [cache]} - {key: enviroment, operator: NotIn, values: [dev]} - matchExpressions 연산자 . In : key와 values를 지정하여 key, value가 일치하는 Pod만 연결 . NotIn : key는 일치하고 value는 일치하지 않는 Pod에 연결 . Exists : key에 맞는 label의..
[Kubernetes] ReplicationController란? Controller란 - Pod의 개수를 보장 Controller 종류 ReplicationController - 요구하는 Pod의 개수를 보장하며 파드 집합의 실행을 항상 안정적으로 유지하는 것을 목표 . 요구하는 Pod의 개수가 부족하면 template를 이용해 Pod를 추가 . 요구하는 Pod 수 보다 많으면 최근에 생성된 Pod를 삭제 - 기본구성 . selector . replicas . template apiVersoin: v1 kind: ReplicationController metadata: name: spec: replicas: selector: key: value template: ※ Pod 템플릿은 selector의 키: value label을 포함해야 한다. apiVersion: v..

반응형