一、部署rancher-server UI,版本:2.3.5
二、经过rancher部署一个k8s集群crystal-cluster
三、在k8s集群crystal-cluster上部属nginx实例node
一、按照官方的要求,选择rancher版本对应支持的系统版本和docker版本;
二、安装ntp,保证每一台服务器之间的时间同步,不然可能会出现证书验证错误的问题;
三、关闭防火墙和selinux。(若是要开启防火墙,那么要在防火墙放行rancher所需的端口,最好再检查一下默认的防火墙规则,保证服务器与Helm( Kubernetes 的软件包管理工具)的通讯)
四、全部节点服务器分配静态IP,而且应该保留一个DHCP,以确保分配给节点的IP是相同的。
五、全部节点的hostname注意不要带下划线"_"。
(以上内容详细要求见官网连接:https://rancher.com/docs/rancher/v2.x/en/installation/requirements/)linux
系统版本:CentOS Linux release 7.7.1908 (Core)
docker版本:18.06.2-ce
rancher-server版本:2.3.5(当前最新版)
主机分配及配置:nginx
hostname | IP | rancher角色 | 系统配置(cpu/mem) | kubernets集群角色 |
---|---|---|---|---|
test102 | 10.0.0.102 | rancher-server | 1C/1G | 无 |
test103 | 10.0.0.103 | rancher-node1 | 1C/2G | etcd、Control Plane、Work |
test104 | 10.0.0.104 | rancher-node2 | 1C/1G | Work |
一、yum默认安装的版本是13版本,将docker升级到18.06.2-ce版本:docker
1)保证内核版本在3.10及以上:uname -a 2)删除旧版本:yum remove -y docker docker-common docker-selinux docker-engine #这一步骤在初次安装docker也最好执行一次,不然后面安装docker可能会报错 3)安装须要的软件包:yum install -y yum-utils device-mapper-persistent-data lvm2 4)设置Docker yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 5)查看全部仓库中全部docker版本:yum list docker-ce --showduplicates | sort -r 6)安装docker:yum -y install docker-ce-18.06.2.ce-3.el7 7)设置为开机启动:systemctl enable docker 8)启动:systemctl start docker 9)查看启动状态:systemctl status docker 10)查看版本:docker version
二、给docker配置阿里源加速器:
1)建立/修改配置文件/etc/docker/daemon.json json
[root@test102 ~]# cat /etc/docker/daemon.json #这个文件可能不存在,须要新建立,而后写入下列内容 { "registry-mirrors": ["https://fzhifedh.mirror.aliyuncs.com"] } [root@test102 ~]#
2)从新加载新修改的配置,重启dockercentos
systemctl daemon-reload systemctl restart docker
三、安装ntp,确保服务器时间同步:服务器
yum -y install ntp systemctl enable ntpd systemctl start ntpd timedatectl set-ntp yes ntpdate -u cn.pool.ntp.org ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime watch -n 1 'date'
1.1 命令:# docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /data/rancher/ranchermaster:/var/lib/rancher rancher/rancher:latest
1.2 端口说明:网络
1.3 等到容器起来,就能访问了:app
1.4 经过IP+端口(https://10.0.0.102/)去访问并配置admin用户的密码:less
1.5 密码配置好以后,跳转到配置rancher-server的URL地址。这里能够用公网IP/内网IP,只要保证其余的rancher-node能经过这个URL访问到rancher-server便可。若是没有特殊的网络缘由,最好用内网IP:
1.6 点击“Save URL”,跳转到rancher-server首页。左下角能够看到当前rancher-server版本号,右下角能够切换语言,而后就能建立集群,尽情的玩耍了:
2.1 点击右上角“Add Cluster”按钮建立集群:
2.2 能够选择建立自定义集群,也能够选择导入集群。这里是建立一个全新的集群,所以选择自定义(Custom):
2.3 开始配置集群相关信息:
以上配置说明:
Cluster Name:填写集群名称(crystal-cluster)
Member Roles:配置访问该集群的用户,及每一个用户对集群的操做权限,
Label & Annotations:为集群配置标签和注释,按需配置。
Kubernetes Options:
—>Kubernetes Version:选择kubernets版本
—>Network Provider:选择须要的网络驱动
—>Project Network Isolation:配置namespace之间的网络隔离
—>Cloud Provider:选择云提供商。本文采用VMware虚拟机部署,默认选择无
Private Registry:配置私有镜像仓库
Advanced Options:配置自定义集群参数,按需配置。
Authorized Endpoint:配置受权访问地址
以上参数均能根据页面的提示和本身的需求作出相应的配置,本文实验除了Cluster Name以外,其他均选择了默认配置。
2.4 而后点击"Next",到下一步添加主机命令,选择主机角色:
(选择主机角色,端口放行参考: https://rancher.com/docs/rancher/v2.x/en/installation/references/)
角色选择:每台主机能够运行多个角色。每一个集群至少须要一个Etcd角色、一个Control角色、一个Worker角色
选择好角色后,下面的代码框会根据选择的角色生成对应的主机命令,而后将命令复制到node主机上运行(注意node节点是否已经安装好支持版本的docker,而且docker处于running的状态)。
2.5 选好角色后,将命令复制到node节点部署:
test103(10.0.0.103),运行etcd、Control Plane、Work角色。所以,在test103执行这条命令:
注意:若是你也选择在某个节点上部署三个角色,那么内存最小都必需要大于2G,1G内存虽然能起来,可是集群活不长就会挂掉,不要问我怎么知道的
这一步须要安装的组件不少,须要耐心多等一下子。组件在安装时,rancher-server能看到下面这个提示:
继续添加第二个节点了。
在test104(10.0.0.104)上运行work这一个角色,所以,在test104上运行这条命令:
2.6 点击“Done”按钮,回到主页,查看集群详情:
点击上图中的“2”进去这个界面,能够看到刚刚加进来的两台node节点分别的State、hostname、IP、Roles等等信息
下图标注的几个地方:
一、edit:能够对主机进行编辑,给主机设置别名,如:测试机104
二、Delete:能够删除该主机
三、Edit Cluster:点击这个按钮,回到刚刚建立主机的界面编辑集群。须要添加新的节点也能从这里进去找到添加主机命令
点击左上角的集群名称,能够看到对应集群的仪表盘信息:
至此,集群添加完毕。
3.1 建立project:
为应用更好的管理,rancher在kubernetes的namespace上封装projects的概念,一个projects能够包含多个namespace,先添加一个project。
3.1.1 点击Projects/Namespace,进入建立project界面:
3.1.2 点击右上角“Add Project”:
3.1.3 填写Project Name,点击Create建立一个叫“crystal-cluster-project”的project:
(至于下面的成员信息、资源配额,容器限制、标签等配置,这里没有配置。页面提示很详细,能够按需配置)
而后在projects-namespaces这个页面的末尾,就能看到刚刚建立的project了。
3.2 建立Namespace:
3.2.1 根据前面的命名规则,再点击“Add Namespace”建立一个叫“crystal-cluster-project-namespace”的namespace:
3.2.2 跟建立project同样,这里只填写name,其他配置默认(Container Default Resource Limit这个容器资源限制,在正式环境建议设置,减小OOM风险):
在projects-namespaces界面,就能看到刚刚建立的namespace:
4.1 首先进入刚刚建立的project:
4.2 点击右上角的“Deploy”,开始部署:
4.3 填写好Name、Docker Image、Port Mapping等相关的部署信息:
填写完整相关信息,点击launch部署:
后面方框中的环境变量、主机调度、健康检查、数据卷、缩放/升级策略在真实环境中很是有用,功能跟rancher1相似,这里默认,不赘述。
以后跳转到这个页面,看到状态变成active了,就部属成功了:
在详情界面能看到这个应用的相关配置,也能进行扩缩容:
4.4 访问验证:
经过nginx的IP+端口,访问验证功能:
至此。本文完!
一、rancher在管理docker挺实用的,更新换代还算比较快。以前部署过rancher2.1.1,界面和2.3.5仍是有一些差异。二、本文属于记录简单入门操做的小白笔记,更多的功能说明和理论,能够查看rancher官网和k8s相关官网说明。三、最后,不论是环境差别仍是别的因素,按照这个方案部署可能会遇到坑,那就爬吧!加油!