需求:就是自己搭建玩玩。

环境说明:

三台虚拟机:ubuntu 18.0.4(64-bit),docker 18.09.x,4核,5g,50g

虚拟机是安装在我本地电脑上的,三台都在c盘,而且我的c盘是固态硬盘,这个很重要!!!

三台虚拟机其中一台作为rancher服务器,两台作为k8s节点服务器;

其他注意点:

01-docker版本说明:不同虚拟机对应不同点docker版本,这个直接看rancher官网就行了,有说明点,或者直接百度下,也有不少的文章;

02-我的虚拟机是安装在windows的c盘上的,至于为什么要装在c盘,因为c盘读写效率高,可以达到etc服务文件读写的速度(因为之前我状态d盘或者其他盘都不行,集群的etc服务会抱文件读写超时的问题,而我又没有特别好的云服务器,所以只能用c盘玩玩了)

03-rancher官网:Rancher快速入门 | Kubernetes管理平台 | Docker容器 | Rancher

docker安装:

首先三台服务器都要安装docker,我的是ubuntu 18.0.4 安装指定版本docker;

安装步骤:

1:更新Ubuntu,安装所需软件包

apt-get update

sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

2:添加官方GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

3:设置稳定的存储库

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable"

4:查看可安装的docker版本

apt-cache madison docker-ce

安装(指定版本)

sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu

5:启动并查看是否安装正常

sudo systemctl start docker

docker info

docker version

这里有几个docker常用的命令:

重启加速器服务

sudo systemctl daemon-reload

普通重启 Docker

sudo systemctl restart docker

修改配置后重启 Docker

sudo systemctl daemon-reload

sudo systemctl restart docker

设置docker自启

sudo systemctl enable docker

安装rancher

安装完docker后,就可以选一台服务器安装rancher了;

安装步骤:

安装指定版本的rancher

docker run -d --privileged --restart=unless-stopped -p 8089:80 -p 8443:443 rancher/rancher:v2.5.9

这就安装完了,启动后会有一些问题,我这里整理了几个之前我遇到的问题:

问题1:ect服务不停的重启?

查看启动日志后,发现,抱大量的超时,什么文件读取超时啊这些,

然后往上说的解决方案是建议etc集群安装在SSD或者其他类型的固态硬盘上来避免etc服务的磁盘io瓶颈,我就只能把虚拟机装在c盘上了(之前看了c盘有ssd的,那就说明我的c盘是固态硬盘,其他盘就是机械硬盘了)

问题2:

Set sysctl 'net/netfilter/nf_conntrack_max' to 131072

open /proc/sys/net/netfilter/nf_conntrack_max: permission denied

这个是跟操作系统内核相关的问题,我也不是太懂,反正就百度了下解决方案,如下:

Kube-proxy会自动将nf_conntrack_max改为131072 – IPCPU-网络之路

我是直接改的这个参数的:

改文件:

修改最大连接数 vim /ect/sysctl.conf

net.netfilter.nf_conntrack_max = 655350

修改完后执行 sysctl -p

问题3:

因为之前我安装失败过一次,重新装有一个问题:

Cluster health check failed: Failed to communicate with API server: Get "https:///api/v1/namespaces/kube-system?timeout=45s": context deadline exceeded    

网上也有对应的解决方案,如下:

使用rancher重建集群报错_vah101的专栏-CSDN博客

安装完成,就可以访问rancher了,

然后我在rancher中创建了一个集群,然后自定义集群,把那两个虚拟机都加入了进来。

然后百度了下如何部署服务,安装了一个nginx的服务,能正常访问,算是把rancher和k8s集群部署成功了。

当然这里我的k8s集群是用rancher中的方式自定义的方式部署加入的集群,

还有其他跟多的方式,比如你已经有一个集群,也可以直接导入。

至于如何自己部署k8s集群,也有几种方式,什么二进制部署啊(贼复杂),kubeadm啊,其他厂商提供的(rancher,建议初学者适用这种方式),还有直接买阿里云的k8s集群(有钱的话第一选择)。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