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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 前言:本文使用 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 进行安装。


微信图片_20220426172639.png

 

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


微信图片_20220426172642.png

 

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


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


微信图片_20220426172646.png


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

命名空间

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 提供了在生产环境中使用的管理 DockerKubernetes 的全栈化容器部署与管理平台。


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


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


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


微信图片_20220426172738.png


注:

Rancher 默认使用了端口  8888


2,访问 Rancher 面板


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


微信图片_20220426172742.png

 

3,允许端口


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


微信图片_20220426172748.png

微信图片_20220426172756.png


4,查看容器、镜像


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

 

四,管理 Rancher、添加集群


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


微信图片_20220426172904.png

 

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


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


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


微信图片_20220426172912.png

 

微信图片_20220426172921.png

 

2,试试切换中文


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


微信图片_20220426172927.png


3,添加主机


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

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


微信图片_20220426172931.png


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


微信图片_20220426172939.png


4,出现了主机


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

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


微信图片_20220426172943.png


微信图片_20220426172948.png


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


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


微信图片_20220426172951.png


微信图片_20220426172954.png


五,添加 Rancher 应用、服务,与 Nginx


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


1,放行  4500 端口、500 端口

4500、500 Rancher 系统服务需要


2,在 Rancher 中添加应用

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

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


微信图片_20220426173303.png


微信图片_20220426173306.png


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


  • 名称输入 nginx
  • 镜像输入 nginx ,当然你也可以选择 nginx 版本,填写形式跟 Docker 镜像形式一致,
  • 两个端口输入 8090
  • 其他地方不用填,点击 ”创建“ 即可。


这里填写的端口,公开端口即 Docker 向外公开的端口,私有容器端口是容器内其应用的端口。


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


两个端口的关系相当于

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


微信图片_20220426173310.png


微信图片_20220426173315.png


4,添加负载均匀


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

 

微信图片_20220426173318.png

 

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

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


微信图片_20220426173322.png

 

5,访问 nginx


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

即可访问


微信图片_20220426173325.png


6,集群负载均匀


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


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

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


微信图片_20220426173329.png


六,ASP.NET Core 应用部署


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


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


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


微信图片_20220426173544.png


2,添加服务


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

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


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


微信图片_20220426173548.png

 

3,添加负载均匀


微信图片_20220426173558.png


微信图片_20220426173602.png

 

4,访问网站


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


微信图片_20220426173606.png


七,相关文章推荐


1,使用  Kubernetes


KubernetesGoogle 开源的容器集群管理系统。

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


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

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


微信图片_20220426173721.png


微信图片_20220426173727.png


推荐文章

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

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

 

2,本地 ASP.NET Core 应用容器化


Vs2017 以上,已经为 ASP.NET Core 添加 Docker 支持


微信图片_20220426173734.png


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

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

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

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2天前
|
Kubernetes Cloud Native 持续交付
云原生之旅:Docker容器化与Kubernetes集群管理
【9月更文挑战第33天】在数字化转型的浪潮中,云原生技术如同一艘航船,带领企业乘风破浪。本篇文章将作为你的航海指南,从Docker容器化的基础讲起,直至Kubernetes集群的高级管理,我们将一起探索云原生的奥秘。你将学习到如何封装应用、实现环境隔离,以及如何在Kubernetes集群中部署、监控和扩展你的服务。让我们启航,驶向灵活、可伸缩的云原生未来。
|
4天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker与Kubernetes入门
【9月更文挑战第30天】在云计算的浪潮中,云原生技术正以前所未有的速度重塑着软件开发和运维领域。本文将通过深入浅出的方式,带你了解云原生的核心组件——Docker容器和Kubernetes集群,并探索它们如何助力现代应用的构建、部署和管理。从Docker的基本命令到Kubernetes的资源调度,我们将一起开启云原生技术的奇妙之旅。
|
1月前
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
68 15
Docker自建仓库之Harbor高可用部署实战篇
|
19天前
|
Kubernetes Cloud Native 开发者
云原生入门:从Docker到Kubernetes的旅程
【9月更文挑战第16天】 本文将带你进入云原生的世界,从理解Docker容器的基础开始,逐步深入到Kubernetes集群管理。我们将通过简单的代码示例和实际操作,探索这两个关键技术如何协同工作,以实现更高效、灵活的应用程序部署和管理。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供清晰的指导和实用的知识。
51 11
|
15天前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
29 1
|
22天前
|
Kubernetes Docker 微服务
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
|
1月前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
78 12
|
1月前
|
Docker 容器
Docker Hub镜像公共仓库使用
这篇文章介绍了如何使用Docker Hub公共仓库进行镜像的创建、上传、下载和管理。
443 8
|
7天前
|
存储 Kubernetes Docker
深入探索容器化技术:Docker 实战与 Kubernetes 管理
深入探索容器化技术:Docker 实战与 Kubernetes 管理
21 0
|
1月前
|
运维 数据安全/隐私保护 Docker
Docker自建仓库之Docker Registry部署实战
关于如何使用Docker Registry镜像搭建本地私有Docker仓库的实战教程,包括了下载镜像、创建授权目录和用户名密码、启动Registry容器、验证端口和容器、测试登录仓库、上传和下载镜像的详细步骤。
122 5
下一篇
无影云桌面