쿠버네티스는 그리스어로 조타수(선박의 방향을 바꾸기 위하여 사용하는 장치의 조작을 담당하는 선원)라는 뜻이라고 한다. (tmi..) 암튼 쿠버네티스는 오늘날 사실상 표준으로 사용되고 있는 컨테이너 오케스트레이션 도구이다. 👉 컨테이너 오케스트레이션이란?컨테이너 오케스
쿠버네티스는 사용 환경과 목적에 따라 설치하는 방법이 다양하다. 용도에 따른 쿠버네티스 설치 툴의 종류개발 용도의 쿠버네티스는 로컬 노드를 스탠드얼론(standalone) 모드로 사용하기 때문에 쿠버네티스의 기능들을 완벽하게 사용해보기에는 적합하지 않다는 단점이 있다.
쿠버네티스는 대부분의 리소스를 '오브젝트'라고 불리는 형태로 관리한다. 쿠버네티스에서는 컨테이너의 집합(Pods), 컨테이너의 집합을 관리하는 컨트롤러(Replica Set), 사용자(Service Account), 노드(Node)까지 하나의 오브젝트로 사용할 수 있다
쿠버네티스에서 컨테이너 애플리케이션의 기본 단위를 포드(Pod)라고 부르며, 포드는 1개 이상의 컨테이너로 구성된 컨테이너의 집합이다. 1개의 포드에는 1개의 컨테이너가 존재할 수도 있고, 여러 개의 컨테이너가 존재할 수도 있다. ❓Nginx 웹 서비스를 쿠버네티스에서
쿠버네티스는 왜 '도커 컨테이너'가 아니라 '포드'라는 새로운 개념을 굳이 사용하는 걸까?!쿠버네티스가 포드를 사용하는 이유는 여러 가지가 있지만, 그 중 가장 핵심적인 이유는 여러 리눅스 네임스페이스(namespace)를 공유하는 여러 컨테이너들을 추상화된 집합으로
❓레플리카셋을 사용하는 이유마이크로서비스에서는 여러 개의 동일한 컨테이너를 생성한 뒤 외부 요청이 각 컨테이너에 적절해 분배될 수 있어야 한다. 쿠버네티스에서는 동일한 여러 개의 포드를 생성해 외부 요청을 각 포드에 분배하는 방식을 사용해야 한다. 그러나 여러 개의 포
레플리카셋의 상위 오브젝트실제 쿠버네티스 운영 환경에서는 레플리카셋을 YAML 파일에서 사용하지 않고, 대부분 레플리카셋과 포드의 정보를 정의하는 디플로이먼트(Deployment)라는 이름의 오브젝트를 YAML 파일에 정의해 사용한다. 디플로이먼트를 생성하면 해당 디플
여러 개의 디플로이먼트를 하나의 완벽한 애플리케이션으로 연동하려면 포드 IP가 아닌, 서로를 발견(Discovery)할 수 있는 다른 방법이 필요하다. 도커 컨테이너는 -p(publish) 옵션으로 손쉽게 컨테이너를 외부로 노출할 수 있다. 그러나 쿠버네티스에서는 포드
쿠버네티스에서는 리소스를 논리적으로 구분하기 위해 네임스페이스(Namespace)라는 오브젝트를 제공한다. 네임스페이스는 포드, 레플리카셋, 디플로이먼트, 서비스 등과 같은 쿠버네티스 리소스들이 묶여 있는 하나의 가상 공간 또는 그룹이다. 예를 들어, 모니터링을 위한
쿠버네티스는 YAML 파일과 설정값을 분리할 수 있는 컨피그맵(Configmap)과 시크릿(Secret)이라는 오브젝트를 제공한다. 컨피그맵에는 설정값을, 시크릿에는 노출되어서는 안 되는 비밀값을 저장할 수 있다. 컨피그맵을 사용하지 않으면 환경에 따라 YAML 파일에
데이터베이스처럼 포드 내부에서 특정 데이터를 보유해야 하는, 상태가 있는(stateful) 애플리케이션의 경우에는 데이터를 어떻게 관리할지 고민해야 한다. 이를 해결하기 위해 포드의 데이터를 영속적으로 저장하기 위한 방법이 필요하다. 쿠버네티스에서는 호스트에 위치한 디
여러 개발자와 애플리케이션이 쿠버네티스를 동시에 사용할 때 깊이 있게 고려해야 할 부분 중 하나가 바로 보안이다. 쿠버네티스는 보안 측면에서도 다양한 기능을 제공하고 있는데, 그 중에서 가장 자주 사용되는 것은 RBAC(Role Based Access Control)를
쿠버네티스와 같은 컨테이너 오케스트레이션 툴에서 중요한 것 중 하나는 바로 클러스터 내부에서 컴퓨팅 자원 활용륭(utilization)을 늘리는 것이다. Limits: 해당 포드의 컨테이너가 최대로 사용할 수 있는 자원의 상한선Requests: 적어도 이 만큼의 자원
명령형(Imperative): docker run처럼 특정 명령을 처리하는 주체와 통신해 그 작업을 수행하고 그 결괏값을 돌려 받는 방식선언형(Declarative): 쿠버네티스처럼 최종적으로 도달해야 하는 바람직한 상태(Desired State)를 직접 정의한 뒤,
특정 동작을 수행하고 종료해야 하는 작업을 위한 오브젝트잡에서 원하는 최종 상태는 '포드가 실행되어 정상적으로 종료되는 것'잡에서 생성된 포드는 항상 실행 중인 것을 목표로 하지 않기 때문에, 한 번 수행하고 종료되는 배치(Batch) 작업을 위해 사용이 가능하다.단,