Kubernetes 30

[쿠버네티스] 우분투 환경에서 쿠버네티스 설치하기 + kubeadm 툴박스로 클러스터 만들기 (kubeadm, kubectl, kubelet)

들어가며 사전확인 도커 설치하기 kubeadm, kubelet, kubectl 설치하기 kubeadm 툴박스로 클러스터 만들기 Control-plane 컴포넌트 구성 및 네트워크 환경구성 worker node 구성 추가 control-plane 노드에서 상태확인 work node 구성 삭제 끝마치며 들어가며 vagrant 설치 및 환경 구성을 한 뒤 이어서 쓰는 글이니 작업 환경이 궁금하다면 이전 글을 참조하길 바랍니다. 이 글은 우분투 18.04 LTS 환경에서 쿠버네티스 클러스터를 설치 및 구성하는 글입니다. 본인의 프로세서가 싱글코어 이하 이거나, 1GB 이하의 RAM 이라면 따라하는 것을 권장하지 않습니다. 또한 $swapon -s 를 확인했을 때 스왑 사용중이라면 kubelet이 재대로 작동하지..

[쿠버네티스] 사전 준비, Vagrant 를 이용하여 가상환경 구축하기 & vagrantfile 소개

들어가며: Vagrant 란? Vagrant 기초 명령어 사용법 소개 Vagrant Install 및 가상환경 구축 Vagrantfile 들어가며: 가상머신, 하이퍼바이저, 프로비저닝에 대한 사전 지식이 있다면 더 효과적으로 글을 읽을 수 있습니다. Vagrant 란? Vagrant는 운영체제 시스템에 대하여 쉬운 Provisioning을 할 수 있습니다. 주로 가상머신을 생성하고 관리할 때 사용할 수 있습니다. 가상머신을 사용자의 요구에 맞게 Host name, IP, Service Install 등 다양한 환경을 미리 설정하고 사용자가 원할 시 해당 시스템을 즉시 사용할 수 있도록 해주는 Provisioning 도구 입니다. Vagrant를 사용하지 않는 가상머신 생성 및 관리 방법 virtualBo..

[쿠버네티스] 데몬셋이란?

데몬셋 소개 데몬셋 생성 데몬셋 확인 노드 레이블 지정 노드 레이블 제거 데몬셋 삭제 데몬셋 소개 데몬셋(DaemonSet)은 노드 레이블과 매칭이 되는 모든 노드 또는 노드 레이블이 없다면 모든 노드에 파드를 하나씩 배치하는 컨트롤러입니다. 일반적으로 많이 사용하지않는 컨트롤러입니다. 기능은 레플리카셋과 비슷하지만 복제본은 지정하지 않습니다. 당연하게도 (노드 레이블과 매칭이 되는) 모든 노드에 하나씩의 파드만을 배치하기 때문입니다. 노드가 추가되면 자동으로 컨트롤러는 하나의 파드를 배치하게 되고, 노드가 제거되면 삭제된 파드를 다른 노드에 배치하지 않습니다. 이는 복제본을 제공하는 컨트롤러가 아니기 때문입니다. 각각의 노드마다 배치해야되는 특성이 있는 성능 수집이나 로그 수집이나 스토리지 서비스가 필..

[쿠버네티스] k8s 레플리케이션 컨트롤러(ReplicationController) 란?

들어가며: 레플리케이션 컨트롤러 소개 레플리케이션 컨트롤러 생성 레플리케이션 컨트롤러 확인 레플리케이션 컨트롤러와 파드 레플리케이션 컨트롤러와 레이블 파드의 수평 스케일링 레플리케이션 컨트롤러 및 파드 삭제 끝마치며: 들어가며: 쿠버네티스의 컨트롤러는 파드를 올바르게 동작하기 위해 특정 상태를 보장하기 위한 컨트롤러입니다. 특정 상태는 컨트롤러에 따라 동작하는 방식 및 정의하는 상태가 조심씩 다릅니다. 쿠버네티스 초기부터 이어져온 서비스 중 1개 입니다. 레플리카셋은 레플리케이션 컨트롤러를 대체하기 위해서 만들어졌기 때문에 거의 유사합니다. 그래서, 현재는 레플리케이션 컨트롤러보다 레플리카셋 또는 레플리카셋의 상위 개념인 디플로이먼트를 권장합니다. 레플리케이션 컨트롤러를 사용할 일은 없지만 아직까지는 사..

[쿠버네티스] 파드의 생명주기와 컨테이너 프로브

들어가며: 파드의 생명주기 컨테이너 상태 컨테이너의 재시작 정책 컨테이너 프로브 liveinessProbe, ReadinessProbe, StartupProbe 개념과 사용 이유 컨테이너 프로브 구성파일 살펴보기 라이프니스 프로브 정상/비정상 예시 스타트업 프로브 정상/비정상 예시 들어가며: 파드는 아래와 같은 순서대로 생명주기를 가집니다 Pending -> Running -> Succeeded 또는 Failed 쿠버네티스 노드의 구성 요소인 kubelet은 파드의 컨테이너 상태를 추적하고, 오류가 발생하면 정상 상태로 만들기 위한 조치로 컨테이너를 재시작할 수도 있습니다. 파드는 파드가 최초 생성될 때 한 번만 스케줄링 되며, 특정 노드에 할당되면, 파드가 중지/종료 될 때 까지 항상 같은 노드에서 실..

