【问题标题】:How to reset K3s cluster pods如何重置 K3s 集群 Pod
【发布时间】:2021-10-12 22:31:25
【问题描述】:

我有一个带有以下 pod 的 k3s 集群:

kube-system   pod/calico-node-xxxx                          
kube-system   pod/calico-kube-controllers-xxxxxx   
kube-system   pod/metrics-server-xxxxx
kube-system   pod/local-path-provisioner-xxxxx
kube-system   pod/coredns-xxxxx

如何使用命令(可能是kubectl)或任何脚本重置(停止并重新启动 pod)?

【问题讨论】:

  • 你为什么要这么做?
  • 获取 pod 的启动/基本配置,如 coredns、metric-server 等。我想简单地重置集群,这意味着一次性停止和启动容器。有什么命令可以做到吗?
  • 不是真的,你需要写一个脚本。
  • 对于任何这些 pod,您只需 kubectl delete 它们,它们将自动重新启动(我认为它们都由部署资源管理)。您可以在单个命令管道中执行此操作,例如 kubectl get pods | ...filter to get just the name you want... | xargs kubectl delete pod
  • 要添加到 @larsks 评论 - 您可以使用 kubectl get pods -o=jsonpath='{.items[*].metadata.name}' 获取 pod 的名称

标签: kubernetes kubernetes-pod k3s kubernetes-cluster kubernetes-container


【解决方案1】:

要重置 pod,您只需将其删除即可。如果它是由部署管理的(您问题中的 pod 应该是),它们应该被自动重新创建。

kubectl delete pod <pod-name> <pod2-name> ... -n <namespace>

如果你要重置的 pod 有共同的标签,你可以用--selector 标志过滤它们

kubectl delete pods --selector=<label-name>=<label-value> -n <namespace>

但是,如果您以某种方式更改了部署,则需要应用未修改的清单。

kubectl apply -f <yaml-file>

【讨论】:

  • @p10I-:: 我不想手动编写每个 podname。对于重新启动,我正在寻找一个命令或脚本。可以停止和重新启动所有 pod
  • 我更新了我的答案。除了编写自定义脚本之外,我认为没有其他方法可以做到这一点。
猜你喜欢
  • 2020-08-19
  • 1970-01-01
  • 2021-03-02
  • 2021-08-30
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
  • 2019-02-24
  • 2020-12-10
相关资源
最近更新 更多