使用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即可访问