装饰公司网站php源码,深圳网站seo设计,施工企业领导带班记录,服务器租用服务一、说在前面的话
有了docker镜像#xff0c;要把一个项目部署到K8S里#xff0c;主要就是编写deployment.yaml。
你需要考虑的是#xff1a;
环境变量服务的健康检测持久化启动命令程序使用的数据源程序使用的配置文件
因为本前端项目比较简单#xff0c;这里只做一个…一、说在前面的话
有了docker镜像要把一个项目部署到K8S里主要就是编写deployment.yaml。
你需要考虑的是
环境变量服务的健康检测持久化启动命令程序使用的数据源程序使用的配置文件
因为本前端项目比较简单这里只做一个简单示例。
二、deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: 2labels: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程序就又相对一致了。