kubernetes
-
쿠버네티스 | 리소스 AWS S3 백업kubernetes 2021. 12. 18. 23:34
쿠버네티스 클러스터를 운영하면서 운영 중인 리소스들을 백업하는 방법에 대해서 정리합니다. (현재 쿠버네티스 클러스터가 설치되었다는 가정하에 진행합니다. => 쿠버네티스 설치) Velero Velero는 Kubernetes 클러스터 리소스 및 영구 볼륨을 백업 및 복원하는 도구를 제공합니다 https://velero.io/docs/v1.5/index.html velero cli를 이용하여 백업을 진행할 것이기 때문에 공식 홈페이지에서 설치 후 진행하도록 하겠습니다. Velero 설치 페이지 로컬 환경에 설치가 되었다면 먼저 백업받을 저장소(AWS S3)를 생성합니다. 버킷과 IAM 생성은 Terraform을 이용하여 생성합니다. https://github.com/bobjeong/no-easy-blog/tr..
-
쿠버네티스 | Pod 자원관리 (QoS)kubernetes 2021. 7. 25. 16:21
이번 시간에는 쿠버네티스에서는 노드에 메모리 자원이 부족해지면 어떤 포드나 프로세스가 먼저 종료되는지(우선순위)에 대해서 알아보도록 하겠습니다. 쿠버네티스에서는 지정된 Limit와 Request에 따라 내부적으로 우선순위를 계산합니다. 그리고 Pod의 우선순위를 구분하기 위해 3종류의 QoS(Qualitu Of Service) 클래스를 명시적으로 Pod에 설정합니다. 쿠버네티스 OOM(Out Of Memory) 쿠버네티스의 노드에는 각종 노드의 이상 상태 정보를 의미하는 Conditions라는 값이 존재합니다. kubectl describe nodes {node_name} | grep -A9 Conditions MemoryPressure는 기본적으로 노드의 가용 메모리가 100Mi 이하일 때 발생하도록 ..
-
쿠버네티스 | 패키지 매니저 Helmkubernetes 2021. 7. 22. 23:38
Helm 이란 Helm이란 쿠버네티스용 패키지 매니저 입니다. Helm은 Chart라는 형태로 리소스들을 패키징하고, 패키징된 Chart를 통해서 배포를 하게됩니다. Helm을 왜 쓰는 것일까요? 쿠버네티스를 운영하면서 어플리케이션을 배포할 때 다른 클러스터 또는 stage 환경 등에 따라서 배포할 때 정의되는 매니페스트 파일들에서 사용되는 값들이 달라질 수 있습니다. 이렇게 될 경우 하나하나 관리하기에는 많은 번거로움이 있게 되고 이러한 문제를 Helm은 Chart라는 형태로 리소스들이 정의된 매니페스트파일들을 패키징하여 배포할 수 있게 함으로써 해결합니다. 위의 그림처럼 배포할 어플리케이션에 사용되는 매니페스트 파일들을 Chart라는 형태로 패키징 한 뒤, Chart 형태로 배포를 하게 되고 배포하는..
-
쿠버네티스 | Pod 자원관리kubernetes 2021. 7. 21. 23:23
오늘은 쿠버네티스 리소스 자원관리에 대해서 정리를 해보려고 합니다. 이전에 쿠버네티스 아키텍처를 소개할 때, 쿠버네티스에서 Pod를 어떤 노드에 배포하게 될지는 스케줄러가 정하게 된다고 말씀을 드렸습니다. 스케줄러는 Pod를 배포할 수 있는 여유가 있는 노드로 배포하게 되는데, 이때 각 노드가 여유가 있는지를 판단하는 기준은 각 노드의 CPU, Memory의 사용량 등이 이용됩니다. 따라서 목표는 스케줄러가 어떤 기준으로 노드를 선별하게 되는지 알아보는 것이지만, 그전에 결국 노드의 자원은 노드에 띄워져 있는 쿠버네티스 리소스들의 자원의 합계치 임으로 리소스에 대한 자원을 먼저 알아보도록 하겠습니다. 리소스 단위 Pod의 리소스를 설정하게 되면 다음과 같습니다. apiVersion: v1 kind: Po..
-
쿠버네티스 | 클러스터 설치 준비kubernetes 2021. 7. 19. 00:06
쿠버네티스를 시작할 때 로컬환경에서 간단하게 시작할 수 있는 방법은 minikube를 설치해서 진행하는 방법이 있을 수 있겠지만, 개인적으로 로컬환경에 VM으로 설치를 해서 사용해보고 싶었고 설치하는 과정에 대해서 기록해 두려고 합니다. 이번 시간에는 쿠버네티스를 설치하기 전에 VirtualBox를 이용하여 VM을 구성하고 쿠버네티스를 설치할 준비작업을 진행합니다. 쿠버네티스는 기본적으로 Master노드와 Worker노드로 구성이 되기때문에 각각의 노드들을 위한 VM을 생성합니다. 로컬에서 VM을 생성하기위해 VirtualBox를 사용합니다. 설치경로 : https://www.virtualbox.org/wiki/Downloads vm에서는 운영체제로 우분투를 사용합니다. 쿠버네티스만 설치해서 사용할 것이..
-
쿠버네티스 | 쿠버네티스 아키텍처kubernetes 2021. 5. 30. 01:49
쿠버네티스를 정리함에 있어서 기본적으로 쿠버네티스가 내부적으로 어떻게 동작하는지에 대해서 알아보기 위해 정리하는 시간을 가지게 되었습니다. 쿠버네티스 구성 쿠버네티스는 다음과 같이 크게 Master와 Node 2가지로 구성됩니다. 위의 그림처럼 사용자는 kubectl이라는 것을 이용하여 쿠버네티스 클러스터와 통신을 하게 됩니다. 클러스터 내의 Master는 쿠버네티스의 설정 환경을 저장하고 전체 클러스터를 관리하는 역할을 맡고 있고, 각 Node들에서는 쿠버네티스 위에서 동작하는 워크로드들이 실행되게 됩니다. 그렇다면 좀 더 자세하게 Master에서는 어떻게 해서 위에서 설명한 역할들을 수행하고 있고 마찬가지로 Node에서는 어떻게 워크로드들이 실행되게 되는지 알아보겠습니다. 쿠버네티스 기본 개념 Mas..
-
쿠버네티스 | 설치kubernetes 2021. 5. 15. 01:37
쿠버네티스를 시작할 때 로컬환경에서 간단하게 시작할 수 있는 방법은 minikube를 설치해서 진행하는 방법이 있을 수 있겠지만, 개인적으로 로컬환경에 VM으로 설치를 해서 사용해보고 싶었고 설치하는 과정에 대해서 기록해 두려고 합니다. 이전시간에는 쿠버네티스를 설치하기위해 VM을 세팅하는 과정을 진행했습니다. 이번시간에는 이전에 준비한 VM에 쿠버네티스를 설치하여 클러스터를 구성해보는 과정을 진행하도록 하겠습니다. 만약 쿠버네티스 설치를 위한 VM을 만드셔야 한다면 이전 글을 참고해 주시면 되겠습니다! 0. setup (master, worker 공통) 개인적으로는 VirtualBox로 띄워진 VM창 내에서 작업하는게 불편하여 따로 ssh로 접근하여 설치를 진행했습니다. # ip 확인을 위해 설치 ap..