-3

我正在使用多节点 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 连接和管理多节点集群(集群中的任何其他节点)。

4

1 回答 1

1

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

您无法连接到其他节点,因为 pod 仅托管在一个节点上。设置 host...字段意味着它们只与主机共享资源 -一个主机节点,使用 nsenter 实用程序根本不可能实现它。

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


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

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

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

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

强烈不建议授予 pod 范围的权限,这会导致许多安全问题,通常它会授予更广泛的权限

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

另请查看这篇文章 -保护集群

于 2021-11-25T13:02:40.060 回答