본문 바로가기
kubenetes

minikube 클러스터 설치

by kyeongseo.oh 2022. 3. 13.

minikube를 cluster로 설치하기

 

일단 사전 작업으로 docker랑 kubectl을 설치해준다.

 

web ui를 올려야하니 방화벽을 꺼주고 시작한다. 나중에 하면 까먹음

systemctl stop firewalld
systemctl disable firewalld

 

1. kubectl 설치

아래 링크로 최신 릴리즈 파일을 다운받는다.

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

 

아래처럼 특정 버전을 다운받을 수 있다.

curl -LO https://dl.k8s.io/release/v1.23.0/bin/linux/amd64/kubectl

 

바이너리를 실행 가능하게 변경한다.

chmod +x ./kubectl

 

kubectl을 실행 경로로 이동시킨다.

sudo mv ./kubectl /usr/local/bin/kubectl

 

kubectl 설치 완료.

 

 

2. docker 설치

 

기존 설치된 docker를 제거해준다.

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

 

yum-utils를 설치한다.

sudo yum install -y yum-utils

 

docker repository를 등록한다.

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

docker를 install 해준다. (docker 설치 binary는 다음 링크에 있음 https://download.docker.com/linux/centos/)

yum install -y docker-ce docker-ce-cli containerd.io

 

다음과 같은 dependency가 함께 설치된다.

인터넷이 안되는 환경이라면 아래 package를 버전에 받게 다운받고 서버에 올리고 하면 될 듯

========================================================================================================================
 Package                            Arch            Version                             Repository                 Size
========================================================================================================================
Installing:
 containerd.io                      x86_64          1.5.10-3.1.el7                      docker-ce-stable           30 M
 docker-ce                          x86_64          3:20.10.13-3.el7                    docker-ce-stable           22 M
 docker-ce-cli                      x86_64          1:20.10.13-3.el7                    docker-ce-stable           30 M
Installing for dependencies:
 audit-libs-python                  x86_64          2.8.5-4.el7                         base                       76 k
 checkpolicy                        x86_64          2.5-8.el7                           base                      295 k
 container-selinux                  noarch          2:2.119.2-1.911c772.el7_8           extras                     40 k
 docker-ce-rootless-extras          x86_64          20.10.13-3.el7                      docker-ce-stable          8.1 M
 docker-scan-plugin                 x86_64          0.17.0-3.el7                        docker-ce-stable          3.7 M
 fuse-overlayfs                     x86_64          0.7.2-6.el7_8                       extras                     54 k
 fuse3-libs                         x86_64          3.6.1-4.el7                         extras                     82 k
 libcgroup                          x86_64          0.41-21.el7                         base                       66 k
 libseccomp                         x86_64          2.3.1-4.el7                         base                       56 k
 libsemanage-python                 x86_64          2.5-14.el7                          base                      113 k
 policycoreutils-python             x86_64          2.5-34.el7                          base                      457 k
 python-IPy                         noarch          0.75-6.el7                          base                       32 k
 setools-libs                       x86_64          3.3.8-4.el7                         base                      620 k
 slirp4netns                        x86_64          0.4.3-4.el7_8                       extras                     81 k
Updating for dependencies:
 policycoreutils                    x86_64          2.5-34.el7                          base                      917 k

Transaction Summary
========================================================================================================================
Install  3 Packages (+14 Dependent packages)

 

docker start

sudo systemctl start docker

 

*설치 버전

[root@edge ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.13
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 10 14:09:51 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.13
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       906f57f
  Built:            Thu Mar 10 14:08:16 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.10
  GitCommit:        2a1d4dbdb2a1030dc5b01e96fb110a9d9f150ecc
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

 

 

docker 설치 완료.

 

3. minikube 설치

minikube를 master, worker로 설치한다.

여러 노드에 cluster을 구성하는 건 아니고 노드 하나에 master, worker를 같이 올리는 구조인 것 같음.

참고로 --nodes (-n) 옵션은 무시되니 대신에 "minikube node add" 명령을 써야함.

 

minikube 바이너리 파일을 다운로드한다.

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

 

minikube install 하기

sudo install minikube-linux-amd64 /usr/local/bin/minikube

 

minikube start

minikube start

 

minikube start를 하니 다음과 같은 error가 발생하며 시작되지 않음

X Exiting due to DRV_AS_ROOT: The "docker" driver should not be used with root privileges.

 

root user로 하지 말라는 것 같으니 다른 유저로 로그인해 실행한다.

ddadmin user로 로그인 후 docker group에 추가해줌

su ddadmin

sudo usermod -aG docker ddadmin && newgrp docker

 

minikube를 다시 시작해본다.

 

 minikube start --driver=docker

 

아래처럼 --force 옵션을 주면 root에서도 실행 가능하긴 함

minikube start --force --driver=docker

 

--memory=max --cpus=max or --memory=1024mb --cpus=4 요런식으로 memory, cpu 할당 가능함.

max는 왠만하면 안 주는 게 좋을 듯

 

 

현재 상태는 master만 올라와 있는 상태 kubectl get nodes로 확인해본다.

[ddadmin@edge root]$ kubectl get nodes
NAME       STATUS   ROLES                  AGE     VERSION
minikube   Ready    control-plane,master   5m55s   v1.23.3

 

노드를 추가하고 다시 확인해본다.

 

[ddadmin@edge root]$ minikube node add

[ddadmin@edge root]$ kubectl get nodes
NAME           STATUS   ROLES                  AGE     VERSION
minikube       Ready    control-plane,master   7m29s   v1.23.3
minikube-m02   Ready    <none>                 45s     v1.23.3

 

master, worker가 잘 올라와있다.

 


 

그런데 root로 돌아가 kubectl get pods를 실행해보니 아래와 같은 요상한 에러가 나타남

The connection to the server localhost:8080 was refused - did you specify the right host or port?

 

이건 ddadmin의 ~/.kube 아래에 있는 config 파일을 복사해주면 해결 가능

cp /home/ddadmin/.kube/config /root/.kube/config

 

 

 

'kubenetes' 카테고리의 다른 글

kubernetes dashboard login skip하는 방법  (0) 2022.03.20
kubernetes dashboard 설치  (0) 2022.03.20
kubernetes 설치  (0) 2022.03.19
minikube service web에서 접속하는 방법  (2) 2022.03.16
minikube dashboard 활성화, 접속 방법  (0) 2022.03.13

댓글