目录

引言

搭建步骤

升级环境和国内访问网络处理


引言

越来越多的应用现在都倾向于迁移到PaaS平台进行部署,其中广受欢迎的K8S也是目前业务在用的选择。从公司回家以后,一边学习K8S的原理,一边也想着自己搞一套K8S玩玩。

转念一想,K8S这种高可用的系统最少也是3个控制节点,我本地肯定没有这么多机器,又不想去云上花钱租服务器。没办法,windows本地用vmware起了一个CentOS7的虚机玩,正好闲着也是闲着,不如琢磨一下有么有单节点部署K8S的方法。这么一想就找到了,真有个叫miniK8S的东西。

对于主机的要求不高,2C2G即可,存储可用空间20G,一看原来的虚机我就只分了20G,导致实际分给/home目录的就不够了,提前扩了20G以后,正式开始搭建!

搭建步骤

迷你K8S环境的安装要求和安装步骤相见如下说明,示例操作系统为centOS7https://minikube.sigs.k8s.io/docs/start/https://minikube.sigs.k8s.io/docs/start/1、首先需要为K8S启动指定driver,这里在linux平台,官方推荐的还是docker,所以需要先按照如下的指导进行docker的安装 部署
Install Docker Engine on CentOS | Docker Documentationhttps://docs.docker.com/engine/install/centos/

2、启动docker时注意不要直接使用root用户启动,否则迷你K8S启动会报错,使用命令 sudo systemctl start docker

3、下一步又不是很顺利了,docker发现启动了以后,docker version报错,参考如下链接解决问题。

解决Docker运行命令时提示"Got permission denied while trying to connect to the Docker daemon socket"类情况 - lmqljt - 博客园 (cnblogs.com)https://www.cnblogs.com/Li-JT/p/13994704.html
需要将当前用户加入docker用户组中,那么当前用户就有权限访问Unix socket了,因为默认情况下只有root用户才能访问socket接口

 4、预制好docker服务后,首先还是要获取miniK8S的版本,由于我的虚机直接和外网连通,直接使用如下命令即可下载bin安装版本,然后进行安装

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

5、安装比较顺利,结束以后,直接使用命令minikube start,启动迷你K8S集群

5、然后根据提示下载迷你K8S的kubectl,使用命令 minikube kubectl -- get po -A,可查看当前运行的pod

6、至此本来应该是部署完毕的,但是下一次开机启动K8S时却发现报错,仔细看了下提示,说的控制面异常,导致启动失败?

还好官方给出了明确的处理方法,参考了issue,发现别人碰到的问题是K8S启动的driver选择不当,所以当时给出的方式是切换成virtualbox的方式后,再启动。

 对于我这个环境来说,希望的就是通过docker启动,所以我也就没有管那个issue,直接根据提示,先删除了K8s集群,再尝试进行启动

minikube delete --all --purge
minikube start --driver=docker --image-mirror-country=cn

备注:当然由于我这个是空环境,随意做这个操作不影响,实际看了下提示,这个命令会删除本地的集群,生产环境还是谨慎使用。。。

7、官方在环境搭建好以后,还提供了dashboard的能力,可通过web界面访问管理,使用如下命令即可开始部署,并打开dashboard

minikube dashboard

搭好环境只是第一步,先记到这里,后续接着学习。

升级环境和国内访问网络处理

参考:minikube国内访问网络问题处理 - wswind - 博客园

minikube的升级也做的比较简单,仅仅只需要连网(使用阿里云的代理镜像源)并执行如下命令即可,环境就会开始下载minikube的新版本并进行升级。

minikube start --kubernetes-version=latest --driver=docker --image-repository=registry.aliyuncs.com/google_containers

升级完成后,使用命令快速设置kubectl在minikube中的别名,便于对齐使用习惯,下面就可以继续使用新版本的环境进行开发学习了。

alias kubectl="minikube kubectl --"

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