Minikube로 쿠버네티스를 찍먹해보자 - Kubernetes cheatsheet[1]

Minikube로 쿠버네티스를 찍먹해보자 - Kubernetes cheatsheet[1]

날짜
생성일
Sep 13, 2024 06:47 AM
Description
쿠버네티스? 사용해보자
Tag
Kubernetes

설치

아래의 페이지를 들어가서, 본인의 컴퓨터에 맞게 설치 해보자.
 
나의 경우 mac + homebrew를 사용하여 아래와 같이 설치
brew install minikube
 

minikube 클러스터 만들기

minikube 시작

minikube start
notion image

dashboard 열어보기

minikube dashboard
notion image

디플로이먼트 만들기

쿠버네티스의 파드는 여기에서 말했듯, 관리와 네트워킹 목적으로 함께 묶여 있는 하나 이상의 컨테이너 그룹.
여기에서는 파드에 단 하나의 컨테이너만 있다.
 
쿠버네티스 디플로이먼트는 파드의 헬스를 검사해서 파드의 컨테이너가 종료되었다면 재시작해준다.
파드의 생성 및 스케일링을 관리하는 방법으로 디플로이먼트를 권장한다.
* AWS 개념에서 보면, AutoScaling + ELB라고 생각하면 될 듯 하다.
 

kubectl create 명령어를 실행하여 파드를 관리할 디플로이먼트를 만든다. 이 파드는 제공된 Docker 이미지를 기반으로 한 컨테이너를 실행한다.

kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080
notion image

디플로이먼트 보기

kubectl get deployments
notion image

파드 보기

kubectl get pods
notion image
 

클러스터 이벤트 보기

kubectl get events
notion image

kubectl 환경설정 보기

kubectl config view
notion image
 
대시보드에도 뭐가 생겼는데 사실 아직 아무것도 모르겠어요…ㅎ
대시보드에도 뭐가 생겼는데 사실 아직 아무것도 모르겠어요…ㅎ
 

서비스 만들기

기본적으로 파드는 쿠버네티스 클러스터 내부의 IP 주소로만 접근할 수 있다.
hello-node 컨테이너를 쿠버네티스 가상 네트워크 외부에서 접근하려면 파드를 쿠버네티스 서비스로 노출해야 한다.

kubectl expose 명령어로 퍼블릭 인터넷에 파드 노출하기

kubectl expose deployment hello-node --type=LoadBalancer --port=8080
notion image
우리는 registry.k8s.io/echoserver 이미지를 사용하였는데, 해당 이미지 내의 애플리케이션 코드는 TCP 포트 8080에서만 수신한다고 한다.
 kubectl expose를 사용하여 다른 포트를 노출한 경우, 클라이언트는 다른 포트에 연결할 수 없다.

생성한 서비스 살펴보기

kubectl get services
notion image
로드 밸런서를 지원하는 클라우드 공급자의 경우에는 서비스에 접근할 수 있도록 외부 IP 주소가 프로비저닝 한다. minikube에서 LoadBalancer타입은 minikube service 명령어를 통해서 해당 서비스를 접근할 수 있게 한다.

다음 명령어를 실행한다

minikube service hello-node
notion image
사이트가 띡 하고 뜬다
사이트가 띡 하고 뜬다
 

애드온 사용하기

현재 지원하는 애드온 목록을 확인한다

minikube addons list
notion image

애드온을 활성화 한다. 여기에서는 metrics-server를 예시로 사용한다.

minikube addons enable metrics-server
notion image

생성한 파드와 서비스를 확인한다.

kubectl get pod,svc -n kube-system
notion image

제거하기

kubectl delete service hello-node kubectl delete deployment hello-node # minikube 가상 머신 정지 minikube stop # minikube VM 삭제 minikube delete
notion image