如何使用Rancher发布前端服务过程详解

 更新时间:2023年08月25日 09:29:07   作者:HerryLo  
这篇文章主要为大家介绍了如何使用Rancher发布前端服务过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

项目中用到rancher发布前端代码,我自己参与了一次构建,遇到了很多的问题,不过一一解决了,用闲暇的时间,将遇到的问题记下来,也算是一次复盘了。

rancher是一个开源的企业级容器管理平台,重点“容器管理”,可以极大的简化容器管理的复杂度(相对于K8s),它是对于k8s容器引擎的封装,有兴趣可以看看官方文档。

上传镜像

需要先安装docker,确保docker是可以使用的。下面是Dockerfile文件和default.conf文件

FROM  nginx
COPY ./build /usr/share/nginx/html/
COPY ./default.conf /etc/nginx/conf.d/
EXPOSE 80

Dockerfile文件主要用于docker镜像的创建;

FROM nginx:FROM指令初始化一个新的构建阶段,并为后续指令设置基础镜像,这里的基础镜像是nginx;

COPY ./build /usr/share/nginx/html/./build是前端打包之后的文件地址,将它复制到nginx的html目录下;

COPY ./default.conf /etc/nginx/conf.d/./default.conf是nginx配置文件, 将它复制到nginx的conf.d目录下;

EXPOSE 80:监听80端口;

打包代码

通过如下命令行打包代码(实际代码根据自己项目而定):

// 前端本地打包
$ npm run build:prod
// 移除之前旧的镜像
$ docker rmi xx.harbor.com:10443/xx/front-web-project:1.0.0
// 构建镜像
$ docker build -f Dockerfile -t xx.harbor.com:10443/xx/front-web-project:1.0.0 .
// push 镜像到镜像仓库
$ docker push xx.harbor.com:10443/xx/front-web-project:1.0.0

镜像仓库是提前构建好的,可以找运维工程师确认。我上面使用到的是harbor镜像存储库,这个是运维工程师搭建好的,我这边可以直接使用。镜像名和tag根据自己项目实际来。

Nginx配置

下面就是nginx配置文件,由于是前端项目,nginx主要在这里做的就是静态资源服务器,接口代理。

server {
  listen       80;
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Credentials true;
  add_header Access-Control-Allow-Methods *;
  client_max_body_size 2000M;
  location / {
    root   /usr/share/nginx/html/;
    index  index.html index.htm;
    try_files $uri /index.html;
  }
}

nginx配置文件根据自己的实际需求编写,更多的配置也可以在这里继续添加(比例接口代理负载均衡等)。

工作负载

rancher是一个容器管理平台,是k8s的二次封装,提供更丰富的功能,有兴趣的同学,可以看看 官网 的相关资料。在rancher里工作负载是一个对象,包括pod以及部署应用程序所需的其他文件和信息。

以下是rancher中 工作负载服务的创建过程:

点击部署服务,进入到创建工作负载界面:

Docker镜像地址是你已经上传的 前端镜像地址 ,主机端口需要 找运维确认端口 ,命名空间可选中已有的。容器端口一般都是 80,这和你的 default.conf配置端口相关。以上填写完成之后,滑动到底部,点击升级按钮

点击进入创建完成的工作负载中,如果pods中存在正常running的pod实例,既是创建成功。如果存在其他问题,可以参考下面 出现的问题,进行相关问题的排查。

创建发布成功后,既可通过ip+端口访问前端服务,如果能访问成功代表部署的没有问题。

出现的问题

以下问题是在实际使用发现的问题,将它们记录下来;

  • 镜像构建服务无法成功,提示是失败的构建

优先查看日志信息,根据日志信息提示排查问题。例如:如果提示镜像构建服务时报错,记得排查前端静态资源文件打包中,nginx配置文件编写存在问题相关的Dockfile文件配置信息是否正常

  • 镜像构建服务成功后,页面依然无法访问

查看日志信息,查看是否有提示信息。如果存在提示信息,根据提示排查问题;
在保证服务启动正常,nginx配置正常的前提下,与相关人员确认,服务器IP、端口号,是否正常开启。

  • 构建服务成功,页面访问不是目标文件

确认nginx配置信息是否生效,是否有被其他文件覆盖;并确认前端资源文件上传到了指定目录,存在相关文件目录。

  • 构建服务成功,页面访问正常,接口代理异常

查看访问日志信息,是否存在相关请求提示信息。确认nginx配置接口代理编写正确,不存在异常错误;再打开命令行窗口,尝试通过 curl [目标服务接口地址],确认接口ip是否可以正常访问。

  • 代理文件、接口地址访问不稳定

确认网络模式,IP地址是否为相同模式下的IP和端口。

以上就是如何使用Rancher发布前端服务过程详解的详细内容,更多关于Rancher发布前端服务的资料请关注脚本之家其它相关文章!

相关文章

  • Docker部署用Python编写的Web应用的实践

    Docker部署用Python编写的Web应用的实践

    本文主要介绍了Docker部署用Python编写的Web应用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Docker部署Memos服务的实现

    Docker部署Memos服务的实现

    本文将介绍如何使用Docker部署Memos服务,首先,我们将构建Memos服务的Docker镜像,然后将在Docker容器中运行Memos服务,感兴趣的可以了解一下
    2023-12-12
  • 使用docker搭建gitlab并且开放到公网

    使用docker搭建gitlab并且开放到公网

    这篇文章主要介绍了使用docker搭建gitlab并且开放到公网,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • docker compose方式如何安装ClickHouse数据库

    docker compose方式如何安装ClickHouse数据库

    这篇文章主要介绍了docker compose方式如何安装ClickHouse数据库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 使用Grafana 展示Docker容器的监控图表并设置邮件报警规则(图解)

    使用Grafana 展示Docker容器的监控图表并设置邮件报警规则(图解)

    这篇文章主要介绍了使用Grafana 展示Docker容器的监控图表并设置邮件报警规则的图文教程,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-01-01
  • docker守护进程的配置和操作的方法

    docker守护进程的配置和操作的方法

    这篇文章主要介绍了docker守护进程的配置和操作的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 虚拟机如何安装指定版本的Docker举例详解

    虚拟机如何安装指定版本的Docker举例详解

    这篇文章主要介绍了虚拟机如何安装指定版本的Docker的相关资料,包括配置yum源、查看可用版本、安装指定版本、卸载旧版本、解决冲突、再次安装以及最后验证安装,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • 删除Docker镜像、容器和卷的教程指南

    删除Docker镜像、容器和卷的教程指南

    Docker 可以轻松地将应用程序和服务封装在容器中,以便在任何地方运行,然而,在使用 Docker 的过程中,很容易积累大量未使用的镜像、容器和数据卷,这些会使输出杂乱,并占用磁盘空间,所以本文给大家介绍了如何删除Docker镜像、容器和卷,需要的朋友可以参考下
    2024-10-10
  • 解决Docker必须使用sudo操作的问题

    解决Docker必须使用sudo操作的问题

    这篇文章主要介绍了解决Docker必须使用sudo操作的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker desktop安装mysql过程

    Docker desktop安装mysql过程

    文章介绍了如何在本地已有的Docker环境中拉取并启动MySQL容器,并详细说明了常用的环境变量参数,此外,还讨论了如何通过挂接本地磁盘来持久化MySQL数据,从而避免数据丢失
    2024-12-12

最新评论