쿠버네티스 7

쿠버네티스 - 시스템 구조 - 9

이번 시간에는 간단하게 컨테이너를 둘러싸고 있는 시스템을 알아보자. 이전에 이야기했듯이 우리는 직접 컨테이너를 생성하거나 동작시키지 않는다. 파드라는 컨테이너 그룹의 단위로 접근한다. 하지만 파드도 우리가 직접 생성하지는 않는다. 실제로 우리는 레플리케이션을 생성하고 이 친구가 파드를 실행한다. 그리고 그 파드를 서비스로 노출하도록 명령한다. 서비스 파드 레플리케이션 파드 시스템의 가장 중요한 구성 요소는 물론 파드다. 파드는 원하는 만큼의 컨테이너를 포함할 수 있고 자체의 고유한 사설 IP 주소와 호스트 이름을 갖는다. 레플리케이션 파드를 복제하고 항상 실행 상태로 만든다. 어떤 이유로 파드가 사라진다면, 사라진 파드를 대체하기 위해 새로운 파드를 생성한다. 서비스 파드는 일시적이다. 파드를 실행 중인..

쿠버네티스 - 파드 - 8

쿠버네티스 실행 apiVersion: v1 kind: ReplicationController metadata: name: suk9 spec: replicas: 1 selector: app: suk9 template: metadata: name: suk9 labels: app: suk9 spec: containers: - name: suk9 image: seokkyulee/suk9 ports: - containerPort: 8080 우선 first.yaml 파일을 만들고, 이후 터미널을 열어 커맨드를 입력해보자. minikube start kubectl apply -f first.yaml kubectl이 minikube 클러스터를 사용하도록 설정되고, 이전에 만든 이미지(seokkyulee/suk9)를 기..

쿠버네티스 - 설치/설정 부록

Minikube는 로컬 환경에 단일 노드 클러스터를 설치하는 도구다. 문서를 통해, 각자 환경에 맞는 minikube를 설치를 하도록 하자. 설치가 끝났다면, 터미널을 열고 아래 명령어를 통해 실행해보자. minikube start 쿠버네티스 커맨드 라인 도구인 kubectl을 사용해 쿠버네티스 클러스터에 명령을 실행할 수 있다. 문서를 통해 설치하도록 하자. kubectl get nodes 설치를 완료한 후, 위 명령어를 입력해보자. minikube 클러스터 노드가 조회될 것이다. kubectl describe node minikube 해당 명령어를 통해 minikube 노드의 상세 정보를 볼 수 있다. CPU, 메모리, 노드에 실행 중인 컨테이너 등의 노드 상태를 보여준다. 이렇게 우리는 간단하지만 ..

쿠버네티스 헬로월드 - 6

간단하게 애플리케이션을 이미지(패키징)로 만들고, 쿠버네티스 클러스터에서 실행하는 방법을 살펴보자. 도커를 빠르게 설치하고 시작하자. https://www.docker.com/get-started Get Started with Docker | Docker Learn about the complete container solution provided by Docker. Find information for developers, IT operations, and business executives. www.docker.com 도커 이미지 실행 docker run busybox echo "Hello world" 터미널을 열고 위 커맨드를 입력하자. 먼저 로컬에서 busybox:latest 이미지를 찾을 것이고..

쿠버네티스 애플리케이션 실행 - 4

쿠버네티스에서 애플리케이션을 실행하려면 어찌해야 할까? 1. 애플리케이션을 컨테이너 이미지로 패키징 하고, 2. 해당 이미지를 이미지 레지스트리로 푸시하고, 3. 쿠버네티스 API 서버에 애플리케이션 디스크립션을 게시한다. 디스크립션에는 컨테이너 이미지, 애플리케이션 구성 요소가 포함된 이미지, 해당 구성 요소가 서로 통신하는 방법, 동일 서버에 함께 배치돼야 하는 정보, 복제본 수 등의 정보가 기록되어있다. 쿠버네티스에서 애플리케이션은 어떻게 실행될까? 1. 스케줄러는 각 컨테이너에 필요한 리소스를 계산하고 사용 가능한 워커 노드에 지정된 컨테이너를 할당한다. 2. 해당 워커 노드의 Kubelet은 컨테이너 런타임에 필요한 컨테이너 이미지를 가져와 컨테이너를 실행하도록 지시한다. 실행된 컨테이너 유지 ..

쿠버네티스와 도커 - 2

앞서 설명한 컨테이너 기술 중 가장 널리 사용되고 있는 기술이 도커다. 1. 도커 개념 - 애플리케이션을 패키징, 배포, 실행하기 위한 플랫폼. - 애플리케이션, 필요 라이브러리, 파일 시스템에 설치되는 모든 파일을 패키징 할 수 있다. - 컨테이너 이미지가 레이어 구조로 구성되어 여러 이미지에서 공유, 재사용 가능하다. 1. 이미지 애플리케이션과 해당 환경을 패키지화 한 것. 파일 시스템과 이미지가 실행될 때 실행되어야 하는 파일들의 경로와 같은 메타데이터 포함. 2. 레지스트리 도커 이미지를 저장하고 공유할 수 있는 저장소다. 3. 컨테이너 이미지에서 생성된 일반적인 리눅스 컨테이너다. 다른 프로세스와 완전히 격리되어 있으며, 리소스 사용이 제한되어있다. 이미지와 컨테이너를 혼동하지 말자. 도커는 이..

쿠버네티스 소개 - 1

회사에서 쿠버네티스 환경을 경험하면서, 이거 공부해보고 싶다는 매력을 느꼈다. (이유는 없고 단지 모르는 분야라서.. ㅎㅎ) 컨테이너 관련 지식이 전무한 상태라, 선행학습으로 도커 관련 책(Docker in practice)을 먼저 읽었다.(3개월 걸렸다... 별로 추천하지 않는다.) 직장인의 공부가 늘 그렇듯, 조금씩, 그러나 꾸준히 공부해볼 생각이다. 스타트! 사내 영상 강의와, 인프라 문서로 선행 학습을 했지만, 쿠버네티스 인 액션 도서를 읽으면서 느낀 내용을 주로 포스팅할 예정이다. 내용 정리도 훌륭하게 되어 있고, 이해도 잘 된다고 느껴, 쿠버네티스를 배워보고 싶은 분들에게 해당 도서를 강력 추천한다. 1. 왜 쿠버네티스인가. 과거 애플리케이션: 모놀리식 단일 프로세스 강한 결합. 작은 부분을 ..