Container 62

[Kubernetes] 쿠버네티스 데몬셋(Daemonset) 개념 (생성, 확인, 실행중인 파드의 노드 확인, 업데이트)

데몬셋(Daemonset) 이란? 데몬셋은 디플로이먼트와 유사하게 파드를 생성하고 관리 합니다. 디플로이먼트는 롤링 업데이트나 배포 일시 중지, 재개 등 배포 작업을 좀 더 세분화하여 조작하였다면, 데몬셋은 특정 노드 또는 모든 노드에 항상 실행되어야 할 특정 파드를 관리 합니다. 하나의 예를 들자면 모니터링 시스템 구축을 위해 모든 노드에 특정 파드(로그 수집용)를 관리해야 할 때 사용할 수 있습니다. 모니터링 시스템을 원활히 사용하기 위해선 모든 노드에 항상 로그 수집할 무언가가 필요하기 때문 입니다. 특정 노드를 지정하여 사용할수도 있습니다. 데몬셋 생성 및 확인 apiVersion: apps/v1 kind: DaemonSet metadata: name: test-elasticsearch names..

[Kubernetes] 쿠버네티스 디플로이먼트(Deployment) 개념 (생성, 확인, 업데이트, 롤백, 롤아웃 기록 조회, 일시 중지, 시작, 재시작)

디플로이먼트(Deployment) 란? 디플로이먼트는 레플리카셋의 상위 개념으로 볼 수도 있습니다. 레플리카셋을 생성하는 디플로이먼트를 정의할 수 있고, 배포 작업을 좀 더 세분화(롤링 업데이트 등) 하여 조작할 수 있는 기능을 가지고 있습니다. 이러한 이유로 레플리카셋만 사용하는것 보다는 디플로이먼트를 사용하는 추세라고 합니다. 디플로이먼트 생성 및 확인 우선 기본적인 디플로이먼트를 생성 하겠습니다. 아래 코드를 저장해주시고 저는 경로 "/root/kubespray/inventory/test/deployment" 에 test-deployment.yaml 로 저장 하였습니다. apiVersion: apps/v1 kind: Deployment metadata: name: test-deployment lab..

[Kubernetes] 쿠버네티스 레플리카셋(replicaset) 개념 (파드 개수 유지, 파드 독립, 레플리카셋만 삭제)

레플리카셋(Replicaset) 이란? 레플리카셋은 실행되는 파드 개수에 대한 가용성을 보증 하며 지정한 파드 개수만큼 항상 실행될 수 있도록 관리 합니다. 즉 5개의 파드를 항상 실행 하도록 설정하면 이후 파드 1개가 삭제될 경우 다시 파드 1개가 실행되어 5개를 유지할 수 있도록 해줍니다. 레플리카셋이 정말 파드의 개수를 유지해주는지 확인 아래 코드를 입력 후 파일로 저장하여 레플리카셋을 사용해볼 수 있습니다. 이 코드들을 보면 레이블을 기준으로 식별하여 어떤 파드를 관리할지 선택 합니다. 저는 경로를 "/root/kubespray/inventory/test/replicaset"에 test-replicaset.yaml 로 저장 하였습니다. apiVersion: apps/v1 kind: ReplicaS..

[Kubernetes] 쿠버네티스 컴포넌트들의 역할

Kubernetes Architecture Kubernetes Control Plane Component 마스터 컴포넌트 (Master Component) - kube-apiserver : 쿠버네티스 API를 사용할 수 있도록 해주는 컨트롤 플레인 컴포넌트 입니다. 쿠버네티스 컨트롤 플레인의 프론트 엔드단(최전방, 사용자와 가장 근접)에서 동작하며 받은 요청이 유효한지 검증 합니다. 쿠버네티스의 모든 요청은 kube-apiserver를 통해 이루어 지며 매우 많은 옵션들이 존재 하는데, 아래 쿠버네티스 docs 문서에서 확인하실 수 있습니다. 쿠버네티스 kube-apiserver 옵션 : https://kubernetes.io/docs/reference/command-line-tools-reference..

[Kubernetes] 쿠버네티스 간단한 개념 살펴보기 (기본 용어, 클러스터 아키텍처, 컨트롤러 간단한 개념)

