【问题标题】:How do I connect and manage Kubernetes cluster from POD using nsenter utility如何使用 nsenter 实用程序从 POD 连接和管理 Kubernetes 集群
【发布时间】:2021-12-28 02:18:15
【问题描述】:

我正在使用多节点 Kubernetes 集群。我正在使用以下 YAML 来连接和管理主机。

apiVersion: v1
kind: Pod
metadata:
  name: my-nsenter-test
spec:
  hostPID: true
  hostNetwork: true
  hostIPC: true
  containers:
    - name: my-nsenter-test
      image: ubuntu:18.04
      command: ["tail"]
      args: ["-f", "/dev/null"]
      securityContext:
        privileged: true

但我想使用单个 POD 连接和管理多节点集群(集群中的任何其他节点)。

【问题讨论】:

  • 请提供有关您当前设置的更多信息 - 您正在使用哪个 Kubernetes 版本,您使用哪种解决方案来设置集群(kubeadm 或某些云提供商解决方案等)。 “管理多节点集群”是什么意思——你想与 Kubernetes API 通信吗?
  • @MikolajS。我正在使用 3 节点集群。我正在将 microk8s 用于 kubernetes 集群。管理多节点集群意味着,我需要从 POD 连接所有 3 个节点并运行命令。
  • 感谢您提供的所有信息。请提供您使用的 Kubernetes 版本的信息。 “我需要从 POD 连接所有 3 个节点并运行命令”是什么意思 - 你能澄清一下吗?您想连接到 Kubernetes API 并从 pod 运行 kubectl 命令,或者只是从单个 pod 到所有节点的 SSH?
  • 我使用的是microk8s版本v1.19.15-34+c064bb32deff78。 “我需要从 POD 连接所有 3 个节点并运行命令”意味着我需要连接任何节点并在主机中运行升级安全补丁、修改主机文件、安装软件包等命令。
  • 感谢您提供有关版本的信息。目前还不清楚你想要实现什么 - 让我解释一下我现在是如何理解的 - 你想使用 kubectl exec 命令连接到 pod shell 并从 pod 连接到节点 shell - 例如使用 @ 987654324@ 命令?您在问题标题中提到的 nsenter 实用程序有什么意义?

标签: docker ubuntu kubernetes nsenter


【解决方案1】:

简短回答:您可以使用 nsenter 实用程序从 pod 连接到唯一的一个节点 - pod 所在的节点,但最好不要这样做,因为部署具有广泛权限的 pod 是违反最佳安全实践。

您无法连接到其他节点,因为 pod 仅托管在一个节点上。设置 host... 字段意味着它们只是 sharing resources with the host - one host node 并且根本不可能使用 nsenter 实用程序来实现。

此图很好地表示了与 pod 和节点相关的 Kuberentes 架构:


要连接到主机节点,只需运行以下命令:

kubectl exec -it my-nsenter-test -- nsenter --target 1 --mount --uts --ipc --net /bin/bash

避免使用特权策略和托管公共资源与主机

通常,这种管理主机的方法违反最佳安全实践。

强烈不建议授予 pod 范围的权限,这会导致许多安全问题,usually it's granting broader permissions that intended

事实证明,将 PSP 应用于 Pod 的方式让几乎所有尝试使用它们的人都感到困惑。很容易意外授予比预期更广泛的权限,并且很难检查在给定情况下应用了哪些 PSP。

还可以查看这篇文章 - Securing a Cluster

【讨论】:

  • 你好@AshokKumar。这是answer your question吗?
  • @AshokKumar 这里有任何更新,这能回答你的问题吗?请更新状态?
猜你喜欢
  • 2018-07-12
  • 2021-12-21
  • 2020-06-10
  • 2020-10-15
  • 2019-02-02
  • 2015-10-24
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多