首页 > 其他分享 >通过 Docker 和 Kubernetes 部署前后端代码到服务器

通过 Docker 和 Kubernetes 部署前后端代码到服务器

时间:2024-09-25 22:52:39浏览次数:3  
标签:frontend Kubernetes service yaml 服务器 Docker backend

目录

通过 Docker 和 Kubernetes 部署前后端代码到服务器

一、准备工作

二、创建 Docker 镜像

三、部署到 Kubernetes

四、访问应用程序

五、总结


在现代软件开发中,Docker 和 Kubernetes 已成为部署应用程序的强大工具。它们提供了一种可靠、可扩展和高效的方式来将前后端代码部署到服务器上。本文将介绍如何使用 Docker 和 Kubernetes 来部署前后端代码。

一、准备工作

  1. 安装 Docker 和 Kubernetes:在服务器上安装 Docker 和 Kubernetes。可以参考官方文档进行安装。
  2. 准备前后端代码:确保前后端代码已经编写完成,并进行了测试。可以使用任何前端框架(如 React、Vue.js 等)和后端框架(如 Node.js、Spring Boot 等)。

二、创建 Docker 镜像

  1. 后端代码
    • 创建一个 Dockerfile 文件,用于构建后端代码的 Docker 镜像。以下是一个示例 Dockerfile:

FROM node:14-alpine

WORKDIR /app

COPY package*.json./

RUN npm install

COPY..

EXPOSE 3000

CMD ["npm", "start"]

  • 在项目目录中,运行以下命令来构建 Docker 镜像:

docker build -t backend-image.

  1. 前端代码
    • 创建一个 Dockerfile 文件,用于构建前端代码的 Docker 镜像。以下是一个示例 Dockerfile:

FROM nginx:alpine

COPY dist/ /usr/share/nginx/html

  • 在项目目录中,运行以下命令来构建 Docker 镜像:

docker build -t frontend-image.

三、部署到 Kubernetes

  1. 创建 Kubernetes 部署文件
    • 对于后端服务,创建一个 deployment.yaml 文件,用于定义后端服务的部署。以下是一个示例 deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: backend
  template:
    metadata:
      labels:
        app: backend
    spec:
      containers:
      - name: backend
        image: backend-image
        ports:
        - containerPort: 3000

  • 对于前端服务,创建一个 deployment.yaml 文件,用于定义前端服务的部署。以下是一个示例 deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: frontend-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: frontend
  template:
    metadata:
      labels:
        app: frontend
    spec:
      containers:
      - name: frontend
        image: frontend-image

  1. 创建 Kubernetes 服务文件
    • 对于后端服务,创建一个 service.yaml 文件,用于定义后端服务的服务。以下是一个示例 service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: backend-service
spec:
  selector:
    app: backend
  ports:
  - port: 80
    targetPort: 3000

  • 对于前端服务,创建一个 service.yaml 文件,用于定义前端服务的服务。以下是一个示例 service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: frontend-service
spec:
  selector:
    app: frontend
  ports:
  - port: 80
    targetPort: 80

  1. 应用部署文件
    • 在服务器上,使用以下命令来应用部署文件:

kubectl apply -f backend-deployment.yaml
kubectl apply -f backend-service.yaml
kubectl apply -f frontend-deployment.yaml
kubectl apply -f frontend-service.yaml

四、访问应用程序

  1. 获取服务的外部 IP 地址
    • 使用以下命令来获取后端服务的外部 IP 地址:

kubectl get service backend-service

  • 使用以下命令来获取前端服务的外部 IP 地址:

kubectl get service frontend-service

  1. 访问应用程序
    • 使用浏览器访问前端服务的外部 IP 地址,即可访问应用程序。

五、总结

通过使用 Docker 和 Kubernetes,可以轻松地将前后端代码部署到服务器上。Docker 提供了一种将应用程序打包成容器的方式,使得应用程序可以在不同的环境中运行。Kubernetes 提供了一种管理容器化应用程序的方式,使得应用程序可以在集群中进行部署、扩展和管理。通过这种方式,可以提高应用程序的可靠性、可扩展性和可维护性。

标签:frontend,Kubernetes,service,yaml,服务器,Docker,backend
From: https://blog.csdn.net/m0_57836225/article/details/142471204

相关文章

  • Dockerfile文件详解
    什么是dockerfile?Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。Docker通过读取Dockerfile中的指令自动生成映像。dockerbuild命令用于从Dockerfile构建映像。可以在dockerbuild命令中使用-f标志指向文件系统中任何位置的Dockerfile。例......
  • 学习docker后的个人理解
    一、什么是dockerDocker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,它将软件组件包装成一个完整的标准化单元,其中包含所有要运行的内容......
  • Centos下安装Docker集群管理工具Shipyard
     一、DockerShipyard是什么?shipyard是一个开源的docker管理平台,其特性主要包括:1支持镜像管理、容器管理。2支持控制台命令3容器资源消耗监控4支持集群swarm,可以随意增加节点5支持控制用户管理权限,可以设置某个容器对某个用户只读、管理权限。6有汉化版缺点:1不支持i......
  • sersync+rsync实现服务器文件实时同步
    sersync+rsync实现服务器文件实时同步一、为什么要用rsync+sersync架构?1、sersync是基于inotify开发的,类似于inotify-tools的工具2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用r......
  • IIS Web服务器安装配置教程(图文)---IIS安装(win10)
    IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。IIS是什么很多朋友都不知道IIS是什么?其实IIS是InternetInformation......
  • 网络视频存储服务器和nvr区别
    网络视频存储服务器(通常简称为NVR服务器或简称为NVR)和NVR(网络视频录像机)在视频监控领域中都是重要的设备,但它们之间存在一些关键的区别。以下是两者之间的主要差异点:NVR(网络视频录像机)定义:NVR是一种专门用于网络视频监控系统的设备,它的主要功能是接收来自网络摄像头的视频流,对其进......
  • 国外网站服务器访问超时怎么解决
    国外网站服务器访问超时可能是由于多种原因造成的,包括网络连接问题、服务器配置、DNS解析问题等。以下是一些可能的解决方案:检查网络连接:确认你的网络连接是否稳定。重启你的路由器或调制解调器。尝试在不同的设备上访问该网站,以确定问题是否出在特定设备上。刷新DNS缓存:在你的电脑......
  • Docker常用命令
    Docker常用命令1.docker基础命令启动dockersystemctlstartdocker关闭dockersystemctlstopdocker重启dockersystemctlrestartdockerdocker设置随服务启动而自启动systemctlenabledocker查看docker运行状态systemctlstatusdocker查看docker版......
  • 云存储和存储服务器比较
    云存储和存储服务器(包括NAS和专业的存储服务器)是两种不同的数据存储解决方案,它们各自具有独特的优势和使用场景。以下是比较这两者的几个关键点:云存储成本模式:云存储通常采用按需付费的模型,用户只需为他们实际使用的存储空间和服务付费。避免了硬件购买、维护和升级的初始投资和长......
  • 影视视频网站需要租用存储服务器吗
    影视视频网站通常需要处理和存储大量的视频文件,这些文件占用的空间很大,对存储和带宽的需求较高。因此,对于影视视频网站来说,租用专门的存储服务器通常是必要的。以下是几个原因说明为什么影视视频网站可能需要租用存储服务器:存储空间需求:视频文件大小通常很大,从几GB到几十GB不等,而......