반응형
    
    
    
  우분투에서 Minikube를 설치하고 실행하는 방법(none 드라이버로 실행)
none 드라이버는 Minikube가 가상 머신이나 Docker 컨테이너 대신 호스트 시스템에서 직접 Kubernetes 클러스터를 실행합니다.
테스트 환경
$ lsb_release -d
Description:	Ubuntu 24.04.1 LTS스왑 메모리 비활성화
sudo swapoff -a
sudo sed -i '/swap/ s/^/#/' /etc/fstabMinikube 클러스터 삭제
더보기
---
minikube stop
minikube delete
sudo rm -rf $HOME/.kube $HOME/.minikube
sudo rm -rf /var/lib/minikube
sudo rm -rf /etc/kubernetes---
필수 패키지 설치
sudo apt update
sudo apt install -y curl wget apt-transport-https jqconntrack 설치(네트워크 연결 추적용 도구)
conntrack이란?
conntrack은 Linux 커널의 네트워크 연결 추적 기능을 관리하는 도구입니다.
Kubernetes는 네트워크 트래픽을 관리하기 위해 conntrack을 사용합니다.
sudo apt install -y conntrackDocker 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl enable --now docker
rm -f get-docker.sh
docker versioncrictl 설치
CRICTL_VERSION=$(curl -s https://api.github.com/repos/kubernetes-sigs/cri-tools/releases/latest | jq -r '.tag_name')
CRICTL_URL="https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRICTL_VERSION}/crictl-${CRICTL_VERSION}-linux-$(dpkg --print-architecture).tar.gz"
wget -q --show-progress ${CRICTL_URL} -O crictl-${CRICTL_VERSION}-linux-$(dpkg --print-architecture).tar.gz
tar -zxf crictl-${CRICTL_VERSION}-linux-$(dpkg --print-architecture).tar.gz
sudo mv crictl /usr/local/bin/
rm -f crictl-${CRICTL_VERSION}-linux-$(dpkg --print-architecture).tar.gz
crictl --versioncri-docker 설치
CRI_DOCKER_VERSION=$(curl -s https://api.github.com/repos/Mirantis/cri-dockerd/releases/latest | jq -r '.tag_name' | sed 's/^v//')
CRI_DOCKER_URL="https://github.com/Mirantis/cri-dockerd/releases/download/v${CRI_DOCKER_VERSION}/cri-dockerd-${CRI_DOCKER_VERSION}.$(dpkg --print-architecture).tgz"
wget -q --show-progress ${CRI_DOCKER_URL} -O cri-dockerd-${CRI_DOCKER_VERSION}.$(dpkg --print-architecture).tgz
tar -xf cri-dockerd-${CRI_DOCKER_VERSION}.$(dpkg --print-architecture).tgz
sudo cp cri-dockerd/cri-dockerd /usr/local/bin/
rm -f cri-dockerd-${CRI_DOCKER_VERSION}.$(dpkg --print-architecture).tgz
rm -rf cri-dockerd
cri-dockerd --versionsudo mkdir -p /etc/cni/net.dsudo tee /etc/systemd/system/cri-docker.service > /dev/null <<EOF
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service cri-docker.socket
[Service]
Type=notify
ExecStart=/usr/local/bin/cri-dockerd --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
Restart=always
RestartSec=2
StartLimitBurst=3
StartLimitIntervalSec=60
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOFsudo tee /etc/systemd/system/cri-docker.socket > /dev/null <<EOF
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service
[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOFsudo systemctl daemon-reload
sudo systemctl enable cri-docker.service
sudo systemctl enable --now cri-docker.socketsudo systemctl restart docker
sudo systemctl restart cri-docker
sudo systemctl status cri-docker.socket --no-pagerCNI 플러그인 설치
sudo mkdir -p /opt/cni/bin
CNI_PLUGINS_VERSION=$(curl -s https://api.github.com/repos/containernetworking/plugins/releases/latest | jq -r '.tag_name')
CNI_PLUGINS_URL="https://github.com/containernetworking/plugins/releases/download/${CNI_PLUGINS_VERSION}/cni-plugins-linux-$(dpkg --print-architecture)-${CNI_PLUGINS_VERSION}.tgz"
wget -q --show-progress ${CNI_PLUGINS_URL} -O cni-plugins-linux-$(dpkg --print-architecture)-${CNI_PLUGINS_VERSION}.tgz
sudo tar -xf cni-plugins-linux-$(dpkg --print-architecture)-${CNI_PLUGINS_VERSION}.tgz -C /opt/cni/bin
rm -f cni-plugins-linux-$(dpkg --print-architecture)-${CNI_PLUGINS_VERSION}.tgz
ls /opt/cni/binkubectl 설치
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/$(dpkg --print-architecture)/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm -f kubectl
kubectl version --clientMinikube 설치
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-$(dpkg --print-architecture)
sudo install minikube-linux-$(dpkg --print-architecture) /usr/local/bin/minikube && rm minikube-linux-$(dpkg --print-architecture)
minikube versionMinikube 클러스터 실행
minikube start --driver=none더보기
---
$ sudo minikube start --driver=none --force
😄  minikube v1.35.0 on Ubuntu 24.04 (vbox/amd64)
❗  minikube skips various validations when --force is supplied; this may lead to unexpected behavior
✨  Using the none driver based on user configuration
👍  Starting "minikube" primary control-plane node in "minikube" cluster
🤹  Running on localhost (CPUs=4, Memory=7941MB, Disk=80828MB) ...
ℹ️  OS release is Ubuntu 24.04.1 LTS
🐳  Preparing Kubernetes v1.32.0 on Docker 28.0.1 ...
    ▪ kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
    > kubeadm.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubectl.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubelet.sha256:  64 B / 64 B [-------------------------] 100.00% ? p/s 0s
    > kubeadm:  67.66 MiB / 67.66 MiB [------------] 100.00% 21.15 MiB p/s 3.4s
    > kubectl:  54.67 MiB / 54.67 MiB [------------] 100.00% 12.42 MiB p/s 4.6s
    > kubelet:  73.81 MiB / 73.81 MiB [------------] 100.00% 13.98 MiB p/s 5.5s
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔗  Configuring bridge CNI (Container Networking Interface) ...
🤹  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...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: default-storageclass, storage-provisioner
💡  kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default---
Minikube 클러스터 상태 확인
minikube statusminikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured노드 상태 확인
kubectl get nodesNAME    STATUS   ROLES           AGE     VERSION
u2404   Ready    control-plane   3m16s   v1.32.0파드 상태 확인
kubectl get pods -ANAMESPACE     NAME                            READY   STATUS    RESTARTS   AGE
kube-system   coredns-668d6bf9bc-x2mst        1/1     Running   0          3m36s
kube-system   etcd-u2404                      1/1     Running   1          3m44s
kube-system   kube-apiserver-u2404            1/1     Running   1          3m40s
kube-system   kube-controller-manager-u2404   1/1     Running   1          3m41s
kube-system   kube-proxy-shfnd                1/1     Running   0          3m36s
kube-system   kube-scheduler-u2404            1/1     Running   1          3m40s
kube-system   storage-provisioner             1/1     Running   0          3m38s테스트용 NGINX 배포
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --type=NodePort --port=80
minikube service nginx --url
출력된 URL을 브라우저에서 열어보면 NGINX가 정상적으로 실행되는지 확인할 수 있습니다.
참고URL
- 변군이글루 : kubectx와 kubens를 설치하는 방법
- minikube Documentation : minikube start
- github kubernetes : minikube releases
728x90
    
    
  반응형
    
    
    
  '리눅스' 카테고리의 다른 글
| Ansible AWX Operator 설치하는 방법 (0) | 2025.03.12 | 
|---|---|
| Ansible AWX를 설치하는 방법 (0) | 2025.03.11 | 
| Minikube Dashboard 활성화 및 외부 접근 설정 방법 (0) | 2025.03.09 | 
| CentOS 7에서 Ansible AWX 17을 설치하는 방법 (0) | 2025.03.06 | 
| 우분투에서 Ansible AWX를 Minikube로 설치하는 방법 (0) | 2025.03.06 | 
 
                  
                 
                  
                 
                  
                