k8s - minikube
k8s 一个本地就可以用的环境minikube
minikube在macOS、Linux和Windows上实现了本地Kubernetes集群。
minikube的主要目标是成为本地Kubernetes应用程序开发的最佳工具,并支持所有适合的Kubernetes功能。
参考:
code: https://gitee.com/mirrors/minikube/tree/master
minikube :https://minikube.sigs.k8s.io/docs/
提前准备
主机信息
1
docker docker - 安装使用及问题
配置国内镜像源
1 2 3 4 5 6 7 8
wangfuyu]# vim /etc/docker/daemon.json { "data-root":"/data/docker", "registry-mirrors": [ "https://71t1c6hh.mirror.aliyuncs.com" ] }1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# 启动项重新加载 systemctl daemon-reload # 重启服务,配置生效 service docker restart # Redirecting to /bin/systemctl restart docker.service # 查看状态 systemctl status docker # 开机启动 systemctl start docker # 查看跟进问题 journalctl -xe
kicbase
1 2 3 4 5 6 7 8 9 10 11
#建议直接: docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44 #因为直接默认Using default tag: lates时,是下载不下来的。到目前为止是这样的。 # [root@wfy wangfuyu]# docker pull anjone/kicbase # ... # error pulling image configuration: download failed after attempts=6: dial tcp 31.13.84.34:443: i/o timeout #本地镜像名太长,重命名一下: kicbase:v0.0.44 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.44 kicbase:v0.0.44
工具下载安装
1
2
3
4
5
6
7
# linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
# 当前命令简写,这样本地就不用下载kubectl和minikube关联了
alias kubectl="minikube kubectl --"
使用
常用命令
Pause Kubernetes without impacting deployed applications:
1 minikube pauseUnpause a paused instance:
1 minikube unpauseHalt the cluster:
1 minikube stopChange the default memory limit (requires a restart):
1minikube config set memory 9001Browse the catalog of easily installed Kubernetes services:
1 minikube addons listCreate a second cluster running an older Kubernetes release:
1 minikube start -p aged --kubernetes-version=v1.16.1Delete all of the minikube clusters:
1minikube delete --all
确认
kubectl配置正确,查看集群信息:
创建例子
参考网络案例:https://blog.51cto.com/wangguishe/9095298
若对方博文地址不更换仍可以继续参考。
1
2
3
4
5
# 启动一个
minikube start -p c1 --kubernetes-version=1.22.1 --listen-address="0.0.0.0" apiserver-ips=127.0.0.1 --image-mirror-country='cn' --registry-mirror=https://71t1c6hh.mirror.aliyuncs.com --base-image=kicbase:v0.0.44 --driver=docker --container-runtime=docker --cpus=2 --memory=2200m --disk-size=20000mb --force
无法访问dashboard问题
[root@wfy wangfuyu]# minikube dashboard -p c1
- Verifying dashboard health …
- Launching proxy …
- Verifying proxy health …
X Exiting due to SVC_URL_TIMEOUT: http://127.0.0.1:44448/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ is not accessible: Temporary Error: unexpected response code: 503
跟踪:
执行命令 :
kubectl get pod -A见到 dashboard相关时ImagePullBackOff 状态。用 查看某个资源的详细信息:
kubectl describe pod pod_name -n nameapace看下该pod用的image,然后单独去下载下来。
解决方法1:
[root@wfy minikube]# minikube -p c1 ssh //进入k8s进行docker 拉取国内镜像,并进行tag修改为需要的。
解决方法2:让k8s使用宿主机的容器镜像
[root@wfy minikube]# eval $(minikube -p c1 docker-env) [root@wfy minikube]# docker image ls [root@wfy minikube]# docker pull 对应的镜像 [root@wfy minikube]# docker tag 镜像名:标签 新镜像名:标签
尝试:
启动面板服务
1 2 3 4 5 6 7 [root@wfy wangfuyu]# minikube dashboard -p c1 --url * Verifying dashboard health ... * Launching proxy ... * Verifying proxy health ... http://127.0.0.1:40140/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ ^C [root@wfy wangfuyu]#用代理允许局域网其他机器进行访问,例如把上面的连接host改为当前机器的IP,暴露端口8888:
1 2 3 4 [root@wfy wangfuyu]# kubectl proxy --port=8888 --address=0.0.0.0 --accept-hosts=^.* Starting to serve on [::]:8888 ^C [root@wfy wangfuyu]#其他机器浏览器访问:
1 http://192.168.10.10:8888/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/