Minikube Tutorial

Overview

단일 노드 쿠버네티스 클러스터(Minikube)를 구동하는 방법에 대해서 포스팅하겠습니다.

Prerequisites

Linux, Window, Mac 전부 가능하지만 저는 Linux서버로 작업해보겠습니다.

타 os는 아래 링크를 참고해주세요.
kubernetes.io/Minikube 설치

사용한 리눅스 서버 spec:
os : RHEL 8.1
arch : ppc64le(중요)

Docker 설치

먼저 도커를 설치해줍니다.
x86 architecture라면 epel만 레포지토리로 추가되면 설치됩니다.

repo추가 :

$ cat > /etc/yum.repos.d/docker.repo << EOF
[docker]
name=Docker
baseurl=http://ftp.unicamp.br/pub/ppc64el/rhel/7/docker-ppc64el/
enabled=1
gpgcheck=0
EOF

설치 및 서비스 시작 :

$ sudo yum install -y docker-ce
$ sudo systemctl enable docker
$ sudo systemctl start docker
$ sudo systemctl status docker

Kubectl 설치

쿠버네티스 repo추가 :

$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-ppc64le
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

x86이면 baseurl부분만 아래와 같이 바꿔주세요.

baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64

kubectl 설치 :

$ sudo yum install -y kubectl

Minikube 구성

이제 minikube를 설치해볼차례입니다.

x86 계열

x86계열은 kubernetes에서 공식적으로 제공하는 파일을 가져다 쓰시면 됩니다.

$ wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

ppc64le계열

아쉽게도 ppc64le로는 빌드된 파일이 없어서, 제가 임시로 빌드해둔 이미지를 사용해주시면 될 것 같습니다.
최신 release 버전인 1.7.3 버전으로 빌드된 파일입니다.(20.03.06기준)

$ wget https://github.com/GRuuuuu/minikube-ppc64le-binary/releases/download/v1.7.3/minikube

$ chmod +x minikube

그 다음 바로 클러스터를 구성해줍니다.

$ ./minikube start --vm-driver=none

vm-driver는 vm환경을 어떤걸 사용할거냐라고 묻는 옵션이고, 저는 로컬에 바로 실행시킬거니 none으로 설정해줍니다.

그럼 아래와 비슷한 출력을 확인할 수 있습니다.

* minikube v1.7.3 on Redhat 8.1 (ppc64le)
* Using the none driver based on user configuration
* Running on localhost (CPUs=4, Memory=7640MB, Disk=61424MB) ...
* OS release is Red Hat Enterprise Linux 8.1 (Ootpa)
* Preparing Kubernetes v1.17.3 on Docker 18.03.1-ce ...
    > kubelet.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubectl.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm: 36.12 MiB / 36.12 MiB [---------------] 100.00% 73.03 MiB p/s 1s
    > kubectl: 40.00 MiB / 40.00 MiB [---------------] 100.00% 51.93 MiB p/s 1s
    > kubelet: 102.52 MiB / 102.52 MiB [-------------] 100.00% 55.16 MiB p/s 2s
* Launching Kubernetes ...
* Enabling addons: default-storageclass, storage-provisioner
* Configuring local host environment ...
*
! The 'none' driver provides limited isolation and may reduce system security and reliability.
! For more information, see:
  - https://minikube.sigs.k8s.io/docs/reference/drivers/none/
*
! kubectl and minikube configuration will be stored in /root
! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:
*
  - sudo mv /root/.kube /root/.minikube $HOME
  - sudo chown -R $USER $HOME/.kube $HOME/.minikube
*
* This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
* Waiting for cluster to come online ...
* Done! kubectl is now configured to use "minikube"
* For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/

제대로 설치되었는지 확인하려면 :

$ ./minikube status
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

노드를 확인해보면 :

$ kubectl get node

NAME        STATUS   ROLES    AGE   VERSION
p615-kvm2   Ready    master   14m   v1.17.3

또 하나 재밌는 기능중에 하나는 실제 full kubernetes와 같이 dashboard기능도 제공한다는 점입니다.
아래 명령어로 활성화시킬 수 있습니다.

$ minikube dashboard

물론 외부에서 접근하려면 svc오픈과 svc type변경을 해주어야 합니다.

image

마지막으로 클러스터를 삭제하려면 delete를 사용합니다.

$ minikube delete

* Uninstalling Kubernetes v1.17.3 using kubeadm ...
* Deleting "minikube" in none ...
* Removed all traces of the "minikube" cluster.

댓글남기기