首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pod向Strimzi发布KafkaJ消息时总是崩溃

Pod向Strimzi发布KafkaJ消息时总是崩溃
EN

Stack Overflow用户
提问于 2021-12-03 18:20:40
回答 2查看 74关注 0票数 0

这是我的基于KafkaJs的publisher客户端。我创建了一个容器镜像,并向Pod代理提交了Strimzi YAML。

代码语言:javascript
复制
const { Kafka } = require('kafkajs')

async function clients() {
const kafka = new Kafka({
  clientId: 'my-app',
  brokers: ['test-kafka-bootstrap.strimzi.svc.cluster.local:9092']
})

const producer = kafka.producer()

await producer.connect()
await producer.send({
  topic: 'clients',
  messages: [
    { value: 'Hello KafkaJS user!' },
  ],
})

await producer.disconnect()
}

clients()

我的Dockerfile

代码语言:javascript
复制
FROM node:14 as build_app

WORKDIR /

WORKDIR /app
COPY app .
COPY package.json .
COPY package-lock.json .
RUN npm i
CMD ["node", "index.js"]

我的pod YAML。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: clients
spec:
  containers:
  - name: clients
    image: ghcr.io/org/clients:v0.0.0
    imagePullPolicy: Always

Pod一直在崩溃,kubectl logs没有显示任何东西--它是空的。kubectl describe也没有透露任何信息。

我遗漏了什么?

EN

回答 2

Stack Overflow用户

发布于 2021-12-03 19:25:23

日志不显示任何内容,因为1)您的代码没有日志输出2)您的代码只发送一条记录,然后停止,因此容器干净地退出;它不是一个长时间运行的服务。使用简单的docker run命令也会遇到同样的问题。

如果你想要一个长时间运行的服务,你需要将你的代码包装在一个k8s服务中(NextJS、Express、Hapi等),然后为web服务添加一个健康检查探针。

票数 1
EN

Stack Overflow用户

发布于 2021-12-03 21:34:53

您可以在睡眠模式下启动pod,并在那里进行调试,使用下面的yaml

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: clients
spec:
  containers:
  - name: clients
    image: ghcr.io/org/clients:v0.0.0
    imagePullPolicy: Always
    command: ["sleep" , "100000000"]

现在执行到pod中

代码语言:javascript
复制
kubectl exec -it <pod> -- bash

现在执行

代码语言:javascript
复制
node index.js
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70219024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档