반응형
우분투에서 Minikube를 설치하고 실행하는 방법(none 드라이버로 실행)
none 드라이버는 Minikube가 가상 머신이나 Docker 컨테이너 대신 호스트 시스템에서 직접 Kubernetes 클러스터를 실행합니다.
테스트 환경
$ lsb_release -d
Description: Ubuntu 24.04.1 LTS
스왑 메모리 비활성화
sudo swapoff -a
sudo sed -i '/swap/ s/^/#/' /etc/fstab
Minikube 클러스터 삭제
더보기
---
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 jq
conntrack 설치(네트워크 연결 추적용 도구)
sudo apt install -y conntrack
Docker 설치
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
sudo rm -f get-docker.sh
docker version
crictl 설치
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/
crictl --version
cri-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/
cri-dockerd --version
sudo mkdir -p /etc/cni/net.d
sudo 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
EOF
sudo 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
EOF
sudo systemctl daemon-reload
sudo systemctl enable cri-docker.service
sudo systemctl enable --now cri-docker.socket
sudo systemctl restart docker
sudo systemctl restart cri-docker
sudo systemctl status cri-docker.socket --no-pager
CNI 플러그인 설치
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
ls /opt/cni/bin
kubectl 설치
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
sudo rm -f kubectl
kubectl version --client
Minikube 설치
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 version
Minikube 클러스터 실행
minikube start --driver=none --force
더보기
---
$ 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 status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
노드 상태 확인
kubectl get nodes
NAME STATUS ROLES AGE VERSION
u2404 Ready control-plane 3m16s v1.32.0
파드 상태 확인
kubectl get pods -A
NAMESPACE 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
- minikube Documentation : minikube start
- github kubernetes : minikube releases
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 sudo rm -f kubectl kubectl 버전 -클라이언트
728x90
반응형
'리눅스' 카테고리의 다른 글
Ansible AWX를 배포할 때 PVC를 설정하는 방법 (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 |