2020/04(34)
-
쿠버네티스 입문 - 04 - 인그레스
인그레스 인그레스는 클러스터 외부에서 안에 있는 파드로 접근할 때 사용된다. 인그레스는 클러스터 외부에서 안으로 접근할 때 요청을 어떻게 처리할지 정의해둔 규칙 모음이다. 인그레스 자체는 그냥 규칙을 정의해둔 자원이다. 인그레스 컨트롤러가 실제로 인그레스를 동작시킨다. 쿠버네티스에서 제공하는 공식적인 인그레스 컨트롤러는 ingress-gce, ingress-nginx 이다. 서비스와의 차이점은 주로 L7 영역의 통신을 담당해서 처리한다는 점이다. 인그레스 컨트롤러에서 파드로 직접 접근할 수도 있으므로 중간에 서비스를 생략하면 좀 더 좋은 성능을 낼 수 도 있다. 인그레스 샘플 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: test annota..
2020.04.04 -
쿠버네티스 입문 - 03 - 서비스
서비스 서비스는 여기저기 옮겨 다니는 여러개의 파드에 접근할 수 있는 하나의 IP를 제공한다. 본질적으로는 로드밸런서 역할이다. 인그레스와 비교되기도하는데 서비스는 L4 영역이라면 인그레스는 L7영역에서 통신할 때 사용된다. 서비스는 `서비스이름.default.svc.cluster.local` 과같은 FQDN 을 가진다. 서비스 타입 ClusterIP : 기본 서비스 타입이며 클러스터 내부에서만 사용할 수 있다. NodePort : 모든 노드의 지정된 포트는 이 서비스로 연결되게 한다. 클러스터 외부와 파드를 연결하는 가장 간단한 방법이다. LoadBalancer : 로드밸런서 장비를 사용하는 경우 로드밸런서와 파드를 연결하여 클러스터 외부에서 파드에 접근할 수 있게한다. ExternalName : 클러..
2020.04.04 -
쿠버네티스 입문 - 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