kubernetes

Kubernetes Resource and QoS Concept

이번 포스팅에서는 Kubernetes에서 사용하는 resource에 대한 개념과 resource와 관련해서 잘 알고 있지 못하면 큰 문제를 일으킬 수도 있는 Quality of Service라는 것에 대해서 알아본다. Managing Resources for Containers Pod를 띄울 때 우리는 Pod에 속해있는 Container가 얼마만큼의 resource를 가질지 선택적으로 명시할 수 있다. resource 종류에는 다른 것들도 있지만 가장 대표적인 것은 CPU와 메모리이다. Container의 resource request를 명시하면 스케쥴러는 이 정보를 바탕으로 어떤 노드에 Pod를 배치시킬지를 결정한다. 그리고 Container의 resource limit을 명시하면 kubelet은 런타임 상태의 Container가 명시된 resource의 limit 이상을 사용할 수… 더 보기 »Kubernetes Resource and QoS Concept

Kubernetes Controller 구현해보기

이전에 다른 포스팅에서 Kubernetes CRD와 Controller에 대해서 개념적인 글을 작성하였다. 이번 포스팅은 시간이 꽤 지났지만 코드 레벨에서 어떤 식으로 CRD와 Controller를 만들 수 있는지에 대해서 작성해보려고 한다. Requirements & Decisions 앞으로 다룰 이야기가 수월하게 흘러가고 현실감있게 받아들여질 수 있도록 가상의 요구사항을 하나 만들어보자. 시스템 장애 상황에 대비해서 주기적으로 유저 활동 로그를 찍어서 파일로 저장하는 Logger를 만들 것이다. Kubernetes 클러스터를 호스팅하고 있는 클라우드 서비스가 죽지않는 이상 적어도 하나 이상의 Logger는 살아남아서 계속 유저들의 활동 로그들을 찍어서 저장해야한다. 이 정도 요구사항이라면 로깅… 더 보기 »Kubernetes Controller 구현해보기

Kubernetes CRD와 Operator에 대해서

최근에 Kubernetes를 통해서 프로젝트를 진행했었다. Kubernetes의 기본적인 사용법과 어떻게 쓰는지는 시간이 지나면서 자연스레 익혀지지만 Kubernetes의 전체적인 철학이나 어떻게 Kubernetes가 동작하는지 원리에 대해서 개념이 머리에 명확하지 않은 것 같아서 시간을 내어 따로 정리해보려고 한다. 그 중에서도 CRD와 Operator 위주로 정리해보려고 하는데 이 두 개의 개념이 Kubernetes의 전반적인 개념과 동작 원리를 가장 잘 보여준다고 생각하기 때문이다. updated 2020.05.10 Kubernetes CRD와 Operator를 직접 구현해보는 글을 작성하였다. 실제로 Operator를 어떻게 구현하는지 궁금하다면 해당 포스팅을 참고해도 좋을 것 같다. Custom Resources Kubernetes에서는 resource라는 개념이 있는데… 더 보기 »Kubernetes CRD와 Operator에 대해서