Debian 11에서 Minicube를 사용하여 Kubernetes 클러스터를 설정하는 방법
이 페이지에서
- 요구 사항\n
- 도커 설치
- Kubectl 설치
- Minikube 설치
- Minikube 시작
- Minikube Kubernetes 대시보드에 액세스
Minikube는 로컬 시스템에서 Kubernetes 클러스터를 설정하는 데 도움이 되는 내장 애드온 세트와 함께 제공되는 무료 오픈 소스 도구입니다. minicube 명령은 명령줄 인터페이스를 통해 Kubernetes 클러스터를 관리할 수 있는 여러 하위 명령을 제공합니다. Minikube는 크로스 플랫폼이며 Linux, macOS 및 Windows를 포함한 많은 운영 체제를 지원합니다. VM, 컨테이너 또는 베어 메탈로 배포할 수 있습니다.
이 튜토리얼에서는 Debian 11에 Minikube를 설치하는 방법을 설명합니다.
요구 사항
- 신선한 Debian 11이 시스템에 설치되어 있습니다.\n
- 시스템에 루트 암호가 설정되어 있습니다.\n
도커 설치
Minikube를 설치하기 전에 Docker 패키지를 서버에 설치해야 합니다. 설치되어 있지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다.
apt install docker.io -y
Docker를 설치한 후 다음 명령을 사용하여 Docker 버전을 확인할 수 있습니다.
docker --version
다음 출력이 표시되어야 합니다.
Docker version 20.10.5+dfsg1, build 55c4c88
Kubectl 설치
Kubectl은 Kubernetes에서 애플리케이션을 배포하고 관리하는 도구입니다. 기본적으로 Kubectl은 Debian 11 기본 리포지토리에서 사용할 수 없습니다. 따라서 Snap을 사용하여 설치해야 합니다.
먼저 다음 명령을 사용하여 Snap 패키지를 설치합니다.
apt install snapd -y
다음으로 다음 명령을 사용하여 Snap 패키지에 대한 심볼릭 링크를 만듭니다.
ln -s /var/lib/snapd/snap /snap
다음으로 시스템 프로필에 스냅 경로를 추가합니다.
echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | tee -a /etc/profile.d/snap.sh
그런 다음 다음 명령을 사용하여 Snap 서비스를 시작하고 활성화합니다.
systemctl enable --now snapd.service snapd.socket
다음으로 다음 명령을 사용하여 kubectl 패키지를 설치합니다.
snap install kubectl --classic
다음으로 다음 명령을 사용하여 kubectl 패키지의 심볼릭 링크를 만듭니다.
ln -s /snap/kubectl/current/kubectl /usr/bin/
이제 다음 명령을 사용하여 kubectl 버전을 확인합니다.
kubectl version -o yaml
다음 출력이 표시되어야 합니다.
clientVersion: buildDate: "2022-12-09T16:23:44Z" compiler: gc gitCommit: b46a3f887ca979b1a5d14fd39cb1af43e7e5d12d gitTreeState: clean gitVersion: v1.26.0 goVersion: go1.19.4 major: "1" minor: "26" platform: linux/amd64 kustomizeVersion: v4.5.7
Minikube 설치
기본적으로 Minikube 패키지는 Debian 기본 리포지토리에 포함되어 있지 않습니다. 따라서 시스템에 Minikube 바이너리를 다운로드해야 합니다.
먼저 다음 명령으로 Minikube를 다운로드합니다.
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
다음으로 Minikube 바이너리를 시스템 경로에 복사합니다.
cp minikube /usr/local/bin/
다음으로 다음 명령으로 실행 권한을 설정합니다.
chmod +x /usr/local/bin/minikube
이제 다음 명령을 사용하여 Minikube 버전을 확인합니다.
minikube version
다음과 같은 결과가 표시됩니다.
minikube version: v1.28.0 commit: 986b1ebd987211ed16f8cc10aed7d2c42fc8392f
완료되면 다음 단계로 진행할 수 있습니다.
Minikube 시작하기
이 시점에서 필요한 모든 패키지가 설치됩니다. 이제 다음 명령으로 Minikube를 시작할 수 있습니다.
minikube start --force
이렇게 하면 도커 이미지가 다운로드되고 아래와 같이 Kubernetes 클러스터가 구성됩니다.
???? minikube v1.28.0 on Debian 11.6 (kvm/amd64) ? minikube skips various validations when --force is supplied; this may lead to unexpected behavior ? Automatically selected the docker driver. Other choices: none, ssh ???? The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force. ???? If you are running minikube within a VM, consider using --driver=none: ???? https://minikube.sigs.k8s.io/docs/reference/drivers/none/ ???? Using Docker driver with root privileges ???? Starting control plane node minikube in cluster minikube ???? Pulling base image ... ???? Downloading Kubernetes v1.25.3 preload ... > preloaded-images-k8s-v18-v1...: 385.44 MiB / 385.44 MiB 100.00% 37.08 M > gcr.io/k8s-minikube/kicbase: 386.27 MiB / 386.27 MiB 100.00% 27.51 MiB > gcr.io/k8s-minikube/kicbase: 0 B [________________________] ?% ? p/s 10s ???? Creating docker container (CPUs=2, Memory=2200MB) ... ???? Preparing Kubernetes v1.25.3 on Docker 20.10.20 ... ? Generating certificates and keys ... ? Booting up control plane ... ? Configuring RBAC rules ... ???? Verifying Kubernetes components... ? Using image gcr.io/k8s-minikube/storage-provisioner:v5 ???? Enabled addons: default-storageclass, storage-provisioner ???? Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
이제 다음 명령을 사용하여 클러스터 상태를 확인할 수 있습니다.
kubectl cluster-info
다음 출력이 표시되어야 합니다.
Kubernetes control plane is running at https://192.168.49.2:8443 CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
실행 중인 노드를 확인하려면 다음 명령을 실행합니다.
kubectl get nodes
산출:
NAME STATUS ROLES AGE VERSION minikube Ready control-plane 67s v1.25.3
다음 명령을 사용하여 Minikube 컨테이너에 액세스할 수도 있습니다.
minikube ssh
산출:
:~$
이제 다음 명령을 사용하여 컨테이너 셸을 종료합니다.
$exit
다음 명령을 사용하여 언제든지 Kubernetes 클러스터를 중지하고 삭제할 수 있습니다.
minikube stop
minikube delete
다음 명령을 사용하여 Minikube의 상태를 확인할 수 있습니다.
minikube status
산출:
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured
완료되면 다음 단계로 진행할 수 있습니다.
Minikube Kubernetes 대시보드에 액세스
기본적으로 Minikube는 클러스터를 관리하는 데 사용할 수 있는 웹 대시보드를 제공합니다.
다음 명령을 사용하여 모든 minikube 애드온을 나열할 수 있습니다.
minikube addons list
다음 출력이 표시되어야 합니다.
|-----------------------------|----------|--------------|--------------------------------| | ADDON NAME | PROFILE | STATUS | MAINTAINER | |-----------------------------|----------|--------------|--------------------------------| | ambassador | minikube | disabled | 3rd party (Ambassador) | | auto-pause | minikube | disabled | Google | | cloud-spanner | minikube | disabled | Google | | csi-hostpath-driver | minikube | disabled | Kubernetes | | dashboard | minikube | disabled | Kubernetes | | default-storageclass | minikube | enabled ? | Kubernetes | | efk | minikube | disabled | 3rd party (Elastic) | | freshpod | minikube | disabled | Google | | gcp-auth | minikube | disabled | Google | | gvisor | minikube | disabled | Google | | headlamp | minikube | disabled | 3rd party (kinvolk.io) | | helm-tiller | minikube | disabled | 3rd party (Helm) | | inaccel | minikube | disabled | 3rd party (InAccel | | | | | []) | | ingress | minikube | disabled | Kubernetes | | ingress-dns | minikube | disabled | Google | | istio | minikube | disabled | 3rd party (Istio) | | istio-provisioner | minikube | disabled | 3rd party (Istio) | | kong | minikube | disabled | 3rd party (Kong HQ) | | kubevirt | minikube | disabled | 3rd party (KubeVirt) | | logviewer | minikube | disabled | 3rd party (unknown) | | metallb | minikube | disabled | 3rd party (MetalLB) | | metrics-server | minikube | disabled | Kubernetes | | nvidia-driver-installer | minikube | disabled | Google | | nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) | | olm | minikube | disabled | 3rd party (Operator Framework) | | pod-security-policy | minikube | disabled | 3rd party (unknown) | | portainer | minikube | disabled | 3rd party (Portainer.io) | | registry | minikube | disabled | Google | | registry-aliases | minikube | disabled | 3rd party (unknown) | | registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) | | storage-provisioner | minikube | enabled ? | Google | | storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) | | volumesnapshots | minikube | disabled | Kubernetes | |-----------------------------|----------|--------------|--------------------------------|
다음으로 다음 명령을 사용하여 클러스터에서 실행 중인 모든 컨테이너 이미지를 나열합니다.
kubectl get pods --all-namespaces
다음 출력이 표시되어야 합니다.
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-565d847f94-9ttdq 1/1 Running 0 2m47s kube-system etcd-minikube 1/1 Running 0 3m kube-system kube-apiserver-minikube 1/1 Running 0 3m1s kube-system kube-controller-manager-minikube 1/1 Running 0 3m kube-system kube-proxy-mr8sn 1/1 Running 0 2m47s kube-system kube-scheduler-minikube 1/1 Running 0 3m kube-system storage-provisioner 1/1 Running 1 (2m16s ago) 2m59s
이제 다음 명령을 실행하여 Kubernetes 대시보드의 URL을 가져옵니다.
minikube dashboard --url
다음 출력이 표시되어야 합니다.
???? Enabling dashboard ... ? Using image docker.io/kubernetesui/metrics-scraper:v1.0.8 ? Using image docker.io/kubernetesui/dashboard:v2.7.0 ???? Some dashboard features require the metrics-server addon. To enable all features please run: minikube addons enable metrics-server ???? Verifying dashboard health ... ???? Launching proxy ... ???? Verifying proxy health ... http://127.0.0.1:45627/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
이 시점에서 Minikube 대시보드가 설치되어 포트 45627의 localhost에서 실행됩니다. 그러나 로컬 시스템에서만 액세스할 수 있습니다. 외부 시스템에서 액세스하려면 다음 명령을 실행하십시오.
kubectl proxy --address='0.0.0.0' --disable-filter=true
이제 웹 브라우저를 열고 URL http://your-server-ip:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/를 입력합니다. 다음 페이지와 같이 Kubernetes 대시보드로 리디렉션됩니다.
축하합니다! Debian 11에 Minikube를 성공적으로 설치했습니다. 이제 웹 브라우저를 통해 Kubernetes 클러스터를 쉽게 관리할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.