쿠버네티스란? 쿠버네티스를 간단히 말하자면 Linux 컨테이너 작업을 자동화해주는 오픈소스 플랫폼 입니다. 각 컨테이너별 자원 제한, 문제 발생 시 자동 시작 등 컨테이너를 배포/확장, 제어, 자동화하기 위한 다양한 기능을 지원하는 컨테이너 오케스트레이션 도구 입니다. 대규모 커뮤니티와 여러 경험과 기술이 녹아져있어 굉장히 다양한 기능을 제공하다보니 빠르게 알려지고 있고, 기업들에서 도입하는 사례가 늘고 있습니다. 쿠버네티스 기본 용어 쿠버네티스에서 사용하는 기본 용어들이 있습니다. 마스터(Master) : 노드를 제어하고 전체 클러스터를 관리해주는 컨트롤러 이며, 전체적인 제어/관리를 하기 위한 관리 서버 입니다. 노드(nod) : 컨테이너가 배포될 물리 서버 또는 가상 머신 이며 워커 노드(Worke..

[Kubernetes] 쿠버네티스 YAML 파일 들여쓰기 에러(error: error parsing /root/kubespray/inventory/mycluster/deployment/nginx-app.yaml: error converting YAML to JSON: yaml: line 4: found character that cannot start any token)

쿠버네티스 YAML 파일 들여쓰기 에러(error: error parsing /root/kubespray/inventory/mycluster/deployment/nginx-app.yaml: error converting YAML to JSON: yaml: line 4: found character that cannot start any token)는 YAML 파일을 apply 하거나 할 때 발생할 수 있습니다. YAML 파일에서는 탭을 사용한 들여쓰기를 지원하지 않기 때문에 스페이스바로 작성 후 재시도 하시면 에러가 해결 됩니다. 참고 사이트 : https://github.com/moraes/config/issues/1

[Kubernetes] kubespray를 이용해 쿠버네티스 설치하기 (GCP, CentOS7)

설치 환경 GCP (Google Cloud Platform) CentOS 7.7 1908 Master Node 3대, Worker Node 2대 (VM 인스턴스 총 5대) GCP VM 인스턴스 준비 연습용으로 하실 경우 VM 인스턴스를 생성할줄 모르신다면 https://nirsa.tistory.com/entry/GCP-VM-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%83%9D%EC%84%B1?category=870325 를 참고하여 5대를 준비해주세요. 다른 서버를 준비해주시면 되고 저는 Master Node 3대, Worker node 2대로 진행하기 때문에 VM 인스턴스 총 5대를 준비 하였습니다. SSH 설정 GCP의 경우 따로 SSH 설정을 해줘야 할 건 없으며 대신..

[Kubernetes] 윈도우10에 도커, 쿠버네티스 설치 (docker desktop)

*** 주의 : Docker Desktop 설치 시 Hyper-V 기능으로 인해 VMware가 동작하지 않습니다. 기존에 VMware를 사용중이고, 계속 VMware를 사용해야 한다면 설치를 자제 해주세요. 윈도우 10에 도커, 쿠버네티스 설치 (도커 데스크탑) hub docker에 접속하여 도커 데스크탑을 다운로드 받습니다. (https://hub.docker.com/editions/community/docker-ce-desktop-windows) 저는 안정버전인 stable을 다운로드 받겠습니다. 설치가 완료되면 실행 파일을 실행시킨 후 기본값 그대로 OK를 눌러 줍니다. 재부팅이 완료되면 우측 하단에 아래와 같이 docker desktop이 실행 됩니다. 만약, 실행되지 않았다면 C:\Program..

[Docker CE] 도커란? (Docker vs VM, Container, namespaces)

Docker 란? 도커는 리눅스 "컨테이너 기반으로 만들어진 오픈소스 가상화 플랫폼 입니다. " 라고들 많이 설명 하지만 개인적으로 가상화라고 생각하지 않습니다. 도커는 커널을 공유하여 사용하며 프로세스를 격리시켜 작동(컨테이너)하는 플랫폼 입니다. Docker Container와 VM(Virtual machine)의 간단한 차이 VM의 경우 호스트OS 위에서 동작하여 하드웨어에 직접 접근할 수 없고 호스트OS를 거쳐야 합니다. 하드웨어를 가상으로 할당해주고 실제로 사용할 때엔 Guest OS → Host OS → H/W 순으로 접근하게 되어 Dcoker Container에 비해 무겁고 실행 속도가 상대적으로 느립니다. 반대로 Dcoker Container의 경우 VM처럼 각각의 가상화 OS를 설치하고 ..

Container/Docker 2020.01.29