ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쿠버네티스 클러스터 구축하기 (1) minikube
    Container/Kubernetes 2021. 12. 21. 19:30
    반응형

    minikube란?

    minikubemacOS, LinuxWindows에서 로컬 kubernetes 클러스터를 빠르게 설정해주는 도구이다. 즉 minikube를 이용하면 손쉽게  로컬에서 쿠버네티스 클러스터를 만들 수 있다. 심지어 여러 클러스터를 관리하는 것도 가능하다.

     

    이 문서는 minikube를 설치하여, 로컬에 Kubernetes 클러스터를 구축하는 것에 대하여 다룬다. 설치 이전 나의 개발 환경은 다음과 같다.

    • desktop: macbook pro 13 2020
    • cpu: Intel Core i7 4core
    • memory: 32GB

    minikube 설치

    minikubeDocker, Virtualbox 등의 여러 가상 머신 드라이버 위에서 동작한다. 이 문서에서는 드라이버로 Docker를 사용한다. 만약 설치되어 있지 않다면 다음 문서를 참고하라.

     

    터미널에 다음 명령어로 설치 가능하다.

    # 설치 파일 다운로드
    $ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
    
    # minikube 설치
    $ sudo install minikube-darwin-amd64 /usr/local/bin/minikube
    
    # 설치 파일 삭제
    $ rm minikube-darwin-amd64

    클러스터 생성하기

    설치가 완료되었다면 다음 명령어로 클러스터를 생성할 수 있다.

    $ minikube start 
    😄  Darwin 11.3.1 의 minikube v1.24.0
    ✨  자동적으로 docker 드라이버가 선택되었습니다
    👍  minikube 클러스터의 minikube 컨트롤 플레인 노드를 시작하는 중
    🚜  베이스 이미지를 다운받는 중 ...
    💾  쿠버네티스 v1.22.3 을 다운로드 중 ...
        > preloaded-images-k8s-v13-v1...: 501.73 MiB / 501.73 MiB  100.00% 7.93 MiB
        > gcr.io/k8s-minikube/kicbase: 355.78 MiB / 355.78 MiB  100.00% 5.32 MiB p/
    🔥  Creating docker container (CPUs=2, Memory=1985MB) ...
    🐳  쿠버네티스 v1.22.3 을 Docker 20.10.8 런타임으로 설치하는 중
        ▪ 인증서 및 키를 생성하는 중 ...
        ▪ 컨트롤 플레인이 부팅...
        ▪ RBAC 규칙을 구성하는 중 ...
    🔎  Kubernetes 구성 요소를 확인...
        ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
    🌟  애드온 활성화 : storage-provisioner, default-storageclass
    🏄  끝났습니다! kubectl이 "minikube" 클러스터와 "default" 네임스페이스를 기본적으로 사용하도록 구성되었습니다.

    클러스터 테스트

    minikube로 구성된 클러스터는 일반적인 쿠버네티스 클러스터 사용법과 동일하다. 간단히 테스트하기 위해서 터미널에 kubectl get po -A를 입력해보자.

    $ kubectl get po -A
    NAMESPACE              NAME                                         READY   STATUS    RESTARTS        AGE
    kube-system            coredns-78fcd69978-w862c                     1/1     Running   0               5m58s
    kube-system            etcd-minikube                                1/1     Running   0               6m12s
    kube-system            kube-apiserver-minikube                      1/1     Running   0               6m9s
    kube-system            kube-controller-manager-minikube             1/1     Running   0               6m9s
    kube-system            kube-proxy-fm58k                             1/1     Running   0               5m58s
    kube-system            kube-scheduler-minikube                      1/1     Running   0               6m9s
    kube-system            storage-provisioner                          1/1     Running   1 (5m57s ago)   6m8s

     

    minikube의 한 가지 좋은 점은 대시보드를 쉽게 구성 및 확인할 수 있다는 것이다. 다음 명령어를 입력한다.

    $ minikube dashboard
    minikube dashboard                                                                                                      [14:10:11]
    🔌  대시보드를 활성화하는 중 ...
        ▪ Using image kubernetesui/metrics-scraper:v1.0.7
        ▪ Using image kubernetesui/dashboard:v2.3.1
    🤔  Verifying dashboard health ...
    🚀  프록시를 시작하는 중 ...
    🤔  Verifying proxy health ...
    🎉  Opening http://127.0.0.1:52354/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...

     

    그러면 다음과 같이 브라우저에 쿠버네티스 대시보드가 실행된다.

     

    원래 kuberenetes-dashboard의 경우, ServiceAccountRBAC를 따로 설정해야지 로그인이 가능한데 minikube는 그런 작업을 자동으로 해준다.

    클러스터 관리 명령어

    minikubekubernetes 클러스터를 관리하는 여러 명령어들이 있다.

     

    클러스터 일시 정지

    $ minikube pause 

    클러스터 일시 정지 해제

    $ minikube unpause

    클러스터 종료

    $ minikube stop

    클러스터 메모리 할당

    $ minikube config set memory 16384

    minikube 애드온 목록

    $ minikube addons list

    kubernetes 클러스터 생성 (-p 옵션은 클러스터 이름, --kuberenetes-version 옵션은 클러스터 버전 설정)

    $ minikube start -p aged --kubernetes-version=v1.16.1

    minikube가 관리하는 여러 클러스터 삭제

    $ minikube delete --all

    참고

Designed by Tistory.