使用minikube安装

drivers

minikube支持多种drivers,官网推荐使用docker。因此这里需要安装docker,并且我本身也对docker比较熟悉。其它的几种drivers暂时还不了解。

安装minikube

这个也比较简单,根据minikube文档进行安装

使用rootless docker

对于无根docker,我暂时了解的也不多。没有使用标准docker(Standard Docker)的原因是安装minikube之后,执行minikube start会出错。从日志上来看似乎是docker使用bridge网络的原因。容器内没有网络,无法通信。这方面比较陌生,按照网上的各种办法折腾了两天也没有解决。后面重装系统依然是同样的问题,遂放弃。

使用无根docker需要执行以下命令:

dockerd-rootless-setuptool.sh install -f
docker context use rootless
minikube start --driver=docker --container-runtime=containerd

这次成功了,但是部署集群的时候却无法拉取镜像

于是重新按照步骤走了一遍,过程中碰到了一些问题,比如这个: ERROR: UserNS: cpu controller needs to be delegated when starting minikube with rootless Docker

解决办法是: enabling-cpu-cpuset-and-io-delegatio

但其实并不完全确定是这个原因,之后执行后续步骤:

minikube delete
minikube start --driver=docker --container-runtime=containerd

就成功了。

部署应用

之后按照官网示例,部署hello-minikube

ktl create deployment hello-minikube --image=kicbase/echo-server:1.0
ktl expose deployment hello-minikube --type=NodePort --port=8080
minikube service hello-minikube

这样就启动了hello-minikube服务 本地curl的话已经是通的了

如果要在外网通过ip访问,则需要监听转发端口

ktl port-forward --address 0.0.0.0 service/hello-minikube 31303:80

这样,通过ip+端口也可以进行访问了

远程访问minikube dashboard

在服务器启动dashboard

minikube dashboard --url

--url指定不使用本机浏览器,而是暴露一个地址。但此时还无法远程访问,需要使用kubectl代理:

kubectl proxy --address='0.0.0.0' --disable-filter=true

之后访问通过宿主机ip+端口+api即可访问