部署带有socket的nodejs应用于GKE中,自动在30秒内重启的问题
创始人
2025-01-07 08:00:20
0

解决方案:

  1. 使用Kubernetes Deployment对象 Kubernetes Deployment对象负责创建和管理Pods,也可以协助重启Pods,可使用以下代码部署:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nodejs-app
  labels:
    app: nodejs
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nodejs
  template:
    metadata:
      labels:
        app: nodejs
    spec:
      containers:
      - name: nodejs
        image: gcr.io/[PROJECT-ID]/nodejs-app:latest
        imagePullPolicy: Always
        ports:
        - containerPort: 3000
        livenessProbe:
          tcpSocket:
            port: 3000
          initialDelaySeconds: 30
          periodSeconds: 10
          timeoutSeconds: 5
          successThreshold: 1
          failureThreshold: 3
  1. Node.js代码自带重启逻辑 在Node.js应用中,代码自带重启逻辑。当文件或代码发生更改时,程序会检测文件系统或代码修改,并自动重启程序。使用以下代码实现:
const http = require('http');
const server = http.createServer((req, res) => {
  res.end('Hello World!\n');
});
server.listen(3000, () => {
  console.log('Node.js server running on port 3000!');
});

// Reload app on changes
function watchChanges() {
  const watcher = require('chokidar').watch('./', {
    ignored: /node_modules/,
    persistent: true,
  });
  watcher
    .on('add', () => {
      console.log('File has been added!');
      reloadApp();
    })
    .on('change', () => {
      console.log('File has been changed!');
      reloadApp();
    })
    .on('unlink', () => {
      console.log('File has been removed!');
      reloadApp();
    });
}

// Reload app
function reloadApp() {
  Object.keys(require.cache).forEach((id) => {
    if (/[\/\\]app.js/.test(id)) {
      console.log('Clearing module cache');
      delete require.cache[id];
    }
  });
  console.log('Reloading application');
  require('./app.js');
}

watchChanges();
  1. 使用PM2进程管理器 PM2是一个流行的Node.js进程管理器,它可以创建、监视和自动重启Node.js应用程序。即使应用程序崩溃或闪退,PM2也可以重新启动应用程序。使用以下代码使用PM2管理Node.js应用程序:
npm install -g pm2
pm2 start app.js --name nodejs-app

以上三种方法都可以解决在GKE中自动重启Node.js应用程序的问题。

相关内容

热门资讯

透视辅助!hhpoker透视脚... 透视辅助!hhpoker透视脚本视频,hhpoker德州挂真的有吗,wpk教程(有挂细节)1、透视辅...
透视模拟器!wpk有作弊吗,w... 透视模拟器!wpk有作弊吗,wpk俱乐部是真的吗,wpk教程(有挂解密);1、游戏颠覆性的策略玩法,...
透视线上!HH平台挂,hhpo... 透视线上!HH平台挂,hhpoker真的有透视吗,揭秘教程(有挂插件)进入游戏-大厅左侧-新手福利-...
透视辅助!wpk作弊是真的吗,... 透视辅助!wpk作弊是真的吗,wpk是真的还是假的,德州论坛(有挂细节)一、wpk是真的还是假的软件...
透视辅助!如何判断wpk辅助软... 透视辅助!如何判断wpk辅助软件的真假,wpk辅助购买,必备教程(有挂辅助);1、玩家可以在如何判断...
透视智能ai!hhpoker开... 透视智能ai!hhpoker开挂教程,hhpoker脚本下载,黑科技教程(有挂教程)1、玩家可以在h...
透视ai!wpk辅助插件,购买... 透视ai!wpk辅助插件,购买的wpk辅助在哪里下载,wpk教程(有挂黑科技)1、购买的wpk辅助在...
透视规律!wpk作弊,wpk作... 透视规律!wpk作弊,wpk作弊,爆料教程(有挂解说);1、wpk作弊系统规律教程、wpk作弊辅助透...
透视透视!wpk私人局辅助是真... 透视透视!wpk私人局辅助是真的吗,wpk德州局透视,可靠教程(有挂详情);小薇(透视辅助)致您一封...
透视真的!wpk私人局有透视吗... 透视真的!wpk私人局有透视吗,wpk系统是否存在作弊行为,安装教程(有挂插件)1、wpk系统是否存...