以前刚学k8s时,薅了羊毛搞了3台服务器搭集群玩。以前没用过minikube,于是用家里老古董台式机弄个虚拟机,搞个minikube来玩玩。
安装环境
官方安装教程 https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Frpm+package
官方文档上,安装minikube,服务器需要满足以下条件
- 2 CPUs or more
- 2GB of free memory
- 20GB of free disk space
- Internet connection
- Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
直接搞个虚拟机
版本是 Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-45-generic x86_64)
安装docker
docker官方安装文档地址
https://docs.docker.com/engine/install/ubuntu/
添加apt仓库, ctrl + v即可
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装最新版本的docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
修改docker仓库源,跟着文档走,复制代码运行即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装minikube
下载安装包
一开始用的rpm的方式安装,结果提示缺依赖,后面改成二进制安装包的方式安装,
执行安装命令
# 下载安装包
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# 安装
sudo install minikube-linux-amd64 /usr/local/bin/minikube
安装
启动minikube
minikube start
然后会提示
Unable to pick a default driver. Here is what was considered, in preference order:
▪ docker: Not healthy: "docker version --format {{.Server.Os}}-{{.Server.Version}}:{{.Server.Platform.Name}}" exit status 1: permission denied while trying to connect to the
Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/version": dial unix /var/run/docker.sock: connect: permission denied
▪ docker: Suggestion: Add your user to the 'docker' group: 'sudo usermod -aG docker $USER && newgrp docker'
按照提示说的,将当前用户加入到docker用户组中
sudo usermod -aG docker $USER && newgrp docker
解决kicbase镜像下载不了问题
然后再次执行minikube start
然后就会去下载镜像文件,但是下载不了,会提示下面之类的问题
Unable to find image 'gcr.io/k8s-minikube/kicbase:v0.0.45
试了不少方法,都不好使,最后受不了只能用下面的方法去拉镜像了,用了都说好,妈妈再也不担心我拉不到镜像了
https://github.com/togettoyou/hub-mirror
提交issue,等几分钟后,就复制回复中命令执行即可。
安装成功
再次回到命令行执行minikube start
命令,你就会看到能继续跑下去了,由于之前尝试用代理去下载,所以我这多了一些network option
启动成功后会提示,没有kubectl,所以还要执行下面的命令去下载
minikube kubectl -- get pods -A
为了方便使用kubectl 还需要将下面的命令加入到~/.bashrc中
alias kubectl="minikube kubectl --"
然后检查下minikube的状态
kubectl get po -A
部署应用
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
然后kubectl get po -A
会看到启动不了,原因是镜像拉不下来,
老规矩继续走github action的方式把镜像搞下来后,还要使用以下命令将镜像push到minikube中,因为minikube中的docker命令是独立于宿主机中的docker的,也就是用不了宿主机的镜像。
minikube cache add kicbase/echo-server:1.0
命令执行成功后,新打开一个命令行,用以下命令检查
# 这只环境变量,后续所有docker命令都是操作minikube内的docker
eval $(minikube docker-env)
# 查看
docker images
可以看到镜像已经存在了。等了一会后,重新查看pod状态
会看到容器已经起来了。然后通过下面的命令将虚拟机的7080端口映射到minikube集群中的service/hello-minikube的8080端口
kubectl port-forward --address 0.0.0.0 service/hello-minikube 7080:8080
然后在浏览器访问地址就可以看到已经成功访问到刚刚起的web了
总结
起个环境,确实挺方便的,随手start和delete就完事了。给的2c4g偶尔有点小卡,刚装好还没怎么用,不知道还有啥毛病,总的来说一点点弄,慢慢来吧。