쿠버네티스
-
쿠버네티스 컨트롤러 : 복제 컨트롤러(Replication Controller)Kubernetes 2018. 6. 13. 09:00
복제 컨트롤러(Replication Controller)는 쿠버네티스의 가장 기본적인 컨트롤러 입니다. 지정된 숫자 만큼의 포드가 항상 클러스터 내에서 실행되고 있도록 관리하는 역할을 합니다. 포드 2개를 명시해둔 복제 컨트롤러가 있다면 장애나 다른 이유로 컨트롤러 개수가 2개보다 작아졌을때 다시 새로운 포드를 띄워서 포드 개수를 2개로 맞춰줍니다. 또한 포드가 2개보다 많아 졌을때에도 포드를 줄여서 2개만큼만 실행되게 조정하는 역할을 합니다. 컨트롤러를 사용하지 않고 포드를 직접 띄웠을때는 포드에 이상이 생겨서 종료되거나 삭제됐을때 재시작이 어렵습니다. 포드가 떠 있던 노드에 장애가 발생해서 포드가 내려갔다고 했을때 복제컨트롤러를 이용해서 실행한 포드라면 클러스터내의 다른 노드에 다시 포드를 띄워 줍니..
-
쿠버네티스(kubernetes) 포드(POD)Kubernetes 2018. 6. 11. 09:00
쿠버네티스는 컨테이너가 어떻게 생성/운영/삭제되는지를 관리하는 컨테이너 오케스트레이션 도구입니다. 하지만 실제로 쿠버네티스는 단일 컨테이너를 관리하는게 아니라 포드(POD)라는 단위로 컨테이너를 묶어서 관리합니다. 포드는 컨테이너 1개로 구성될수도 있고 여러개로 구성될수도 있습니다. 앞에서 실행해봤던 간단한 예제들도 단일 컨테이너를 띄우는 것처럼 해봤지만 실제로는 포드 단위로 관리가 되었던 것입니다. 포드에 컨테이너 1개만 띄울때는 일반적인 경우에 컨테이너를 관리하는 것과 동일 하다고 보시면 됩니다. 하지만 쿠버네티스는 컨테이너를 직접 관리하지 않고 포드를 관리합니다. 포드에 컨테이너 여러개를 한꺼번에 띄울때는 각 컨테이너가 각각의 역할을 하도록 구성할 수 있습니다. 하나의 포드에 속하는 컨테이너들은 모..
-
쿠버네티스(kubernetes) 구성요소Kubernetes 2018. 6. 8. 09:00
쿠버네티스는 클러스터를 관리하는 도구입니다. 클러스터라 함은 단일 컴퓨터가 아니라 여러대의 컴퓨터를 하나의 묶음으로 취급하는걸 의미합니다. 그러다보니 하나의 프로세스가 아니라 여러가지 요소로 구성되어 있습니다. 프로세스들은 크게 3가지 종류로 구분됩니다. 클러스터를 관리하기위해 필수적인 마스터(master), 노드(node)와 필수는 아니지만 추가로 사용가능한 애드온(addon)으로 구분됩니다. 마스터 구성요소 마스터 구성요소들은 실질적으로 클러스터의 전체적인 관리를 하는 것들입니다. etcd, kube-apiserver, kube-scheduler, kube-controller-manager, cloud-controller-manager등이 마스터 구성요소입니다. ETCD etcd는 고가용성을 제공하는..
-
쿠버네티스(kubernetes) 아키텍처Kubernetes 2018. 6. 6. 09:00
쿠버네티스 클러스터는 크게 2가지 종류로 구성됩니다. 클러스터를 관리하는 역할을 하는 마스터(master)와 실제 컨테이너를 실행시키는 작업을 하는 노드(node)입니다. 구성도는 다음과 같습니다. 마스터에는 etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker등이 실행됩니다. 각 프로세스들이 다른 장비에 별개로 떠도 실제 쿠버네티스 클러스터를 운영하는데 이상은 없지만 마스터 장비 1대에는 위에 있는 프로세스 한 묶음을 같이 실행하는게 일반적인 구성입니다. 마스터는 고가용성을 위해서 3대 정도를 실행해서 운영합니다. 평소에 실제 리더로서 클러스터를 관리하는 마스터는 1대이고 나머지 2대는 대기중입..
-
쿠버네티스 구성요소 : 객체(Object), 컨트롤러(Controller), 템플릿(Template)Kubernetes 2018. 6. 5. 09:00
쿠버네티스에서 사용하는 개념은 크게 객체(Object)와 그걸 관리하는 컨트롤러(Controller)가 있습니다. 객체는 사용자가 쿠버네티스에 바라는 상태(desired state)를 의미하고 컨트롤러는 객체가 원래 설정된 상태를 잘 유지할수있게 관리하는 역할을 합니다. 객체에는 포드(pod), 서비스(service), 볼륨(volume), 네임스페이스(namespace)등이 있습니다. 컨트롤러에는 ReplicaSet, Deployment, StatefulSet, DaemonSet, Job등이 있습니다. 쿠버네티스 클러스터에 객체나 컨트롤러가 어떤 상태여야 하는지를 제출할때는 yaml 파일형식의 템플릿을 사용합니다. 템플릿의 기본 형식은 다음과 같습니다. --- apiVersion : v1 Kind : ..
-
kubernetes 로 컨테이너 실행해 보기Kubernetes 2018. 6. 4. 09:00
쿠버네티스를 이용해서 컨테이너를 실행해 보도록 하겠습니다. 컨테이너를 실행하기 위해서는 몇 가지 방법이 있습니다. kubectl 명령어로 직접 실행할수도 있고, 컨테이너를 어떻게 실행할지에 대한 상세한 내용을 yaml형식의 파일에 기록해서 사용할수도 있습니다. yaml 파일을 이용해서 실행하게 되면 버전관리 시스템과 연동해서 해당 컨테이너를 과거엔 어떤 사양으로 실행시켰었는지 확인할 수 있는 장점이 있습니다. 그 부분은 나중에 상세히 살펴보기로 하고 우선은 kubectl 명령어로 직접 컨테이너를 실행시켜 보도록 하겠습니다. nginx를 컨테이너로 실행시켜 보도록하겠습니다. 아래 명령어를 입력해 봅니다. kubectl run nginx --image nginx --port=80 kubectl 명령어를 입력..
-
mac 에 docker, kubernetes 설치하기Kubernetes 2018. 6. 1. 09:00
https://www.docker.com/community-edition#/download 에서 OS에 맞는 설치파일을다운로드 합니다. 현재(2018년 4월) dockr에서의 kubernetes지원은 아직 실험버전이라서 edge버전의 설치파일을 다운받아서 설치합니다. 설치하고나서 docker를 실행합니다. 다음처럼 상단바에 도커가 실행된걸 확인할 수 있습니다. 터미널에서 아래처럼 docker가 제대로 설치됐는지 확인합니다. 쿠버네티스를 활성화 시키기 위해서 도커 아이콘을 클릭해서 Perferences... 를 선택합니다. 상단의 탭중에 Kubernetes를 선택한 다음에 "Enable Kubernetes" 를 선택한 다음 Apply 버튼을 눌러서 적용합니다. 설치가 완료되면 아래처럼 터미널에서 kubec..
-
윈도우에 docker, kubernetes 설치하기Kubernetes 2018. 5. 30. 09:00
윈도우용 docker를 아래 링크에서 다운로드 받아서 설치합니다. https://www.docker.com/community-edition#/download 설치하는데 테스트한 환경은 윈도우10이고, 도커 버전은 18.04-ce입니다. 현재(2018년 4월)까지 쿠버네티스 지원은 실험버전이기 때문에 안정버전(Stable channel)이 아닌 실험버전(Edge channel)을 받아서 설치해야 합니다. PC에 가상화 관련 옵션이 켜져 있지 않다면 설치가 완료되고 나서 자동으로 위 그림과 같은 옵션창이 보이면서 재시작을 하게 됩니다. OK를 선택해서 재시작을 해부면 됩니다. 재시작해서 다시 PC에 로그인 하면 아래처럼 도커가 실행된 화면을 볼 수 있습니다. 안내에 나오는데로 마이크로소프트 파워셀을 실행시켜..