DevOps
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: kubectl 명령형과 선언형 방식
명령형 vs 선언형 명령형 (Imperative) 명령형이란 수행하고자 하는 액션을 지시하는 것을 말합니다. 또한 이는 적은 리소스에 대해서 빠르게 처리가 가능하다는 단점이 있습니다. 다만 여러 명령어를 알아야 한다는 단점이 있습니다. 선언형 (Declarative) 요즘은 명령형보다 선언형이 트랜드인 것 같습니다. 선연형 방식으로 상태를 관리한다면 도달하고자 하는 상태(Desired State)를 선언할 수 있게 됩니다. 그럼 이 상태에 맞춰서 시스템이 해당 상태에 맞게 시스템을 적용하게되는 원리입니다. 는 코드로 관리할 수 있기 때문에 GitOps를 활용 가능하게 됩니다. 그 뿐만 아니라 변경사항에 대한 감사(Audit)이 용이하고, 코드리뷰를 통한 협업도 가능하게 됩니다. 멱등성 ( idempote..
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: API 리소스
API 리소스와 오브젝트 API 리소스 API 리소스는 쿠버네티스가 관리할 수 있는 오브젝트의 종류입니다. API 리소스의 종류에는 Pod, Service, ConfigMap, Secret등이 있습니다. 심지어 쿠버네티스 클러스터를 구성하는 Node도 리소스로 취급되고, 클러스터 상에서 사용되는 계정 ServiceAccount도 리소스로 관리하게 됩니다. 그리고 이에 대한 Role도 리소스가 됩니다. 오브젝트 (Object) 오브젝트는 API리소스를 인스턴스화 한 것이라고 보실 수 있ㅅ브니다. 우선 실습을 진행하기 위해 로컬 단일 클러스터 구축을 위해 minikube start를 하고 status로 클러스터가 잘 실행된 것을 홗인해주었습니다. 그리고 kubectl에서 node를 확인하니 잘 존재합니다...
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 클러스터 구성요소
우선 전반적인 클러스터 구성에 대해 살펴보고 제어 영역과, 노드가 어떻게 이루어져 있는지에 대해 알아보고 마치겠습니다. 클러스터 구성 Control Plane ( Master Node ) 컨트롤러 플래인은 클로스터의 관리하는 역할을 담당합니다. 그리고 상태 관리 및 명령어 처리를 담당합니다. API Server API Server는 기존의 어플리케이션과 매우 유사합니다. 상태를 관리하는 데이터베이스 (etcd)와 Kube API Server가 이로부터 상태를 관리하는 전통적인 어플리케이션과 비슷합니다. etcd는 데이터를 안전하게 관리하기 위한 분산 Key - Value저장소라고 할 수 있습니다. 만약 클러스터 상태를 복구하고 싶다고 하면 etcd만 관리하면 됩니다. Scheduler API서버와 통신하..
[ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 버전과 배포판
보통 로컬에서 테스트하기 위한 로컬 쿠버네티스 배포판과, 실제 운영 환경에서 사용하기 위한 운영용 쿠버네티스 배포판이 존재합니다. 쿠버네티스의 다양한 배포판( Kubernetes Distributions) 가장 유명한 것은 docker + kubernetes인데 이는 Docker for Desktop입니다. 여기에 kubernetes를 생성할 수 있는 탭이 있는데, 이를 실행하게 되면, 로컬에 싱글노드의 쿠버네티스 클러스터가 만들어지게 됩니다. 이것과 비슷하게 minikube이라는 배포판이 있습니다. 이는 여러 driver를 제공하게 됩니다. 이 driver를 사용하면 kubernetes노드를 어떤 환경으로 구성할지 선택할 수 있습니다. 우리는 가상머신 (VMware)등을 사용할 수도 있지만 docker..