开源项目ChatGPT-Next-Web的容器化部署(三)-- k8s deployment.yaml部署

一、说在前面的话

有了docker镜像,要把一个项目部署到K8S里,主要就是编写deployment.yaml。

你需要考虑的是:

  • 环境变量
  • 服务的健康检测
  • 持久化
  • 启动命令
  • 程序使用的数据源
  • 程序使用的配置文件

因为本前端项目比较简单,这里只做一个简单示例。

二、deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: '2'labels:app: chatgpt-next-webname: chatgpt-next-webnamespace: web-service
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 10selector:matchLabels:app: chatgpt-next-webstrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:labels:app: chatgpt-next-webspec:containers:- image: xxx-harbor-registry-vpc.cn-hangzhou.cr.aliyuncs.com/xxx/chatgpt-next:1.0.4imagePullPolicy: Alwaysname: chatgpt-next-webenv:- name: TZvalue: Asia/Shanghai- name: PORTvalue: 5173resources:limits:cpu: 2memory: 2Girequests:cpu: 200mmemory: 1.8GiterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilevolumeMounts:- mountPath: /etc/localtimename: volume-localtimednsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30volumes:- hostPath:path: /etc/localtimetype: ''name: volume-localtime

这里定义了环境变量PORT,指定容器监听的端口号,默认是3000。

三、启动命令

你可以在deployment.yaml中指定command,那样的话,会覆盖docker容器本身的CMD。
比如:

      containers:- image: xxx-harbor-registry-vpc.cn-hangzhou.cr.aliyuncs.com/xxx/chatgpt-next:1.0.4name: chatgpt-next-webcommand:- node- server.js

因为我们的Dockerfile已定义CMD,所以这里无需定义command。

这里说下,我踩过的一个坑,定义了一个错误的command,导致pod容器没有启动进程。

当时的错误写法见下:
在这里插入图片描述

四、总结

至此,开源项目ChatGPT-Next-Web的容器化部署至k8s就梳理完毕了。

作为一个nodejs后端程序,它不同于h5静态页面,类似于java程序,但又没有java复杂。

另外,每个Nodejs程序的Dockerfile可能都不一样,但是java程序就又相对一致了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/283350.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue+Mysql的“智慧食堂”设计与实现

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Vue响应式原理全解析

前言 大家好,我是程序员蒿里行。浅浅记录一下面试中的高频问题,请你谈一下Vue响应式原理。 必备前置知识,​​Vue2​​官方文档中​​深入响应式原理​​​及​​Vue3​​官方文档中​​深入响应式系统​​。 什么是响应式 响应式本质是当…

Redis 不再“开源”,对中国的影响及应对方案

Redis 不再“开源”,使用双许可证 3 月 20 号,Redis 的 CEO Rowan Trollope 在官网上宣布了《Redis 采用双源许可证》的消息。他表示,今后 Redis 的所有新版本都将使用开源代码可用的许可证,不再使用 BSD 协议,而是采用…

基于SpringBoot实现WebSocket实时通讯的服务端和客户端

实现功能 服务端注册的客户端的列表;服务端向客户端发送广播消息;服务端向指定客户端发送消息;服务端向多个客户端发送消息;客户端给服务端发送消息; 效果: 环境 jdk:1.8 SpringBoot&#x…

如何确保多人游戏的配对体验快速而顺利

开发人员知道,游戏玩家在玩游戏时最快乐,他们等待进入多人游戏的时间越长,你失去他们的速度就越快。玩家不喜欢在大厅里等待;他们想马上参与行动。这就是为什么优化匹配是关键。 谷歌(Google)和Unity的Open Match等系统正在加速使用自定义逻辑构建匹配器的能力,使开发人…

跳过mysql权限验证来修改密码-GPT纯享版

建议重新配置一遍,弄成功好多次了,每次都出bug,又要重新弄,不是过期就是又登不进去了,我服了 电脑配置MySQL环境(详细)这个哥们的10min配完,轻轻松松, 旧方法&#xff…

Python-VBA编程500例-015-03(入门级)

飞行棋(Flying Chess)算法是一种搜索算法,主要用于解决图搜索和路径规划问题。它的主要特点是可以“飞跃”到棋盘上任何位置,从而大大减少了搜索的时间和空间复杂度。以下是一些飞行棋算法的实际应用场景: 1、路径规划:在机器人领…

