首页 > 解决方案 > Kubernetes 将 pod 修改复制到其他 pod

问题描述

我有一个带有 3 个节点的 k8s 集群。使用 kubectl 命令,我进入一个 pod shell 并进行一些文件编辑:

kubectl exec --stdin --tty <pod-name> -- /bin/bash

在这一点上,我有一个正确编辑的 pod 和其他 2 个带有旧文件的副本。我的问题是:有一个 kubectl 推荐,从特定的 pod 开始,覆盖集群中的当前副本以创建 n 等于 pod?

希望清楚

非常感谢曼努埃尔

标签: kubernetesgoogle-kubernetes-enginekubectl

解决方案


您可以使用名为kubectl-tmux-exec的 kubectl 插件。
关于如何安装和使用这个插件的所有信息都可以在 GitHub 上找到:predictiveray/kubectl-tmux-exec

如何安装依赖项文档中所述。

该插件需要以下程序:

  • gnu-getopt(1)
  • tmux(1)

我创建了一个简单的示例来说明它是如何工作的。

假设我有一个web Deployment并且想要sample-file在所有 (3) 个副本中创建一个文件。

$ kubectl get deployment,pods --show-labels
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE   LABELS
deployment.apps/web   3/3     3            3           19m   app=web

NAME                      READY   STATUS    RESTARTS   AGE   LABELS
pod/web-96d5df5c8-5gn8x   1/1     Running   0          19m   app=web,pod-template-hash=96d5df5c8
pod/web-96d5df5c8-95r4c   1/1     Running   0          19m   app=web,pod-template-hash=96d5df5c8
pod/web-96d5df5c8-wc9k5   1/1     Running   0          19m   app=web,pod-template-hash=96d5df5c8

我已经kubectl-tmux_exec安装了插件,所以我可以使用它:

$ kubectl plugin list
The following compatible plugins are available:

/usr/local/bin/kubectl-tmux_exec


$ kubectl tmux-exec -l app=web bash

运行上述命令后,会打开 Tmux,我们可以同时修改多个 Pod:

在此处输入图像描述


推荐阅读