宝塔面板 + 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 支持,并打包成镜像推送到仓库,在服务器上创建容器并运行应用。

一个逗逗的大学生

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
789 108
|
2月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1616 9
|
2月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
345 2
|
2月前
|
Kubernetes Devops Docker
Kubernetes 和 Docker Swarm:现代 DevOps 的理想容器编排工具
本指南深入解析 Kubernetes 与 Docker Swarm 两大主流容器编排工具,涵盖安装、架构、网络、监控等核心维度,助您根据团队能力与业务需求精准选型,把握云原生时代的技术主动权。
283 1
|
5月前
|
存储 Kubernetes 监控
Docker与Kubernetes集成挑战及方案
面对这些挑战,并不存在一键解决方案。如同搭建灌溉系统需要考虑多种因素,集成Docker与Kubernetes也需要深思熟虑的规划、相当的技术知识和不断的调试。只有这样,才能建立起一个稳定、健康、高效的Docker-Kubernetes生态,让你的应用像花园中的植物一样繁荣生长。
278 63
|
7月前
|
存储 Kubernetes 调度
Kubernetes、Docker和Containerd的关系解析
总的来说,Docker、Containerd和Kubernetes之间的关系可以用一个形象的比喻来描述:Docker就像是一辆装满货物的卡车,Containerd就像是卡车的引擎,而Kubernetes就像是调度中心,负责指挥卡车何时何地送货。
367 12
|
8月前
|
Kubernetes Docker 容器
Kubernetes与Docker参数对照:理解Pod中的command、args与Dockerfile中的CMD、ENTRYPOINT。
需要明确的是,理解这些都需要对Docker和Kubernetes有一定深度的理解,才能把握二者的区别和联系。虽然它们都是容器技术的二个重要组成部分,但各有其特性和适用场景,理解它们的本质和工作方式,才能更好的使用这些工具,将各自的优点整合到生产环境中,实现软件的快速开发和部署。
314 25
|
9月前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
282 19

热门文章

最新文章