설치
아래의 페이지를 들어가서, 본인의 컴퓨터에 맞게 설치 해보자.
나의 경우 mac + homebrew를 사용하여 아래와 같이 설치
brew install minikube
minikube 클러스터 만들기
minikube 시작
minikube start
dashboard 열어보기
minikube dashboard
디플로이먼트 만들기
쿠버네티스의 파드는 여기에서 말했듯, 관리와 네트워킹 목적으로 함께 묶여 있는 하나 이상의 컨테이너 그룹.
여기에서는 파드에 단 하나의 컨테이너만 있다.
쿠버네티스 디플로이먼트
는 파드의 헬스를 검사해서 파드의 컨테이너가 종료되었다면 재시작해준다.파드의 생성 및 스케일링을 관리하는 방법으로 디플로이먼트를 권장한다.
* 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
디플로이먼트 보기
kubectl get deployments
파드 보기
kubectl get pods
클러스터 이벤트 보기
kubectl get events
kubectl 환경설정 보기
kubectl config view
서비스 만들기
기본적으로 파드는 쿠버네티스 클러스터 내부의 IP 주소로만 접근할 수 있다.
hello-node 컨테이너를 쿠버네티스 가상 네트워크 외부에서 접근하려면 파드를 쿠버네티스
서비스
로 노출해야 한다.kubectl expose
명령어로 퍼블릭 인터넷에 파드 노출하기
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
우리는
registry.k8s.io/echoserver
이미지를 사용하였는데, 해당 이미지 내의 애플리케이션 코드는 TCP 포트 8080에서만 수신한다고 한다.kubectl expose
를 사용하여 다른 포트를 노출한 경우, 클라이언트는 다른 포트에 연결할 수 없다.생성한 서비스 살펴보기
kubectl get services
로드 밸런서를 지원하는 클라우드 공급자의 경우에는 서비스에 접근할 수 있도록 외부 IP 주소가 프로비저닝 한다. minikube에서
LoadBalancer
타입은 minikube service
명령어를 통해서 해당 서비스를 접근할 수 있게 한다.다음 명령어를 실행한다
minikube service hello-node
애드온 사용하기
현재 지원하는 애드온 목록을 확인한다
minikube addons list
애드온을 활성화 한다. 여기에서는 metrics-server
를 예시로 사용한다.
minikube addons enable metrics-server
생성한 파드와 서비스를 확인한다.
kubectl get pod,svc -n kube-system
제거하기
kubectl delete service hello-node kubectl delete deployment hello-node # minikube 가상 머신 정지 minikube stop # minikube VM 삭제 minikube delete