[쿠버네티스] 명령형 오브젝트 구성 방법 / yaml 의 기초 설명

들어가며: YAML 이란? YAML 요소 YAML 문법 YAML을 이용한 쿠버네티스 오브젝트 kind에 따른 apiVersion 확인 법 끝마치며: 참고 오브젝트 리소스 문서 확인 명령 vim 에디터에서 YAML 파일 작성 시 인덴트, 하이라이팅, 들여쓰기 등 기능을 추가하여 효율적으로 작성하는 법 nano 에디터에서 YAML 파일 작성 시 효율적으로 작성하는 법 들어가며: k8s 오브젝트는 k8s 시스템에서 정보를 담고 있는 개체입니다. 이런 오브젝트는 YAML 문법으로 정의됩니다. YAML 이란? YAML은 XML, C, Python, Perl, RFC2822 에서 정의된 개념을 기반으로 만들어진 사람이 읽고 쓰기 쉽게 데이터를 정의하는 양식입니다. 2001년 클라크 에반스에 의해 고안됐습니다. YA..

[쿠버네티스] k8s 오브젝트의 일반적인 구성 종류

pod replicaSet Deployment Service-ClusterIP Service-NodePort Service-LoadBalancer Ingress 끝마치며: 참고 pod 포드(팟)은 쿠버네티스에서 가장 작은 배포 단위이며, 각 pod마다 고유한 ip 를 할당받습니다. 여러 개의 컨테이너가 하나의 pod 에 속할 수 있습니다. replicaSet 리플리카셋은 여러 개의 pod를 관리하며, replicas=3 과 같은 식으로 몇 개의 pod를 관리할 지 결정합니다. 즉, 신규 pod를 생성하거나 제거하여 원하는 수(replicas)를 유지하는 역할을 합니다. kubectl scale deployment myapp --replicas=3 Deployment ReplicaSet을 감싸고 있는, 배..

[쿠버네티스] 명령형 커맨드를 사용한 애플리케이션 실행

들어가며 명령행 커맨드를 사용한 애플리케이션 실행 디플로이먼트 생성 리소스 확인 서비스 생성 서비스 확인 서비스 접근 파드 스케일링 서비스 요청 시 분산된 접근 확인 생성한 리소스 삭제 끝마치며: 명령형 커맨드(Imperative Commands) 란?(반복) 들어가며 쿠버네티스 오브젝트(=매니페스트)를 생성하여 실행 및 관리하는 방법은 세 가지가 있습니다. 이 글은 관리 방법 중 명령형 커맨드를 사용한 애플리케이션 실행을 다룬 글 입니다. 명령형 커맨드를 사용한 애플리케이션 실행 명령형 커맨드를 이용하여 쿠버네티스 오브젝트를 생성해 애플리케이션을 관리하는 방법을 알아보겠습니다. 1. deployment 생성 Usage: kubectl create deployment NAME --image=image -..

[쿠버네티스] 오브젝트 관리 방법 (명령형 커맨드, 명령형 오브젝트 구성, 선언형 오브젝트 구성)

들어가며 명령형 커맨드란? 명령형 오브젝트 구성이란? 선언형 오브젝트 구성이란? 끝마치며: 참고 들어가며 쿠버네티스에서 오브젝트를 생성하여 애플리케이션을 실행 및 관리하는 방법은 세 가지가 있습니다. 세 가지를 간략하게 다뤄보고 자세한 기술은 "끝마치며: 참고"를 확인해주시거나 글 사이에 있는 링크를 확인하시기 바랍니다. 명령형 커맨드란? (Impernative Commands) kubectl 명령에 인수 또는 옵션을 사용하여 애플리케이션을 관리하는 방법입니다. 일회성 작업에서 주로 사용합니다. 개발 환경에서 권장하는 방법이며, 가장 단순한 방법입니다. kubectl run nginx --image nginx kubectl create deployment nginx --image nginx 자세한 기술은..

[쿠버네티스] 컨테이너가 뭐에요? (컨테이너의 기본 개념, 컨테이너 란?)

들어가며: 컨테이너가 뭐에요? 왜 컨테이너라고 부르죠? 컨테이너의 장점 컨테이너 아키텍처 도커 컨테이너 왜 (도커) 컨테이너를 써야하나요? 들어가며 : 컨테이너(container)가 뭐에요? 대충말하면 컨테이너는 애플리케이션을 환경에 구애 받지 않고 실행하는 기술입니다. 정확하게 말하자면 운영체제에서 실행되는 프로세스를 격리(Isolation)하여 별도의 실행 환경을 제공해주며, 해당 프로세스는 운영체제 상에서 실행되는 유일한 프로세스인 것처럼 작동하는 기술입니다. 즉, 운영체제에서 실행되는 여러 프로세스는 컨테이너라는 개념으로 격리되어 별도의 운영 환경을 제공해주는 기술입니다. 왜 컨테이너라고 부르죠? 어떤 물체를 격리하는 공간의 뜻을 가지고 있는 컨테이너는 가로, 세로, 높이의 크기가 세계적으로 표준..