介绍
minikube
Minikube 是一个可以在本地轻松运行 Kubernetes 的工具。Minikube 会在您的笔记本电脑中的虚拟机上运行一个单节点的 Kubernetes 集群,以便用户对 Kubernetes 进行试用或者在之上进行 Kubernetes 的日常开发。
目前支持linux、mac、windows安装。步骤差距较大。
且安装过程文件非常多,目前ANT老师在备课过程中,windows下使用VMware安装centos虚拟机及使用windows minikube安装程序+vritualBOX安装k8s的用户界面模块dashboard模块无法成功。
在腾讯云服务器按照笔记中的步骤安装正常。
kubectl
kubectl是用于针对Kubernetes集群运行命令的命令行接口。
linux安装
安装环境:虚拟机 核心数分配2核以上
操作系统:centos 7
ps:建议使用云主机进行安装。
前置准备
- 前提条件需要先安装docker
docker安装步骤参考docker课程中的笔记。
- 虚拟机配置
# 关闭防火墙
sudo systemctl stop firewalld
# 清除防火墙规则
iptables -F
# 关闭内存交换
sudo swapoff -a
# 重新加载配置
systemctl daemon-reload
# 重启docker
systemctl restart docker
# 关闭selinux
sudo setenforce 0
下载minikube 和kubectl
# curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.4.0/minikube-linux-amd64
# curl -Lo kubectl http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/v1.16.0/bin/linux/amd64/kubectl
加执行权限:
# chmod +x minikube
# chmod +x kubectl
copy到/usr/local/bin
# cp minikube /usr/local/bin
# cp kubectl /usr/local/bin
启动minikube
注意启动minikube直接在机器的命令行界面执行,不要使用xshell连接后操作。
因为我这里直接使用宿主机进行安装 vm-driver=none 为裸机运行
区别于windows的安装方式需要使用到本地vm的驱动
# minikube start --vm-driver=none
命令执行完成显示界面。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O34U0KE1-1625640087480)(Minikube安装.assets/image-20200416153914023.png)]
该过程时间较长。
开启 minikube dashboard
仪表板是基于Web的Kubernetes用户界面。可以使用仪表板将容器化的应用程序部署到Kubernetes集群,对容器化的应用程序进行故障排除以及管理集群资源。可以使用Dashboard来概述集群上运行的应用程序,以及创建或修改单个Kubernetes资源(例如Deployments,Jobs,DaemonSets等)。例如,可以使用部署向导来扩展部署,启动滚动更新,重新启动Pod或部署新应用程序。
仪表板还提供有关集群中Kubernetes资源状态以及可能发生的任何错误的信息。
如果是直接安装在macOS上,或者windows的安装方式,可以使用minikube dashboard
minikube dashboard
因为我们使用的是centos 7只有终端环境,所以我们要在宿主机上进行浏览器访问,不需要执行
minikube dashboard,使用如下命令开启
proxy`
sudo kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'
并且使用如下地址访问即可
http://xxx.xxx.xxx.xxx:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy
IP获取
要获取xxx.xxx.xxx.xxx
的虚拟机ip,可以使用如下命令。
sudo minikube ip
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WavNujIr-1625640087481)(Minikube安装.assets/image-20200417203531029.png)]
安装过程中常见问题
1、Cpu线程不够
注意当前机器的docker进程是否正常。
虚拟机注意当前机器的核心数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5pi6vSFb-1625640087481)(Minikube安装.assets/image-20200416150354391.png)]
如图,第一次启动,提示* Requested cpu count 1 is less than the minimum allowed of 2 ,增加虚拟机cpu个数,再次启动。
如VMware增加核心数
在虚拟机关闭的情况下,进入虚拟机设置,核心数设置。
2、kubernetes-dashboard 访问异常
访问:http://xxx.xxx.xxx.xxx:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fBqKXvOC-1625640087482)(Minikube安装.assets/image-20200417145939628.png)]
可能kubesystem系统pod有异常。排查步骤
1)首先查看pod状态,定位异常pod:
kubectl get pods --namespace kube-system
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asSycAok-1625640087482)(Minikube安装.assets/image-20200417150157326.png)]
2)首先查看pod日志:
kubectl describe pod coredns-67c766df46-lrdv9 --namespace kube-system
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-awlOJboC-1625640087483)(Minikube安装.assets/image-20200417150252089.png)]
对于no route to host问题,许多资料指明解决办法为刷新 iptables,但在我本地虚拟机上并没效果。
[root@k8s-master k8s]# systemctl stop kubelet
[root@k8s-master k8s]# systemctl stop docker
[root@k8s-master k8s]# iptables --flush
[root@k8s-master k8s]# iptables -tnat --flush
[root@k8s-master k8s]# systemctl start kubelet
[root@k8s-master k8s]# systemctl start docker
- 缺少kubernetes-dashboard命名空间和服务。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qsq10KYv-1625640087484)(Minikube安装.assets/image-20200417204903645.png)]
通过docker images 命令排查镜像是否有下载,由于有些镜像在国外,可能会存在镜像下载失败的情况。
解决办法,通过国内的源下载对应镜像
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.0
然后重新执行minikube dashboard。