安装 Rancher2.x 并部署工作负载
rancher是一个开源的企业级全栈化容器部署及管理平台,官方是这么描述的:
Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件。Rancher2.0基于Kubernetes构建。使用Rancher,DevOps团队可以轻松测试、部署和管理应用程序,运维团队可以部署、管理和维护一切Kubernetes集群,无论集群运行在何基础设施之上。
rancher官方地址如下:
中文站点地址如下:
中文文档地址如下:
https://www.cnrancher.com/docs/rancher/v2.x/cn/overview/quick-start-guide/
本小节我们来学习一下rancher的安装,首先我们需要两台虚拟机,一台作为server,一台作为agent。两台机器的ip分别如下:
- rancher-server : 192.168.190.129
- rancher-server : 192.168.190.130
rancher需要在Linux系统上安装,我这里使用的是CentOS,rancher2.x要求的CentOS版本为7.5以上,所以两台机器使用的都是7.5版本。rancher对docker版本也有要求,目前只支持1.12.6、1.13.1以及17.03.2版本。不过我这里冒险用了18.03.1版本,发现也是可以用的,当然两台机器的docker版本也需要是一样的。如下:
[root@rancher-server ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@rancher-server ~]# docker --version
Docker version 18.03.1-ce, build 9ee9f40
[root@rancher-server ~]#
为了避免端口通信的问题,我们先关闭两台机器的防火墙以及重启一下docker:
[root@rancher-server ~]# systemctl stop firewalld
[root@rancher-server ~]# systemctl restart docker
如果不关闭防火墙,请参考官方关于端口需求的文档:
https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/references/
我们首先来安装rancher server,以下简称server。在安装server之前,我们先配置一下阿里云的docker镜像加速地址,否则镜像的下载会很慢:
[root@rancher-server ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://fy707np5.mirror.aliyuncs.com"]
}
[root@rancher-server ~]# systemctl daemon-reload
[root@rancher-server ~]# systemctl restart docker
使用官方提供的安装命令进行安装。执行过程如下:
[root@rancher-server ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Unable to find image 'rancher/rancher:latest' locally
latest: Pulling from rancher/rancher
124c757242f8: Pull complete
2ebc019eb4e2: Pull complete
dac0825f7ffb: Pull complete
82b0bb65d1bf: Pull complete
ef3b655c7f88: Pull complete
437f23e29d12: Pull complete
52931d58c1ce: Pull complete
b930be4ed025: Pull complete
4a2d2c2e821e: Pull complete
9137650edb29: Pull complete
f1660f8f83bf: Pull complete
a645405725ff: Pull complete
Digest: sha256:6d53d3414abfbae44fe43bad37e9da738f3a02e6c00a0cd0c17f7d9f2aee373a
Status: Downloaded newer image for rancher/rancher:latest
998306bd217e9790abdeb1fd99f07918e1c85b77687620ef7cb33bd25058b1fb
[rancher-server ~]#
执行完成后,查看80、443端口是否正常监听了:
[root@rancher-server ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 5061/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2699/master
tcp6 0 0 :::80 :::* LISTEN 35351/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 5061/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2699/master
tcp6 0 0 :::443 :::* LISTEN 35339/docker-proxy
[root@rancher-server ~]#
登录Rancher
到此server端的安装就算是完成了,接下来我们登录到server端的页面上添加集群,使用浏览器访问rancher server的主页,第一次访问需要设置管理员密码:
注:因为Rancher是自动使用的自签名证书,在第一次登录会提示安全授信问题,信任即可
然后设置rancher server的url,我这里就直接使用了虚拟机的内网ip了:
完成以上设置后,即可进入到rancher server的主页,在这里我们可以设置语言为中文:
我们首先需要添加一个集群,这里选择CUSTOM自定义集群,集群的名称可自定义:
配置主机的及角色地址,这个主机也就是rancher agent:
注:如果是多台主机,根据角色的不同,需要复制多次命令
复制生成的命令到rancher agent机器上执行。执行过程如下:
[root@rancher-agent ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.0.8 --server https://192.168.190.129 --token jvl45zj649v9q4dsj2rcsrzr7fn686rsk5lhqmpphkvw8rzrt52p8b --ca-checksum db22a3cdab6aa3d3da8db954c02a166a79c3017d6b122c65ffbee2d339eb95eb --internal-address 192.168.190.130 --etcd --controlplane --worker
Unable to find image 'rancher/rancher-agent:v2.0.8' locally
v2.0.8: Pulling from rancher/rancher-agent
124c757242f8: Pull complete
2ebc019eb4e2: Pull complete
dac0825f7ffb: Pull complete
82b0bb65d1bf: Pull complete
ef3b655c7f88: Pull complete
9750e7f516aa: Pull complete
bbcb46cc1cac: Pull complete
f3d67e2639ea: Pull complete
4c9aa41b309a: Pull complete
64cb19178381: Pull complete
Digest: sha256:aa2a164c18ea8b2f6b235186216448a9401ff3e02af064cadea569edc07b45e3
Status: Downloaded newer image for rancher/rancher-agent:v2.0.8
0356229848f8fd4d832ea5ea9d381a783fc4a67e5c0d1d73882fd1bff353543e
[root@rancher-agent ~]#
执行成功后,页面下方会显示新主机注册成功:
此时我们的集群处于等待注册的状态,点击主机下的数字可以查看主机信息:
主机信息如下,这会主机处于注册中的状态:
经过一段等待后,主机注册成功,转换为可用状态:
点击集群也能够看到集群的仪表盘信息了:
集群创建完成后,默认会生成Default项目,点击Default可以切换到项目视图:
部署工作负载
在rancher里工作负载是一个对象,包括pod以及部署应用程序所需的其他文件和信息。我们这里以nginx作为demo示例,在Default视图下,点击工作负载—部署服务
在部署工作负载页面,设置工作负载名称、副本数量、镜像名称、命名空间、端口映射,其他参数保持默认,不设置端口映射的话,默认是随机映射端口,我这里选择随机,最后点击启动:
部署完成:
此时我们可以通过随机映射的31671端口去访问nginx服务,能访问成功代表我们部署的没有问题:
- javascript 红皮高程(20)-- 逻辑或
- javascript 红皮高程(19)-- 逻辑与
- 技术分享 | 浅谈 RAS
- Sniper-OJ 练习平台多题WriteUp
- 怎么能学透一个知识点
- Jarvis-OJ平台多题WriteUp分享
- 会员提问 之 JS中的私有方法有什么意义?
- 本周末的QQ群视频--还是电商网站的事
- 【译】使用Apache的mod重写来保护你的C2 Empire
- 大白话,设计一个购物车对象
- 【译】Cromos – 下载并注入代码到谷歌 Chrome 浏览器扩展中
- X-NUCA 2017第三期 WriteUp
- 学习分享 | Flipped Ciphertext Bits
- 聊一下JavaScript定时器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android获取清单文件中的meta-data,解决碰到数值为null的问题
- android studio 打包自动生成版本号与日期,apk输入路径详解
- 详解关于AndroidQ获取不到imsi解决方案
- 解决webview 第二次调用loadUrl页面不刷新的问题
- 浅谈 Android 7.0 多窗口分屏模式的实现
- Kotlin中的对象表达式和对象声明的具体使用
- Android 实现为点击事件添加震动效果
- 解决Android studio Error:(30, 31) 错误: 程序包 不存在的问题
- AndroidQ 沙箱适配多媒体文件(小结)
- Bitcron 主题 Berry(简约wordpress主题)
- Android 实现图片转二进制流及二进制转字符串
- Android 如何实现exclude aar包中的某个jar包
- android 实现控件左右或上下抖动教程
- Android Studio引入FFmpeg的方法
- Android Studio 中获取屏幕宽度实例