Ubuntu 20.04에서 Minikube와 함께 Kubernetes를 설치하는 방법
이 튜토리얼은 다음 OS 버전에 대해 존재합니다.
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 18.04(Bionic Beaver)
이 페이지에서
- 전제 조건
- 시작하기\n
- 도커 설치
- Minikube 설치
- Kubectl 설치
- Minikube 시작
- Kubernetes 대시보드에 액세스
- 결론
Minikube는 로컬 시스템에서 단일 노드 Kubernetes 클러스터를 설정하는 데 도움이 되는 오픈 소스 도구입니다. 일상적인 개발 작업을 위해 개인용 컴퓨터에서 단일 노드 Kubernetes 클러스터를 쉽게 실행할 수 있습니다. 크로스 플랫폼이며 macOS, Linux 및 Windows에 설치할 수 있습니다.
이 튜토리얼에서는 Ubuntu 20.04 서버에 Minikube를 설치하는 방법을 보여줍니다.
전제 조건
- Ubuntu 20.04 데스크탑이 시스템에 설치되어 있습니다.
- 최소 4GB RAM 및 2개 이상의 CPU 코어.
- 로컬 시스템에서 하드웨어 가상화를 활성화해야 합니다.\n
- 루트 암호는 서버에 구성됩니다.\n
시작하기
시작하기 전에 시스템 패키지를 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령을 실행하여 업데이트할 수 있습니다.
apt-get update -y
모든 패키지가 업데이트되면 다음 명령을 실행하여 다른 종속성을 설치합니다.
apt-get install curl wget apt-transport-https virtualbox virtualbox-ext-pack -y
완료되면 다음 단계로 진행할 수 있습니다.
도커 설치
다음으로 시스템에 Docker를 설치해야 합니다. 다음 명령을 실행하여 설치할 수 있습니다.
apt-get install docker.io -y
Docker가 설치되면 Docker 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.
systemctl start docker
systemctl enable docker
이제 다음 명령을 사용하여 Docker 버전을 확인할 수 있습니다.
docker --version
다음 출력에 Docker 버전이 표시되어야 합니다.
Docker version 19.03.8, build afacb8b7f0
완료되면 다음 단계로 진행할 수 있습니다.
Minikube 설치
기본적으로 Minikube는 Ubuntu 기본 리포지토리에서 사용할 수 없습니다. 따라서 공식 웹사이트에서 Minikube 바이너리 패키지를 다운로드해야 합니다. 다음 명령으로 다운로드할 수 있습니다.
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
다운로드가 완료되면 다음 명령을 사용하여 다운로드한 바이너리를 시스템 경로에 복사합니다.
cp minikube-linux-amd64 /usr/local/bin/minikube
다음으로 다음 명령으로 실행 권한을 제공합니다.
chmod 755 /usr/local/bin/minikube
이제 다음 명령을 사용하여 Minikube 버전을 확인할 수 있습니다.
minikube version
다음 출력이 표시되어야 합니다.
minikube version: v1.16.0 commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1
완료되면 다음 단계로 진행할 수 있습니다.
Kubectl 설치
다음으로 Kubernetes에서 애플리케이션을 관리하려면 Kubectl 및 기타 도구를 설치해야 합니다. 먼저 다음 명령을 사용하여 GPG 키를 추가합니다.
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
다음으로 다음 명령을 사용하여 kubectl 리포지토리를 추가합니다.
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 kubeadm kubectl -y
모든 패키지가 설치되면 다음 단계로 진행할 수 있습니다.
Minikube 시작하기
이 시점에서 필요한 모든 패키지가 설치됩니다. 이제 다음 명령으로 Minikube를 시작할 수 있습니다.
minikube start
다음 출력이 표시되어야 합니다.
* minikube v1.16.0 on Ubuntu 20.04 (kvm/amd64) * Using the none driver based on user configuration * Starting control plane node minikube in cluster minikube * Running on localhost (CPUs=2, Memory=3936MB, Disk=100726MB) ... * OS release is Ubuntu 20.04 LTS * Preparing Kubernetes v1.20.0 on Docker 19.03.8 ... - kubelet.resolv-conf=/run/systemd/resolve/resolv.conf > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubeadm: 37.40 MiB / 37.40 MiB [---------------] 100.00% 27.29 MiB p/s 1s > kubectl: 38.37 MiB / 38.37 MiB [---------------] 100.00% 27.60 MiB p/s 1s > kubelet: 108.69 MiB / 108.69 MiB [-------------] 100.00% 42.08 MiB p/s 3s - Generating certificates and keys ... - Booting up control plane ... - Configuring RBAC rules ... * Configuring local host environment ... * ! The 'none' driver is designed for experts who need to integrate with an existing VM * Most users should use the newer 'docker' driver instead, which does not require root! * 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 * Verifying Kubernetes components... * Enabled addons: storage-provisioner, default-storageclass * Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
다음 명령으로 클러스터 정보를 확인할 수 있습니다.
kubectl cluster-info
다음 출력이 표시되어야 합니다.
Kubernetes control plane is running at https://45.58.38.77:8443 KubeDNS is running at https://45.58.38.77: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://45.58.38.77:8443 name: minikube contexts: - context: cluster: minikube namespace: default user: minikube name: minikube current-context: minikube kind: Config preferences: {} users: - name: minikube user: client-certificate: /root/.minikube/profiles/minikube/client.crt client-key: /root/.minikube/profiles/minikube/client.key
다음 명령을 사용하여 실행 중인 모든 노드를 확인할 수 있습니다.
kubectl get nodes
다음 출력이 표시되어야 합니다.
NAME STATUS ROLES AGE VERSION ubunt4 Ready control-plane,master 2m24s v1.20.0
Minikube의 상태를 확인하려면 다음 명령을 실행합니다.
minikube status
다음 출력이 표시되어야 합니다.
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured timeToStop: Nonexistent
완료되면 다음 단계로 진행할 수 있습니다.
Kubernetes 대시보드에 액세스
Minikube는 필요에 따라 활성화 또는 비활성화할 수 있는 많은 애드온과 함께 제공됩니다. 다음 명령을 사용하여 모든 애드온을 나열할 수 있습니다.
minikube addons list
다음 출력이 표시되어야 합니다.
|-----------------------------|----------|--------------| | ADDON NAME | PROFILE | STATUS | |-----------------------------|----------|--------------| | ambassador | minikube | disabled | | csi-hostpath-driver | minikube | disabled | | dashboard | minikube | disabled | | default-storageclass | minikube | enabled ? | | efk | minikube | disabled | | freshpod | minikube | disabled | | gcp-auth | minikube | disabled | | gvisor | minikube | disabled | | helm-tiller | minikube | disabled | | ingress | minikube | disabled | | ingress-dns | minikube | disabled | | istio | minikube | disabled | | istio-provisioner | minikube | disabled | | kubevirt | minikube | disabled | | logviewer | minikube | disabled | | metallb | minikube | disabled | | metrics-server | minikube | disabled | | nvidia-driver-installer | minikube | disabled | | nvidia-gpu-device-plugin | minikube | disabled | | olm | minikube | disabled | | pod-security-policy | minikube | disabled | | registry | minikube | disabled | | registry-aliases | minikube | disabled | | registry-creds | minikube | disabled | | storage-provisioner | minikube | enabled ? | | storage-provisioner-gluster | minikube | disabled | | volumesnapshots | minikube | disabled | |-----------------------------|----------|--------------|
다음으로 다음 명령을 사용하여 클러스터에서 실행 중인 모든 컨테이너 이미지를 나열합니다.
kubectl get pods --all-namespaces
다음과 같은 결과가 표시되어야 합니다.
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-74ff55c5b-skf9d 1/1 Running 0 3m45s kube-system etcd-ubunt4 1/1 Running 0 3m54s kube-system kube-apiserver-ubunt4 1/1 Running 0 3m54s kube-system kube-controller-manager-ubunt4 1/1 Running 0 3m54s kube-system kube-proxy-w8q6d 1/1 Running 0 3m45s kube-system kube-scheduler-ubunt4 1/1 Running 0 3m54s kube-system storage-provisioner 1/1 Running 0 3m59s
그런 다음 Kubernetes 대시보드를 활성화하고 다음 명령을 사용하여 대시보드의 URL을 가져옵니다.
minikube dashboard --url
다음 출력이 표시되어야 합니다.
* Enabling dashboard ... * Verifying dashboard health ... * Launching proxy ... * Verifying proxy health ... http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ You can now access and manage the Kubernetes cluster using the URL http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
결론
위 가이드에서는 Minikube를 설치하고 이를 사용하여 Ubuntu 20.04에서 Kubernetes 클러스터를 설정하는 방법을 배웠습니다. 이제 Minikube를 사용하여 Kubernetes 클러스터를 로컬로 설정하고 웹 브라우저에서 관리할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.