宝塔面板 + Rancher + 阿里云镜像仓库 + Docker + Kubernetes,添加集群、部署 web 应用

目录
  一,安装宝塔面板(V 6.8)
  二,使用宝塔安装 Docker,配置阿里云容器服务
  三,安装 Rancher (Server)
  四,管理 Rancher、添加集群
  五,添加 Rancher 应用、服务,与 Nginx
  六,ASP.NET Core 应用部署
  七,相关文章推荐
前言:

本文使用 Centos 7.x 进行操作,Rancher 官方推荐使用 Ubuntu。

Docker 对内核要求 大于 3.10,你可以使用 uname -r 检测系统内容版本。

通过 Rancher,可以很方便地对多个主机进行管理,实现负载均匀、集群、分布式构架、故障转移、状态监控等。

一,安装宝塔面板(V 6.8)
宝塔官网提供了详细的安装教程,针对不同系统有不同安装方式,下面只提供部分安装代码。

详细请移步 https://www.bt.cn/bbs/thread-19376-1-1.html

打开服务器 shell 终端

Centos 安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu/Deepin 安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

等待一段时间后,会出现控制面板地址和账号密码
样例如下:

Bt-Panel: http://<您的 CVM IP 地址>:8888
username: qbqd**
password: eeed**

记下你的账号密码

打开面板地址,输入账号密码进行登陆。

注:

阿里云、腾讯云等有安全组限制,可能需要添加 8888 端口,给予访问权限。

二,使用宝塔安装 Docker,配置阿里云容器服务
通过宝塔面板的 Docker管理器 ,可以很方便地获取、提交镜像,推送已修改的镜像,对本地的容器进行管理,一切可视化操作,还能单独对容器打开终端,进行命令操控。

1,登陆宝塔面板后,点击左侧导航栏的 “软件管理”,找到 Docker 进行安装。

2,安装完毕后,打开 Docker 管理器(可在 “软件管理” 中找到)。

3,点击镜像管理,添加阿里云镜像账号

填写账号,需要你的 阿里云RAM访问控制(子账号)、镜像仓库、命名空间。

可到以下地址查看或创建,再填写到宝塔面板

命名空间

https://cr.console.aliyun.com/cn-shenzhen/namespaces

镜像仓库

https://cr.console.aliyun.com/cn-shenzhen/repositories

镜像加速器

https://cr.console.aliyun.com/cn-shenzhen/mirrors

RAM访问控制

https://ram.console.aliyun.com/overview

5分钟内即可完成。

三,安装 Rancher (Server)
Rancher 是一个开源的企业级容器管理平台。通过 Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。

Rancher 提供了在生产环境中使用的管理 Docker 和 Kubernetes 的全栈化容器部署与管理平台。

当然,使用Rancher,带来了管理上的方便,也是会稍微降低服务器的性能的,但是这点影响,可以忽略不计。

1,在 shell 终端 输入命令安装 Rancher

sudo docker run -d --restart=always -p 8080:8080 rancher/server

注:

Rancher 默认使用了端口 8888

2,访问 Rancher 面板

打开 http://ip:8080,即可访问你的面板,如果无法访问,请查看 下一步。

3,允许端口

由于安全组和防火墙限制,需要在云服务商实例安全组和宝塔面板开放 8080 端口,才能正常访问。建议直接放行 1-9000 范围的端口,后面仍然需要开放几个端口,直接开放一个范围,后面就不必再一个个添加。

4,查看容器、镜像

打开 宝塔面板 的 “软件管理”-Docker管理,可以查看到正在运行的容器和本地镜像,利用宝塔面板很方便地可以对 Docker 进行操控。可以尝试把镜像推送到阿里云仓库。

四,管理 Rancher、添加集群
打开全部应用列表,查看状态,healthcheck 、ipsec (除了 myapp )等是系统服务,如果出现下面的情况(显示红色、出现感叹号),请检查是否开放了 500、4500 端口,然后手动启动运行。

我们安装的 Rancher ,实际上是 Server 端,通过 Rancher,可以完成集群管理、分布式架构。

1,打开了 Rancher,首先要添加管理员账号

点击顶部导航栏的 ADMIN,选择 Access Control ,在出现的多个图标中,选择 LOCAL,然后添加账号密码。

2,试试切换中文

Rancher 底部有语言切换功能,修改为中文,方便后面的讲解。

3,添加主机

要使用 Rancher,至少要一个主机,可以是当前主机的本身。

点击 Rancher 面板顶部导航栏的 ”基础构架“ - ”主机“,然后 添加主机。

