웹사이트 검색

Ubuntu 18.04 LTS에서 Minikube와 함께 Kubernetes를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(Bionic Beaver)

이 페이지에서

  1. 요구 사항\n
  2. 시작하기\n
  3. VirtualBox 하이퍼바이저 설치\n
  4. Minikube 설치
  5. Kubectl 설치
  6. Minikube 시작
  7. Kubernetes 대시보드에 액세스

Minikube는 Linux 시스템 내부에 단일 노드 Kubernetes 클러스터를 설정할 수 있는 무료 오픈 소스 도구입니다. Minikube는 Linux, MacOS 및 Windows 운영 체제에 설치할 수 있습니다. Minikube는 NodePorts, DNS, Container Network Interface, Ingress, ConfigMaps, Secrets 등과 같은 다양한 Kubernetes 기능도 지원합니다.

이 튜토리얼에서는 Ubuntu 18.04 LTS에 Kubernetes 단일 노드 Cluster Minikube를 설치하는 방법을 알아봅니다.

요구 사항

  • 시스템에 설치된 신선한 Ubuntu 18.04 데스크탑.\n
  • 시스템에 루트 암호가 설정되어 있습니다.\n

시작하기

먼저 시스템을 최신 버전으로 업데이트해야 합니다. 다음 명령을 실행하여 이를 수행할 수 있습니다.

apt-get update -y
apt-get upgrade -y

시스템이 업데이트되면 시스템을 다시 시작하여 모든 변경 사항을 적용하십시오.

다음으로 다음 명령을 사용하여 일부 필수 패키지를 설치합니다.

apt-get install curl wget apt-transport-https -y

VirtualBox 하이퍼바이저 설치

Minikube는 KVM과 VirtualBox 하이퍼바이저를 모두 지원합니다. 따라서 시스템에 VirtualBox 또는 KVM을 설치해야 합니다.

다음 명령으로 Virtualbox를 설치할 수 있습니다.

apt-get install virtualbox virtualbox-ext-pack

설치가 완료되면 다음 단계로 진행할 수 있습니다.

Minikube 설치

먼저 최신 버전의 Minikube를 시스템에 다운로드해야 합니다. 다음 명령을 사용하여 공식 웹 사이트에서 다운로드할 수 있습니다.

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

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일을 /usr/local/bin 아래에 복사합니다.

cp minikube-linux-amd64 /usr/local/bin/minikube

다음으로 다음 명령을 사용하여 minikube에 실행 권한을 부여합니다.

chmod 755 /usr/local/bin/minikube

그런 다음 다음 명령을 사용하여 Minikube 버전을 확인합니다.

minikube version

다음 출력이 표시되어야 합니다.

minikube version: v0.34.1

Kubectl 설치

Kubectl은 Kubernetes에서 애플리케이션을 배포하고 관리하는 도구입니다. 기본적으로 Kubectl은 Ubuntu 18.04 기본 리포지토리에서 사용할 수 없습니다. 따라서 시스템에 Kubernetes 리포지토리를 추가해야 합니다.

먼저 다음 명령을 사용하여 GPG 키를 다운로드하고 추가합니다.

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

다음으로 다음 명령을 사용하여 Kubernetes apt 리포지토리를 추가합니다.

echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list

다음으로 리포지토리를 업데이트하고 다음 명령을 사용하여 Kubectl을 설치합니다.

apt-get update -y
apt-get install kubectl -y

Kubectl이 설치되면 다음 명령을 사용하여 버전을 확인할 수 있습니다.

kubectl version -o json

다음 출력이 표시되어야 합니다.

{
  "clientVersion": {
    "major": "1",
    "minor": "13",
    "gitVersion": "v1.13.4",
    "gitCommit": "c27b913fddd1a6c480c229191a087698aa92f0b1",
    "gitTreeState": "clean",
    "buildDate": "2019-02-28T13:37:52Z",
    "goVersion": "go1.11.5",
    "compiler": "gc",
    "platform": "linux/amd64"
  }
}

Minikube 시작하기

필요한 모든 패키지가 설치됩니다. 이제 다음 명령으로 Minikube를 시작할 수 있습니다.

minikube start

그러면 Virtualbox 이미지가 다운로드되고 아래와 같이 Kubernetes 클러스터가 구성됩니다.

o   minikube v0.34.1 on linux (amd64)
>   Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
@   Downloading Minikube ISO ...
 184.30 MB / 184.30 MB [============================================] 100.00% 0s
