✔️ Label & LabelSelector ✔️ Label 레이블과 셀렉터 | Kubernetes Label은 AWS의 태그와 유사한 개념이다. 리소스의 이름은 Namespace에서 유일해야 했다. 반면 Label은 리소스에 1개 이상 설정할 수 있다. 여러개의 리소스에 동일한 Label을 중복해서 붙일 수 있다. Label을 붙여서 오브젝트의 특성을 식별하는 데 사용한다. "metadata": { "labels": { "key1" : "value1", "key2" : "value2" } } 해당 형식은 JSON 형식을 따른 것이다. metadata: name: label-demo labels: key: value key: value key: value YAML 형식을 사용할 수 있으며 같은 key :..
✔️ Pod Design 단일 컨테이너 : 일반적인 형태 멀티 컨테이너 : 메인 어플리케이션이 존재하며 메인 어플리케이션 기능을 확장하기 위한 컨테이너를 배치 위의 그림은 파드에 컨테이너가 2개 있는 멀티 컨테이너 배치를 갖는다. 보조 기능을 하는 File Puller가 Git이나 S3에서 웹 컨텐츠를 가져와 볼륨(ex. var/www/html)에 저장한다. 메인 어플리케이션인 Web Server는 볼륨의 컨텐츠를 클라이언트에게 제공하는 역할을 한다. 하나의 파드에서는 네트워크와 볼륨을 공유한다. 파드에게 제공하는 볼륨이 있으면 같은 파드 내의 컨테이너는 해당되는 볼륨에 접근할 수 있다. kubectl describe를 통해 보면 컨테이너의 개수와 상관없이 파드에는 하나의 ip만 부여된다. 즉, 하나의 ..
✔️ Wordload - Pod 파드 : 컨테이너의 모음 k8s가 관리할 수 있는 가장 작은 워크로드는 Pod이다. k8s은 컨테이너를 직접 컨트롤하지 않는다. ✔️ 파드 생성 및 관리 vagrant@k8s-node1:~$ kubectl run myweb --image httpd pod/myweb created vagrant@k8s-node1:~$ kubectl get pods NAME READY STATUS RESTARTS AGE myweb 1/1 Running 0 19s Docker Hub의 httpd 이미지를 myweb이라는 Pod로 생성한다. READY 1/1 - 준비된 컨테이너의 개수 / 컨테이너의 총 개수 현재 Pod에 하나의 컨테이너만 있는 것이며 해당 컨테이너는 httpd 이미지로 생성되어..
✔️ Object 쿠버네티스 오브젝트 이해하기 이 페이지에서는 쿠버네티스 오브젝트가 쿠버네티스 API에서 어떻게 표현되고, 그 오브젝트를 어떻게 .yaml 형식으로 표현할 수 있는지에 대해 설명한다. 쿠버네티스 오브젝트 이해하기 쿠버네티 kubernetes.io ✔️ Object 리스트 확인 kubectl api-resouces 해당 명령을 통해 쿠버네티스에서 생성할 수 있는 모든 종류의 오브젝트를 확인할 수 있다. NAME SHORTNAMES APIVERSION NAMESPACED KIND NAME과 KIND의 차이는 NAME은 소문자로 시작하며 복수형이다. KIND는 대문자로 시작하며 명사 + 명사 조합일 경우 반드시 명사의 첫글자를 대문자로 쓴다는 것이다. KIND는 일반적으로 단수형이다. (예외 ..
✔️ 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 컨트롤 플레인, 워커 노드 둘다 있는 구성요소이다. 원칙적으로 업그레..