✔️ Pod Design 단일 컨테이너 : 일반적인 형태 멀티 컨테이너 : 메인 어플리케이션이 존재하며 메인 어플리케이션 기능을 확장하기 위한 컨테이너를 배치 위의 그림은 파드에 컨테이너가 2개 있는 멀티 컨테이너 배치를 갖는다. 보조 기능을 하는 File Puller가 Git이나 S3에서 웹 컨텐츠를 가져와 볼륨(ex. var/www/html)에 저장한다. 메인 어플리케이션인 Web Server는 볼륨의 컨텐츠를 클라이언트에게 제공하는 역할을 한다. 하나의 파드에서는 네트워크와 볼륨을 공유한다. 파드에게 제공하는 볼륨이 있으면 같은 파드 내의 컨테이너는 해당되는 볼륨에 접근할 수 있다. kubectl describe를 통해 보면 컨테이너의 개수와 상관없이 파드에는 하나의 ip만 부여된다. 즉, 하나의 ..
✔️ KubesprayKubespray로 쿠버네티스 설치하기 | Kubernetes Readme (kubespray.io) https://github.com/kubernetes-sigs/kubespray✔️ 클러스터 구성클러스터의 구성은 위의 그림과 비슷하다. Control Plane 1 Work Node 3(1 Control Plan + 2 Worker Node) CPU : 2, Memory : 3GB Master이자 Worker Node 역할을 하는 VM(k8s-node1)을 1개 구성하고 Worker Node 역할의 VM 2대(k8s-node2, k8s-node3)를 구성한다. ✔️ 클러스터 구성 순서Vagrant로 VM 구축하기SSH 키 생성 및 복사kubespray 소스 다운로드ansible, ..
✔️ k8s 클러스터 업그레이드 버전 차이(skew) 정책 다양한 쿠버네티스 구성 요소 간에 지원되는 최대 버전 차이 kubernetes.io kube-apiserver kube-controller-manager, kube-cloud-controller-manage, kube-scheduler kubelet(Control Plane → Worker Node) kube-proxy(Control Plane → Worker Node) kube-apiserver, kube-controller-manager, kube-cloud-controller-manager, kube-scheduler 이 구성요소들은 컨트롤 플레인에만 있다. kubelet 컨트롤 플레인, 워커 노드 둘다 있는 구성요소이다. 원칙적으로 업그레..
✔️ Worker Node 추가 구성하기 이 글에서는 워커 노드로 사용하기 위한 1대의 VM을 Vagrant를 통해 구축한다. 해당 VM에 k8s 관련 패키지들을 설치 및 설정하고 컨트롤 플레인과 워커 노드가 동시에 구축되어 있던 기존의 VM에 join하는 과정을 기술한다. ✔️ Worker Node 추가 순서 Vagrantfile VM 추가 cpu : 2, mem : 2G Docker 설치 및 설정 kubeadm, kubectl, kubelet 설치 (1.22.8 버전 사용) kubeadm join xxx (worker node에서 실행) kubectl get nodes, kubectl get pods -A (control plane에서 실행) ✔️ VM 추가 Vagrantfile을 사용해 ubuntu..
✔️ k8s 설치하기 이 글에서는 1대의 ubuntu VM에 컨트롤 플레인, 노드를 구성한다. https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ kubeadm은 k8s를 설치하기 위한 도구일 뿐 k8s가 아님에 주의하자 시작하기 전에 호환되는 리눅스 머신. 쿠버네티스 프로젝트는 데비안 기반 배포판, 레드햇 기반 배포판, 그리고 패키지 매니저를 사용하지 않는 경우에 대한 일반적인 가이드를 제공한다. 2 GB 이상의 램을 장착한 머신. (이 보다 작으면 사용자의 앱을 위한 공간이 거의 남지 않음) 2 이상의 CPU. 클러스터의 모든 머신에 걸친 전체 네트워크 연결. (공용 또는 사설 네트워크면 괜찮..
✔️ 쿠버네티스(Kubernetes) Kubernetes K8s를 어디서나 실행 쿠버네티스는 오픈소스로서 온-프레미스, 하이브리드, 또는 퍼블릭 클라우드 인프라스트럭처를 활용하는 데 자유를 제공하며, 워크로드를 사용자에게 관건이 되는 곳으로 kubernetes.io k8s는 Google이 개발했다. 2010년대에는 VM을 사용하는 회사가 대다수였다. 구글은 2009년부터 컨테이너라는 개념을 사용하고 있었고 구글의 내부 서비스는 컨테이너 위에서 작동하도록 되어있었다. 내부에 Borg 시스템을 만들었고 이것을 오픈 소스화 한 것이 k8s이다. Borg는 C++ 이지만 k8s는 Go로 만들어졌다. Borg 시스템을 단순히 오픈 소스화 한 것이 아니라 Go로 다시 만들었다. ✔️ what is k8s ? 서비스..