【问题标题】:How to keep docker pod without entrypoint running in K8S?如何在 K8S 中保持没有入口点的 docker pod 运行?
【发布时间】:2019-12-19 16:00:36
【问题描述】:

我有以下 dockerfile:

FROM node:8 as build
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json
RUN npm install
COPY . /usr/src/app

发布到我们的工件。但是,由于没有提供命令/入口点,docker 将立即结束。所以我通常使用docker run -d -t 来运行它。但是,在 kubernetes 中部署它时,我无法指定 args -d 和 -t,因为我会收到节点不知道参数 -d 和 -t 的错误。

添加以下入口点时,

ENTRYPOINT [ "tail", "-f", "/dev/null"]

机器一直在崩溃

如何让 pod 在后台运行?

【问题讨论】:

  • 如何在 k8s 上运行 docker 镜像。你在使用 kubectl 运行命令吗?
  • 通过yaml文件和kubectl apply部署
  • 为什么要让它运行?它应该怎么做?
  • 它是一个量角器测试机器,一旦测试环境启动,它就会将量角器作为kubernetes作业启动

标签: docker kubernetes


【解决方案1】:

利用kubectl run 命令的-i--tty 选项。

kubectl run -i --tty --image=<image> <name> --port=80 --env="DOMAIN=cluster"

更多信息here

更新:

如果是 yaml 文件,请使用 stdintty 选项。

apiVersion: v1 
kind: Pod 
metadata: 
  name: testpod
spec: 
  containers: 
    - name: testpod
      image: testimage
      stdin: true
      tty: true

更多信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-20
    • 2018-12-30
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 2019-08-22
    • 2020-01-16
    • 1970-01-01
    相关资源
    最近更新 更多