Kubernetes:如何更新实时Busybox容器的``命令''

混杂代码

我有以下清单创建了名为“ test”的正在运行的吊舱

apiVersion: v1
kind: Pod
metadata:
  name: hello-world
  labels:
    app: blue
spec:
  containers:
  - name: funskies
    image: busybox
    command: ["/bin/sh", "-c", "echo 'Hello World'"]

我想更新Pod以包含其他命令

apiVersion: v1
kind: Pod
metadata:
  name: hello-world
  labels:
    app: blue
spec:
  containers:
  restartPolicy: Never
  - name: funskies
    image: busybox
    command: ["/bin/sh", "-c", "echo 'Hello World' > /home/my_user/logging.txt"]

我尝试了什么

kubectl edit pod test

结果是什么

# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
# pods "test" was not valid:
# * spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`...

我尝试过的其他方法:

更新了清单,然后运行应用-相同的问题

kubectl apply -f test.yaml 

问题:更新正在运行的Pod的正确方法是什么?

大卫·迷兹

您不能修改Pod的大多数属性。通常,您不想直接创建Pod。使用更高级别的控制器(例如“部署”)。

有关PodSpec注释Kubernetes文档(重点是我的):

containers:属于该容器的容器列表。当前无法添加或删除容器。豆荚中必须至少有一个容器。无法更新。

在所有情况下,无论如何,容器都会运行一个命令,如果要更改该命令,则需要删除并重新创建容器。在Kubernetes中,这始终意味着删除并重新创建包含的Pod。通常,您不应该使用裸Pod,但是如果您使用裸Pod,则可以使用新命令创建一个新Pod,然后删除旧Pod。删除Pod是非常常规的操作,并且各种普通的事情都会导致它发生(更新Deployment,缩小Horizo​​ntalPodAutoscaler等)。

如果您有一个Deployment而不是一个裸Pod,则可template:以为它创建的Pod自由更改这包括更改其command:这将导致Deployment使用新命令创建一个新的Pod,并在其运行后删除旧的Pod。

您在问题中显示的那种非常短暂的单命令容器不一定适合在Kubernetes中运行。如果Pod不能保持运行并处理请求,那么Job可能是更好的选择;但是Job认为它只会运行一次,如果您更改已完成Job的pod规格,我认为它不会启动新的Pod。您需要为此案例创建一个新的Job。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Kubernetes:如何更新实时Busybox容器的``命令''

来自分类Dev

实时更新电报Bot命令

来自分类Dev

容器Kubernetes中的命令限制

来自分类Dev

使用特定命令启动kubernetes容器

来自分类Dev

如何通过命令行将参数传递给Kubernetes或OpenShift中的Docker容器?

来自分类Dev

如何在 kubernetes 的部署文件中将命令和参数传递给容器

来自分类Dev

如何实时更新标记位置

来自分类Dev

如何更新实时NSSlider值?

来自分类Dev

如何实时更新NetworkX图?

来自分类Dev

Facebook实时更新如何工作

来自分类Dev

使用Kubernetes部署/更新容器的最佳实践?

来自分类Dev

如何更改墙纸实时注册命令?

来自分类Dev

如何检查busybox版本(从busybox)?

来自分类Dev

如何检查busybox版本(从busybox)?

来自分类Dev

Kubernetes-将多个命令传递给容器

来自分类Dev

在 Kubernetes 中使用不同的命令运行 docker 容器

来自分类Dev

如何使用SwingWorker实时更新GUI?

来自分类Dev

如何实时更新Firebase数据库?

来自分类Dev

如何禁用实时更新的刷新标题?

来自分类Dev

如何实时更新PyQt5标签?

来自分类Dev

如何实时更新tkinter标签文本

来自分类Dev

如何使用Firestore进行实时位置更新?

来自分类Dev

如何使用for循环的实时结果更新GUI?

来自分类Dev

如何实时更新Firebase数据库?

来自分类Dev

如何拥有实时更新的剑道网格?

来自分类Dev

单击时如何实时更新我的组件?

来自分类Dev

我如何使用 Matplotlib 更新实时绘图

来自分类Dev

如何更新OptionMenu的命令

来自分类Dev

如何设置Kubernetes启动的容器的工作目录