为了方便快速体验k8s集群,官方提供了minikube单节点集群,便于在本地安装学习使用。因为网络的原因,在安装过程中会出现镜像下载的问题,这里我们替换成阿里云的镜像源。
安装教程地址入口:https://kubernetes.io/zh/docs/tasks/tools/install-minikube/#准备开始
由于我本机安装了VMware Fusion,因此这里我驱动使用的是VMware,可以使用virtualbox来使用。
1、虚拟软件安装
本机mac下已安装了VMware Fusion,此部直接跳过,若无,参照教程安装即可。
2、安装Kubectl
根据教程操作即可,这里我使用的是brew来安装
安装kubectl
brew install kubectl
查看版本信息
kubectl version
这个时候会显示版本信息,以及在最下面出现一条连接8080端口拒绝信息,暂时先忽略,这是kubectl的api服务还未启动,并不是安装有问题
The connection to the server localhost:8080 was refused
3、安装minikube
安装命令
brew install minikube
这里安装的是1.6.2版本
虚拟环境设置
根据教程,选择对应的虚拟软件配置教程,根据机器已安装了VMware Fusion,这里使用Vmware
1、安装驱动
brew install docker-machine-driver-vmware
2、启动minikube
这个地方由于访问国外服务的问题,直接按照教程默认命令创建环境,会出现异常问题,如下
启动集群指定默认虚拟驱动
minikube start --vm-driver=vmware
命令如下,启动集群环境时,指定虚拟环境驱动和镜像源地区
# 默认cpu和memory配置
minikube start --image-mirror-country=cn --vm-driver=vmware
# 指定cpu和memory配置
minikube start --image-mirror-country=cn --vm-driver=vmware --insecure-registry=registry.docker.com --cpus=4 --memory=8g
可以看到,这里将阿里云的源作为了后备存储库,本地集群环境正常安装完成。
通过命令查看下当前的minikube状态信息
截止这里正常完成。
补充:
今天在启动 minikube dashbord 的时候,报错503,如下
网上方案试了一直没成功,最后把当前的mimikube集群删了,重新安装了一遍,再次打开竟然可以了,如果遇到这个问题,可以尝试下。
然后重新启动dashbord
成功在默认浏览器打开了web管理后端。
metrics-server安装采坑记录
由于需要用到本地minikube查看k8s集群的性能消耗,网上查寻直接使用 kubectl top nodes 可查看node节点的cpu和内存使用,但是在直接使用过程中报错了
需要安装metrics-server服务
git clone https://github.com/kubernetes-incubator/metrics-server.git
cd metrics-server
vim deploy/1.8+/metrics-server-deployment.yaml
修改为如图的地方,
1、修改metrics-server-deployment.yaml
中镜像源[k8s.gcr.io](http://k8s.gcr.io/)
为[registry.cn-hangzhou.aliyuncs.com/google_containers](http://registry.cn-hangzhou.aliyuncs.com/google_containers)
2、修改更新策略为 imagePullPolicy: IfNotPresent
3、修改args参数
args:
- --metric-resolution=30s
- --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
- --kubelet-insecure-tls
# --metric-resolution=30s:从 kubelet 采集数据的周期;
# --kubelet-preferred-address-types:优先使用 InternalIP 来访问 kubelet,这样可以避免节点名称没有 DNS 解析记录时,通过节点名称调用节点 kubelet API 失败的情况(未配置时默认的情况);
# --kubelet-insecure-tls:kubelet 的10250端口使用的是https协议,连接需要验证tls证书。--kubelet-insecure-tls不验证客户端证书
# 将metrics-server-deployment.yaml文件中的镜像拉取策略修改为"IfNotPresent";
启动metrics-server
docker run -itd registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6
测试是否部署成功
kubectl top nodes