-   "minikube" IP address is 192.168.99.100
-   Configuring Docker as the container runtime ...
-   Preparing Kubernetes environment ...
@   Downloading kubeadm v1.13.3
@   Downloading kubelet v1.13.3

-   Pulling images required by Kubernetes v1.13.3 ...
-   Launching Kubernetes v1.13.3 using kubeadm ... 
-   Configuring cluster permissions ...
-   Verifying component health .....
+   kubectl is now configured to use "minikube"
=   Done! Thank you for using minikube!

이제 다음 명령을 사용하여 클러스터 상태를 확인할 수 있습니다.

kubectl cluster-info

다음 출력이 표시되어야 합니다.

Kubernetes master is running at https://192.168.99.100:8443
KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

다음 명령을 사용하여 Kubectl 기본 구성을 확인할 수도 있습니다.

kubectl config view

다음 출력이 표시되어야 합니다.

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /root/.minikube/ca.crt
    server: https://192.168.99.100:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /root/.minikube/client.crt
    client-key: /root/.minikube/client.key

실행 중인 노드를 확인하려면 다음 명령을 실행합니다.

kubectl get nodes

산출:

NAME       STATUS   ROLES    AGE     VERSION
minikube   Ready    master   2m45s   v1.13.3

다음 명령을 사용하여 Minikube Virtualbox에 액세스할 수도 있습니다.

minikube ssh

다음 출력이 표시되어야 합니다.

                         _             _            
            _         _ ( )           ( )           
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __  
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ 

이제 Virtualbox 셸을 종료합니다.

$exit

또한 다음 명령을 사용하여 언제든지 kubernetes 클러스터를 중지하고 삭제할 수 있습니다.

minikube stop
minikube delete

다음 명령을 사용하여 Minikube의 상태를 확인할 수 있습니다.

minikube status

다음 출력이 표시되어야 합니다.

host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

Kubernetes 대시보드에 액세스

기본적으로 Kubernetes는 클러스터를 관리하는 데 사용할 수 있는 웹 대시보드와 함께 제공됩니다.

다음 명령을 사용하여 모든 minikube 애드온을 나열할 수 있습니다.

minikube addons list

다음 출력이 표시되어야 합니다.

- addon-manager: enabled
- dashboard: disabled
- default-storageclass: enabled
- efk: disabled
- freshpod: disabled
- gvisor: disabled
- heapster: disabled
- ingress: disabled
- logviewer: disabled
- metrics-server: disabled
- nvidia-driver-installer: disabled
- nvidia-gpu-device-plugin: disabled
- registry: disabled
- registry-creds: disabled
- storage-provisioner: enabled
- storage-provisioner-gluster: disabled

다음으로 다음 명령을 사용하여 클러스터에서 실행 중인 모든 컨테이너 이미지를 나열합니다.

kubectl get pods --all-namespaces

다음 출력이 표시되어야 합니다.

NAMESPACE     NAME                                   READY   STATUS    RESTARTS   AGE
kube-system   coredns-86c58d9df4-76dkf               1/1     Running   0          4m30s
kube-system   coredns-86c58d9df4-wdtwb               1/1     Running   0          4m29s
kube-system   etcd-minikube                          1/1     Running   0          8m17s
kube-system   kube-addon-manager-minikube            1/1     Running   0          8m6s
kube-system   kube-apiserver-minikube                1/1     Running   1          8m13s
kube-system   kube-controller-manager-minikube       1/1     Running   1          8m13s
kube-system   kube-proxy-5k8qf                       1/1     Running   0          4m33s
kube-system   kube-scheduler-minikube                1/1     Running   0          8m2s
kube-system   kubernetes-dashboard-ccc79bfc9-z827s   1/1     Running   0          4m17s
kube-system   storage-provisioner                    1/1     Running   0          4m13s

이제 다음 명령을 실행하여 kubernate 대시보드의 URL을 가져옵니다.

minikube dashboard --url

다음 출력이 표시되어야 합니다.

-   Enabling dashboard ...
-   Verifying dashboard health ...
-   Launching proxy ...
-   Verifying proxy health ...
http://127.0.0.1:56508/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/

이제 Minikube 웹 URL이 생성되었습니다. 그런 다음 웹 브라우저를 열고 URL http://127.0.0.1:56508/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/를 입력합니다. 다음 페이지와 같이 Kubernate 대시보드로 리디렉션됩니다.

축하합니다! Ubuntu 18.04에 Minikube를 성공적으로 설치했습니다. 이제 웹 브라우저를 통해 Kubernetes 클러스터를 쉽게 관리할 수 있습니다.