利用Scala与Apache HttpClient实现网络音频流的抓取

概述 在当今数字化时代,网络数据的抓取和处理已成为许多应用程序和服务的重要组成部分。本文将介绍如何利用Scala编程语言结合Apache HttpClient工具库实现网络音频流的抓取。通过本文,读者将学习如何利用强大的Scala语言和Apache HttpClient库来抓取网…

1.6 学Python能干什么,Python的应用领域有哪些

Python能干什么,Python的应用领域 Python 作为一种功能强大的编程语言,因其简单易学而受到很多开发者的青睐。那么,Python 的应用领域有哪些呢? Python 有着非广泛的应用,几乎所有大中型互联网公司都在使用 Python&a…

java数据结构与算法刷题-----LeetCode215. 数组中的第K个最大元素

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 解题思路:时间复杂度O( n n n),空间复杂度…

SQL Server 2008R2 日志文件大小设置及查询

SQL Server 2008R2 建立数据库存在日志无限增长问题,造成磁盘内存不足。本文解决这个问题,如下: 1.设置日志文件的最大大小 USE master; GO ALTER DATABASE [D_total] MODIFY FILE (NAME D_total_log, -- 日志文件的逻辑名称MAXSIZE 200…

精准防灾新篇章:GIS与Python机器学习技术在地质灾害风险评价与信息化建库中的前沿应用

结合项目实践案例和科研论文成果进行讲解。入门篇,ArcGIS软件的快速入门与GIS数据源的获取与理解;方法篇,致灾因子提取方法、灾害危险性因子分析指标体系的建立方法和灾害危险性评价模型构建方法;拓展篇,GIS在灾害重建…

idea 开发serlvet篮球秩序册管理系统idea开发mysql数据库web结构计算机java编程layUI框架开发

一、源码特点 idea开发 java servlet 篮球秩序册管理系统是一套完善的web设计系统mysql数据库 系统采用serlvetdaobean mvc 模式开发,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 servlet 篮…

机器学习-06-无监督算法-01-划分聚类Kmeans算法

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中无监督算法,包括划分聚类等。 参考 数据分析实战 | K-means算法——蛋白质消费特征分析 欧洲48国英文名称的来龙去脉及其国旗动画 Kmeans在线动态演示 本门课程的目标 完成一个特定行业的…

java算法第32天 | ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机II 本题中理解利润拆分是关键点! 不要整块的去看,而是把整体利润拆为每天的利润。假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。 相当于(prices[3] - prices[2]) (prices[…

Panasonic松下PLC如何数据采集?如何实现快速接入IIOT云平台?

在工业自动化领域,数据采集与远程控制是提升生产效率、优化资源配置的关键环节。对于使用Panasonic松下PLC的用户来说,如何实现高效、稳定的数据采集,并快速接入IIOT云平台,是摆在他们面前的重要课题。HiWoo Box工业物联网关以其强…

练习 12 Web [极客大挑战 2019]BabySQL

本题复习:1.常规的万能语句SQL查询,union联合查询,Extractvalue()报错注入 extractvalue(1,concat(‘0x7e’,select(database())))%23 我一开始挨着试,感觉都无效 直到报错注入,查到了库名‘geek’ 尝试查表名&…

【赠书第21期】游戏力:竞技游戏设计实战教程

文章目录 前言 1 竞技游戏设计的核心要素 1.1 游戏机制 1.2 角色与技能 1.3 地图与环境 2 竞技游戏设计的策略与方法 2.1 以玩家为中心 2.2 不断迭代与优化 2.3 营造竞技氛围与社区文化 3 实战案例分析 4 结语 5 推荐图书 6 粉丝福利 前言 在数字化时代的浪潮中&…

Linux文件 profile、bashrc、bash_profile区别

Linux系统中,有三种文件 出现的非常频繁,那就是 profile、bash_profile、bashrc 文件。 1、profile 作用 profile,路径:/etc/profile,用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户…

O2OA红头文件流转与O2OA版式公文编辑器基本使用

O2OA开发平台在流程管理中,提供了符合国家党政机关公文格式标准(GB/T 9704—2012)的公文编辑组件,可以让用户在包含公文管理的项目实施过程中,轻松地实现标准化公文格式的在线编辑、痕迹保留、手写签批等功能。并且可以…