본문 바로가기
Devops/Kubernetes

[Kubernetes] Kubernetes 시작하기 (1)

by 볼링치는 개발자 2021. 6. 11.
반응형

Kubernetes란?

Kubernetes는 흔히 K8S라고 불리기도 합니다.

Kubernetes는 컨테이너화 된 애플리케이션들을 관리하고, ochestration 하는 기능을 제공합니다.

Kubernetes 외에도 apache wesos, docker swarm 등이 있습니다.

 

Ochestration?

Ochestration은 크게 다음과 같은 기능을 합니다.

스케쥴링 : 할 일 없는 애플리케이션 배포, 서버가 다운되면 다른 서버 띄워줌

클러스터링 : 서버가 여러 개여도 하나 다루는 것 같은 기능 제공

서비스 디스커버리 : 각 컨테이너에 DNS포트 등 정보가 있어서 쉽게 찾아볼 수 있음

로깅

 

Kubernetes를 학습하기 위해 사용한 환경은 minikube라는 Kubernetes가 공식적으로 제공하는 미니버전입니다.

Minikube 설치하기

Minikube를 설치하기 위해 다음 일련의 명령어들을 실행해주면 됩니다.

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube  

$ sudo mkdir -p /usr/local/bin/
$ sudo install minikube /usr/local/bin/

위의 명령어를 모두 실행했으면 설치됐는지 확인해보겠습니다.

$ minikube start

위 명령어를 입력하면 자동으로 아래와 같은 명령어를 입력하는 것과 동일합니다.

$ minikube start --driver=docker

혹시 해당 명령어를 실행하다가

"Exiting due to RSRC_INSUFFICIENT_CORES: Requested cpu count 2 is greater than the available cpus of 1"

이라는 에러가 뜨면, virtualbox설정에서 CPU의 개수를 1에서 2로 늘려주면 해결이 가능합니다.

 

그럼 조금의 시간이 지나면 아래와 같이 정상적으로 설치가 완료됩니다.

$ docker ps 명령어를 입력하면 아래와 같이 minikube가 실행 중인 것을 확인할 수 있습니다.

$ docker images 명령어를 입력하면 minikube 이미지 파일을 확인할 수 있습니다.


Minikube를 설치하고 활용하기 위해서 kubectl로 설치해줘야 합니다.

kubectl은 다음 일련의 명령어를 통해 설치할 수 있습니다.

최신 릴리스 다운로드
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

검증
$ curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

검증
$ echo "$(<kubectl.sha256) kubectl" | sha256sum --check

설치
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

마지막에 다음과 같이 $ kubectl version --client 명령어를 통해 설치 확인을 해주면 설치가 완료됩니다.


처음에 Docker를 설치하고 실행했던 명령은 다음과 같이 hello-world이미지로 컨테이너를 실행하는 것이었습니다.

$ docker run hello-world

이와 동일하게 minikube로 hello-world이미지로 컨테이너를 생성해 실행해보겠습니다.

$ kubectl run hello-world --image=hello-world -it --restart=Never

위 명령어의 뜻은 hello-world 이미지를 갖고 와서 hello-world라는 pod를 만들어서 한 번만 실행하고 끝내라 라는 의미입니다.

 

위 두 명령어는 동일한 동작을 합니다.

 

Docker에서 hello-world를 실행했을 때와 똑같은 결과를 확인할 수 있습니다.

다음 명령어로 실행했던 pod를 확인할 수 있습니다.

$ kubectl get po
$ kubectl get pods

다음 명령어로 모든 서비스를 확인할 수 있습니다.

$ kubectl get all

다음 명령어로 앞서 생성한 pod를 삭제할 수도 있습니다.

$ kubectl delete pods [pod 이름]

 

반응형

'Devops > Kubernetes' 카테고리의 다른 글

[Kubernetes] Deployment (2)  (0) 2021.06.11
[Kubernetes] Deployment (1)  (0) 2021.06.11
[Kubernetes] Kubernetes 시작하기 (2)  (0) 2021.06.11

댓글