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

一个逗逗的大学生

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。 &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
1月前
|
Java Linux C语言
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
355 90
|
1天前
|
消息中间件 Kafka 流计算
docker环境安装kafka/Flink/clickhouse镜像
通过上述步骤和示例,您可以系统地了解如何使用Docker Compose安装和配置Kafka、Flink和ClickHouse,并进行基本的验证操作。希望这些内容对您的学习和工作有所帮助。
41 28
|
1月前
|
Ubuntu NoSQL 开发工具
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
208 70
|
13天前
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
83 28
|
14天前
|
网络协议 Linux 网络安全
docker centos镜像 npm安装包时报错“npm ERR! code ECONNRESET”
通过上述步骤,您可以有效解决在 Docker 中使用 CentOS 镜像安装 npm 包时遇到的 "npm ERR! code ECONNRESET" 错误。希望这些方法能帮助您顺利进行 npm 包的安装。
90 26
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
85 27
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
158 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
1月前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
74 22
|
1月前
|
Ubuntu NoSQL 关系型数据库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
126 29
|
2月前
|
Docker 容器
将本地的应用程序打包成Docker镜像
将本地的应用程序打包成Docker镜像

热门文章

最新文章