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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 宝塔面板 + 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 支持,并打包成镜像推送到仓库,在服务器上创建容器并运行应用。

一个逗逗的大学生

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
11天前
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
259 0
|
15天前
|
存储 测试技术 Linux
【Docker项目实战】使用Docker部署bender个人仪表板
【4月更文挑战第2天】使用Docker部署bender个人仪表板
28 1
|
25天前
|
存储 机器学习/深度学习 中间件
快速上手 Elasticsearch:Docker Compose 部署详解
本文介绍了如何使用Docker Compose快速搭建Elasticsearch学习环境。Elasticsearch是一款用于实时搜索和分析的分布式中间件,适用于多种场景,如搜索、日志分析、机器学习等。首先,创建docker网络,拉取最新版8.12.2镜像。接着,编写docker-compose.yml文件,配置单节点集群,设置端口映射、内存限制及数据卷挂载。然后,创建并配置数据卷目录,允许远程访问和跨域。最后,启动服务并验证,通过浏览器访问确认服务运行正常。本文为初学者提供了一个简便的Elasticsearch部署方法。
140 4
快速上手 Elasticsearch:Docker Compose 部署详解
|
16天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
78 0
|
22天前
阿里云配置dcoker镜像仓库
阿里云配置dcoker镜像仓库
70 0
|
1天前
|
测试技术 Linux 网络安全
【好玩的开源项目】使用Docker部署SyncTV视频同步和共享平台
【4月更文挑战第16天】使用Docker部署SyncTV视频同步和共享平台
20 0
|
5天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署Seatsurfing预订座位系统
【4月更文挑战第12天】使用Docker部署Seatsurfing预订座位系统
32 3
|
7天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
8天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
12天前
|
测试技术 Linux 数据安全/隐私保护
【Docker项目实战】使用Docker部署PicoShare共享文件平台
【4月更文挑战第5天】使用Docker部署PicoShare共享文件平台
46 4