전체 글114 [Kubernetes] Storage - StorageClass Storage를 계속 이어나가 이번 포스팅에서는 StorageClass에 대해 알아보려고 한다. StorageClass기존에는 관리자가 PersistentVolume을 개발자(사용자)로 부터 요청을 받을 때마다 생성을 해 주었다. 그런데 k8s에서는 이 작업을 StorageClass를 통해 자동으로 수행 할 수 있다. 즉, 관리자는 PersistentVolume을 여러 개 만드는 대신 Profile(또는 MetaClass)과도 같은 Storage Object을 정의하여 사용자로 하여금 Storage Object를 사용하게 하는 것이다.그림 1. StorageClass 글로만 이해하기 어려우니 그림 1을 확인해보자. 개발자가 PersistentVolumeClaim을 생성할 때 이전에는 직접적으로 Persi.. 2019. 4. 21. [Kubernetes] Storage - PersistentVolume 이전 포스팅에서는 Volume의 emptyDir과 hostPath에 대해 알아보았다.(https://timewizhan.tistory.com/entry/Kubernetes-Volume?category=1035066) 그리고 이번 포스팅은 지난 번을 이어서 PersistentVolume에 대해 알아보려고 한다. PersistentVolume (PV)PersistentVolume은 기존에 알아보았던 Volume과는 개념적으로 조금 다르다. (물론 이름이 Persistent 이기 때문에 영구적이라고 생각할 수 있겠지만 일반적인 Volume* 타입에서도 영구적으로 Volume을 만들 수 있다.)* 매니페스트 파일에서 kind가 PersistentVolume 타입이 아닌 것일반적인 Volume은 Volume을 생.. 2019. 4. 21. [Kubernetes] Storage - Volume 이번 포스팅에서는 k8s의 Volume에 대해 알아보려고 한다. VolumeVolume을 간단히 정의하면 Pod의 Container에서 접근하여 데이터를 저장할 수 있는 디렉토리이다. (참고로 Docker에서도 Volume을 디렉토리로 정의한다.)Container에서 접근한다는 의미를 좀 더 이해하기 쉽게 하기 위해 아래 그림을 참조한다.그림 1. Volume 그림 1을 확인해보면 Pod 내의 각 Container가 Volume을 참조하는 것을 확인 할 수 있다. (File Puller는 Volume에 Write, Web Server는 Volume을 Read)이렇듯 Volume이 존재하는 이유는 다음과 같다.1) Container 그 자체는 영구적인 리소스가 아니다.Container는 언제든 문제가 발생.. 2019. 4. 21. [Kubernetes] Logging Logging은 시스템(또는 어플리케이션)에서 필수적이다. (Debugging 및 Monitoring 등등의 목적으로)일반 어플리케이션 환경처럼 Container 환경에서도 Logging이 사용되며 가장 일반적인 방식으로는 stdout, stderr과 같은 표준 입출력 스트림(Standard I/O Stream)을 활용하는 것이다. 하지만 해당 방식은 Container 환경에서는 부적절하다. 보통 Log가 컨테이너에 의존적이기 때문에 예를 들어 Pod, Node 등과 같은 Container 환경에 문제가 생겼을 때 Log에 접근하기가 쉽지 않다. (각 Container에 저장한 Log 파일이 손상되거나 사라질 수 있기 때문에)그래서 k8s에서는 Cluster Level Logging 방식을 취하고 있다... 2019. 4. 10. [Kubernetes] Monitoring k8s에서는 Container, Pod, Service와 같은 Cluster 내의 여러 리소스에 대해 Monitoring을 할 수 있다. 때문에 Monitoring 정보를 활용하여 각 리소스의 성능을 측정하고 Scale in-out을 할 수 있다. (+ 리소스 추가, 삭제 등)k8s에서는 Monitoring을 위한 여러 가지 솔루션이 존재한다. 그러나 이번 포스팅에서는 그 중 많이 사용하는 Heapster에 대해 알아보려고 한다. HeapsterHeapster는 k8s Cluster Monitoring 솔루션으로 Cluster의 모든 Node의 Metrics와 Events 정보를 수집한다. 그리고 Backend에 저장하여 Visualization을 제공한다. 그림 1. Heapster Architectu.. 2019. 4. 10. [Kubernetes] Job & CronJob 이번 포스팅에서는 k8s의 Job과 CronJob에 대해 알아보려고 한다. JobJob은 하나 이상의 Pod가 지정된 수의 Pod가 정상적으로 종료하는 것을 관리한다. 때문에 Job이 생성되는 시점에 같이 만들어지는 Pod에 문제가 발생했을 때 (Physical resource 및 Node 등) Pod가 정상적인 상태가 되도록 새롭게 다시 만든다. (내부 정책에 따라 Pod 생성 실패시 수행하는 작업이 다르다.)또한 Job은 생성된 Pod의 작업이 끝났음에도 Pod를 삭제하지 않아 해당 로그 및 결과 등을 분석할 수 있게 한다. apiVersion: batch/v1 kind: Job metadata: name: pi spec: template: spec: containers: - name: pi imag.. 2019. 4. 6. 이전 1 ··· 9 10 11 12 13 14 15 ··· 19 다음