这一步,无需修改或进行其他什么配置,页面下方会出现一端脚本代码,把这段代码复制到终端 shell 运行。待 shell运行完毕,点击 Rancher 页面的”关闭“,一定要记得 点击关闭。

4,出现了主机

这时候即可看到以及添加的主机,可以对容器进行监控、修改啦~~~

这里添加的是 ”Custom“ ,你也可以添加 Azure 等主机。

5,使用仪表盘查看主机状态

在主机列表,点击实例名,即可加入仪表盘。

五,添加 Rancher 应用、服务,与 Nginx
这一步主要以 Nginx 为例,通过创建 Nginx 服务器,学会使用 Rancher、相关功能的使用,对其他应用使用类似方式手动部署。

1,放行 4500 端口、500 端口

4500、500 是 Rancher 系统服务需要

2,在 Rancher 中添加应用

点击导航栏的 ”应用“ - ”全部“ ,页面会出现应用列表。

点击 ”添加应用“ ,名称为 myapp

3,在刚刚创建的应用中,添加服务

名称输入 nginx,
镜像输入 nginx ,当然你也可以选择 nginx 版本,填写形式跟 Docker 镜像形式一致,
两个端口输入 8090 ,
其他地方不用填,点击 ”创建“ 即可。
这里填写的端口,公开端口即 Docker 向外公开的端口,私有容器端口是容器内其应用的端口。

由于这里不对 nginx 服务器进行更多处理,所以端口可以随便填,只要公开端口没有被占用即可~

两个端口的关系相当于

docker run -p 8080:8080 ... ...

4,添加负载均匀

在 myapp 应用管理界面,点击 ”添加服务“ -> ”添加负载均匀“ ,端口填写 80/80 ,此端口用于外网访问 Docker 容器内的应用、实现多台主机的负载均匀。通过使用 负载均匀功能 ,负担 nginx 服务的流量。不要设置为 8080 等,不然会出现访问失败。此功能也是把容器应用暴露到外网的功能,通过外网可以直接访问到应用。

一定要选择目标,选择要暴露的应用。

这里选择 80 作为端口,因为开发者使用 nginx 部署网站,网站访问应当使用 80 端口。当然,也可以随意使用其他端口。

5,访问 nginx

打开 http://ip:80 或直接访问 http://ip

即可访问

6,集群负载均匀

通过添加外部服务,再添加负载均匀,重复两个步骤,可以实现集群的负载均匀。这里不再尝试。

在这里注意负载均衡与外部服务的区别,

负载均衡需要配置服务自身的端口,
而外部服务需要为其配置,其他链接服务所暴露出的端口,即其他主机暴露出来的公用端口

六,ASP.NET Core 应用部署
这里与第五步 的 Nginx 无关,为了便于理解、避免端口占用,我们把创建的 myapp 删除。

笔者作为 .NET 学习者,当然要搞一下ASP.NET Core了~~~。

1,添加新的应用,名为 webapp

2,添加服务

镜像源填写 microsoft/dotnet-samples:aspnetapp

这个镜像为微软官方提供的 ASP.NET Core 默认模板镜像,当然,你也可以把自己的应用打包后推送镜像到仓库,再使用 Rancher 创建容器。

端口为 5000,是因为 ASP.NET Core 默认使用 5000 端口,我们干脆也用这个。没实际意义,不必关注这一点。

3,添加负载均匀

4,访问网站

访问 http://ip:80 或直接访问 你的ip

七,相关文章推荐
1,使用 Kubernetes
Kubernetes 是 Google 开源的容器集群管理系统。

其设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。

Kubernetes 通常结合 docker 容器工具工作,并且整合多个运行着docker容器的主机集群,Kubernetes不仅仅支持 Docker,还支持 Rocket,这是另一种容器技术。

(直接抄来的,哈哈哈哈~~~)

推荐文章

http://blog.51cto.com/13941177/2165668

#文章手把手,非常详细地讲解使用Rancher 安装 K8s,部署集群、配置节点,对主机进行管理、部署Web应用

2,本地 ASP.NET Core 应用容器化
Vs2017 以上,已经为 ASP.NET Core 添加 Docker 支持

我们可以更方便地进行开发,实现跨平台、微服务构架等。

笔者 推荐文章 https://www.cnblogs.com/FireworksEasyCool/p/10218384.html

详细讲解了 ASP.NET Core 项目如何添加 Docker 支持,并打包成镜像推送到仓库,在服务器上创建容器并运行应用。

一个逗逗的大学生

上一篇:阿里云物联网 .NET Core 客户端 | CZGL.AliIoTClient:6. 设备事件上报


下一篇:六、Linux企业级YUM软件管理