본문 바로가기

리눅스

우분투에서 minikube 업그레이드 방법

반응형

우분투에서 minikube 업그레이드 방법

Minikube는 지속적으로 새로운 버전이 출시되므로 최신 기능과 보안 패치를 적용하려면 업그레이드가 필요합니다.

테스트 환경

$ lsb_release -d
Description:    Ubuntu 22.04.3 LTS

현재 Minikube 버전 확인

현재 설치된 Minikube 버전을 확인합니다.

minikube version
minikube version: v1.32.0
commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512d

Minikube의 최신 버전을 확인

curl -s https://api.github.com/repos/kubernetes/minikube/releases/latest | grep tag_name
  "tag_name": "v1.35.0",

기존 Minikube 삭제

업그레이드 전에 기존 Minikube의 클러스터를 초기화합니다.

 

실행 중인 Minikube 중지

minikube stop
더보기

---

기존 Minikube 클러스터 삭제

minikube delete
* Deleting "minikube" in docker ...
* Removing /root/.minikube/machines/minikube ...
* Removed all traces of the "minikube" cluster.

---

Minikube 업그레이드

최신 Minikube 다운로드 및 설치

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
ln -s /usr/local/bin/minikube /usr/bin/minikube

설치 확인

  • 최신 버전이 적용되었는지 확인합니다.
minikube version
minikube version: v1.35.0
commit: dd5d320e41b5451cdf3c01891bc4e13d189586ed-dirty

기존 클러스터 유지하며 업그레이드 적용

su - vagrant
sudo usermod -aG docker $USER && newgrp docker

기존 Minikube 클러스터를 유지하면서 업그레이드합니다.

minikube start --driver=docker --kubernetes-version=latest
* minikube v1.35.0 on Ubuntu 22.04
* Using the docker driver based on user configuration
* Using Docker driver with root privileges
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.46 ...
* Downloading Kubernetes v1.32.0 preload ...
    > preloaded-images-k8s-v18-v1...:  333.57 MiB / 333.57 MiB  100.00% 4.94 Mi
    > gcr.io/k8s-minikube/kicbase...:  500.31 MiB / 500.31 MiB  100.00% 6.24 Mi
* Creating docker container (CPUs=2, Memory=9000MB) ...
* Preparing Kubernetes v1.32.0 on Docker 27.4.1 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Configuring bridge CNI (Container Networking Interface) ...
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner

! /usr/bin/kubectl is version 1.28.2, which may have incompatibilities with Kubernetes 1.32.0.
  - Want kubectl v1.32.0? Try 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

(또는) 특정 버전으로 업그레이드합니다.

minikube start --kubernetes-version=v1.32.0

kubectl 관련 구성 요소도 함께 업그레이드(선택 사항)

kubectl 버전 확인

kubectl version --client
Client Version: v1.28.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

kubectl 최신 버전으로 업데이트

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
sudo ln -s /usr/local/bin/kubectl /usr/bin/kubectl
kubectl version --client
Client Version: v1.32.2
Kustomize Version: v5.5.0
728x90

Minikube 클러스터 실행

Minikube 시작

Minikube를 Docker 드라이버를 사용하여 실행합니다.

minikube start --driver=docker
* minikube v1.35.0 on Ubuntu 22.04
* Using the docker driver based on existing profile
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.46 ...
* Restarting existing docker container for "minikube" ...
* Preparing Kubernetes v1.32.0 on Docker 27.4.1 ...
* 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

클러스터 상태 확인

minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

노드 및 서비스 확인

쿠버네티스 노드 확인

kubectl get nodes
NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   26m   v1.32.0

클러스터 내 서비스 확인

kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   27m

테스트용 애플리케이션 배포

Minikube가 정상적으로 동작하는지 확인하기 위해 간단한 Nginx 애플리케이션을 배포합니다.

kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
kubectl expose deployment nginx --type=NodePort --port=80
service/nginx exposed

Minikube에서 서비스의 URL 확인

minikube service nginx --url
http://192.168.49.2:30688

cURL을 활용한 사이트 확인

curl http://192.168.49.2:30688
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Minikube 클러스터 삭제

실행 중인 클러스터 중지

minikube stop

Minikube 클러스터 삭제

minikube delete

Minikube 및 관련 파일 완전 삭제

sudo rm -rf ~/.minikube ~/.kube
sudo rm /usr/local/bin/minikube

 

참고URL

- minikube Documentation : minikube Installation

- Kubernetes Documentation : Kubernetes Download

 

728x90
반응형