본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# Docker and K8s

[K8s] Hello Minikube(CentOS 7)

by iamlucia 2021. 3. 6.

 

 

노트북 사양이 부족한 관계로 멀티 클러스터 구성보다

Minikube로 쿠버네티스 실습이 적절했다 ㅠ ㅠ

(이전에 서버를 사용할 수 있었을 때에는 신나게 클러스터 구축했었는데...)

 

추가로 구매한 메모리가 온다면,

얼른 데스크톱에 추가하여 쿠버네티스 클러스터 환경 구축 실습을 진행할 것이다 ! 😎😎😎

 

오늘의 Minikube 설치 환경은 다음과 같다.

 

💡 VMware 기반 가상 서버

OS: CentOS 7
CPU : 2 (가상화 지원 YES)
# grep -E --color 'vmx|svm' /proc/cpuinfo 명령어를 사용하여 가상화 지원 확인 필요. 
MEM: 4
HDD: 20 

 

매우 노트북의 사양이 연약한 관계로 최소한의 자원을 사용하였다

(메모리는 2GB여도 된다하지만, 메모리는 항상 될 수 있는한 최소보다 더 많이! 더 넉넉하게!!!!!)

> Minikube 직접 다운로드 설치하여 start! 

 

# useradd minikube
# passwd --stdin minikube
# echo "minikube ALL=(ALL) ALL" >> /etc/sudoers.d/minikube
# su - minikube

$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube
$ minikube start

 

 

💡 아래와 같은 오류가 뜨는 경우,  minikube 일반계정의 기본 그룹을 docker로 변경한다. ( $ sudo usermod -g docker minikube)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version:ersion: dial unix /var/run/docker.sock: connect: permission denied

 

너무나 간단하게 설치된 minikube....귀여운 이모지들이 나타난다

docker 서비스를 재시작하는 중,

도커를 설치하고 기도하는 전용 계정 doadmin과 minikube계정이 달라서 그런지

docker 관련 에러가 자꾸 나타났다. 도커를 재시작해도 자꾸 error가 나타난다면, minikube를 삭제했다가 재기동해보자.

 

$ minikube delete
$ minikube start 

 

⚓docker ps 로 확인해보니 15개의 컨테이너가 실행 중

 

> Minikube  Dashboard

 

[minikube@kube1 ~]$ minikube dashboard
🔌  Enabling dashboard ...
    ▪ Using image kubernetesui/dashboard:v2.1.0
    ▪ Using image kubernetesui/metrics-scraper:v1.0.4
🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
🎉  Opening http://127.0.0.1:46086/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
👉  http://127.0.0.1:46086/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

^C "hang 걸리면, 아래와 같이 porxy를 열어준다" 
[minikube@kube1 ~]$ kubectl proxy --address='0.0.0.0' --disable-filter=true

 

그 다음,

[VM IP]:8080/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ 접속

 

> Minikube 클러스터 구성 및 상태 확인

$ kubectl cluster-info

클러스터의 구성을 확인하기: 마스터의 ip주소 및 내부 dns 엔드포인트 확인

 

$ kubectl get node 

Minikube는 싱글 노드이기 때문에 마스터 노드와 워커노드가 하나에 다 포함되는 구성이다.

 

> Pod 건드려보기 

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

hello-world 이미지로 컨테이너 실행(run) 

 

👉 --restart=Never 인 경우에 pod가 컨트롤러를 통해서가 아니라 직접 기동된다

👉 -it 옵션은 docker에서와 똑같이 터미널과 연결하여 입력을 연결하는 대화모드 설정 관련 옵션인데, 

해당 it 옵션을 제거하면 pod/hello-world created 라는 단순 출력만 나타나며 백그라운드로 실행된다.

표준 출력 메세지들은 로그로 보존되기 때문에 로그를 출력해 보려면 kubectl logs 커맨드를 활용한다. 

 

$ kubectl get pod 로 생성된 pod의 확인이 가능하다. 

$ kubectl delete pod hello-world(오브젝트명)을 통해 삭제할 수 있다.

 

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

만약 pod 실행 명령어에 --rm 이라는 옵션을 붙이는 경우 해당 컨테이너는 실행 후 자동으로 지워진다.