[정리] 기능별 개념 정리/Kubernetes(25)
-
쿠버네티스 입문 - 02 - 컨트롤러 6 - 크론잡
크론잡 잡을 시간 기준으로 관리하도록 생성한다. 시간을 지정할 때는 리눅스, 유닉스의 cron 명령어 옵션 형식을 그대로 사용한다. 크론잡 Sample apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello-concurrency spec: schedule: "*/1 * * * *" startingDeadlineSeconds: 600 concurrencyPolicy: Forbid jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo Hello from the Kubernetes cluster; sleep 600..
2020.04.04 -
쿠버네티스 입문 - 02 - 컨트롤러 5 - 잡
잡 실행된 후 종료해야 하는 성격의 작업을 실행 시킬 때 사용하는 컨트롤러이다. 특정 개수의 파드를 정상적으로 실행 종료한다는 것을 보장 할 수도 있다. 잡 Sample apiVersion: batch/v1 kind: Job metadata: name: pi spec: template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never backoffLimit: 4 .spec.backoffLimit : 잡 실행이 실패했을 때 최대 몇번까지 재시작할 것인지 설정한다. .spec.parallelism : 잡 하나에 몇개의 파드를 동시에 실행할..
2020.04.04 -
쿠버네티스 입문 02 - 컨트롤러 4 - 스테이트풀셋
스테이트풀셋 상태가 있는 파드들을 관리하는 컨트롤러이다. 볼륨과 같이 특정 데이터를 저장한 후 파드를 재시작했을 때 해당 데이터를 유지한다. 스테이트풀셋 Sample apiVersion: v1 kind: Service metadata: name: nginx-statefulset-service labels: app: nginx-statefulset-service spec: ports: - port: 80 name: web clusterIP: None selector: app: nginx-statefulset-service --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: template: metadata: labels: app: ngi..
2020.04.04 -
쿠버네티스 입문 - 02 - 컨트롤러 3 - 데몬셋
데몬셋 클러스터 전체 노드에 어떤 파드를 반드시 하나씩 설치해야하는 경우에 사용하는 컨트롤러. 클러스터에 새로운 노드가 설치되면 데몬셋이 동작하여 자동으로 해당 노드에 파드를 실행시켜준다. 클러스터에서 노드가 제거 될 경우 해당 노드에서 실행중이던 데몬셋 파드는 다른 노드로 이동하지 않고 그대로 사라진다. 주로 로그 수집기를 실행하거나 노드를 모니터링 해야하는 데몬이 필요한 경우에 사용된다. 데몬셋 Sample apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd-elasticsearch namespace: kube-system labels: k8s-app: fluentd-logging spec: selector: matchLabels: name: f..
2020.04.04 -
쿠버네티스 입문 - 02 - 컨트롤러 2 - 디플로이먼트
디플로이먼트 쿠버네티스에서 상태가 없는 앱을 배포할 때 사용하는 가장 기본적인 컨트롤러이다. 실행 시켜야할 파드 개수를 유지하는 것 뿐만 아니라 롤링 업데이트, 앱 배포 pause, resume, rollback 등의 동작을 할 수 있다. 디플로이먼트도 내부적으로는 Replica set 을 만들어서 구현된다. 디플로이먼트 Sample apiVersion: extensions/v1beta1 kind: Deployment metadata: name: myDeployment labels: app: myDeployment annotations: kubernetes.io/change-cause: version 1.10.1 spec: template: metadata: labels: app: myDeployment..
2020.04.04 -
쿠버네티스 입문 - 02 - 컨트롤러 1 - 레플리카셋
레플리카셋 클러스터 안에서 지정한 숫자 만큼 파드가 유지되도록 관리한다. 레플리케이션 컨트롤러를 대체하는 컨트롤러다. 레플리케이션 컨트롤러는 셀렉터가 등호기반(같거나 다르거나)이다. 레플리카 셋은 셀렉터가 집합기반(in, notin, exists 등이 추가)이다. 레플리카 셋은 파드를 선택하는 기준이 레이블 기준으로 관리하므로 레플리카셋과 파드는 느슨한 결합이되어있다. 즉 설정을 통해 레플리카 셋이 생성한 파드는 유지한 채 레플리카셋만 제거할 수도 있다. 또한 레플리카셋이 생성한 파드중 하나를 kubectl edit 하여 레이블을 레플리카셋의 selector 가 찾을 수 없게 바꾸면, 레플리카셋은 해당 파드를 유실했다 판단하고 갯수를 유지하기 위해 새로운 파드를 만든다. 레플리카셋 Sample apiVe..
2020.04.04