在 kubernetes 上为 kubelets/Perf Setup 启用 PodSharingNamespace
enabling PodSharingNamespace for kubelets / Perf Setup on kubernetes
我正在学习一个教程
Ensure you are using Kubernetes 1.10+ and the following settings are enabled:
Feature-gate PodShareProcessNamespace=true is turned on for both apiserver and kubelet
我在网上搜索过,但找不到任何方法来为 kubelet 打开功能门控。一些站点建议编辑 /etc/kuberenetes/kubelet.env,但我的集群上似乎没有该文件。
那么为 kubelet 启用功能门的正确方法是什么?
编辑:(根据评论添加更多详细信息)
我的目标是 运行 通过 sidecar 注入在集群上运行。同样,我需要启用 kubelet 和 kube-apiserver 功能门“PodShareProcessNamespace=true”。 This 是我试过的教程
我正在开发一个非托管的 digitalocean 3 worker - 1 master 集群。
我以前从未在 minikube 之外使用过 kuberenetes,所以我可能会问一个非常愚蠢或明显的问题。此外,我不太清楚 feature-gate
到底是什么,所以这可能是我的问题没有多大意义的原因
我在其他地方找到了答案,但我会 post 在这里,这样其他有类似问题的人可能会觉得它有用。
除非您想在 运行ning 集群中启用 feature-gates 而不重新启动,否则不需要所有这些复杂的操作。您只需编辑 yaml 文件并重新部署 pod。
在要使用 perf 分析的 pod 的 yaml 文件中,您需要在 container
部分下添加 ShareProcessNamespace: true
。对于需要特权系统调用的 pods 之类的 perf,您还需要设置 privileged: true
。这是一个用于分析 pod
的示例 yaml
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
shareProcessNamespace: true
containers:
- name: mongo
image: mongo
- name: perf
image: <some dockerhubrepo>/perf
securityContext:
privileged: true
capabilities:
add:
- SYS_PTRACE
tty: true
stdin: true
请注意,我使用的 perf repo 只是一个安装了 perf 的简单 pod,它有一个 python 带有无限睡眠循环的脚本 运行ning 只是为了防止它被终止。要进行个人资料,您可以
- 在python(或shell)文件中写入perf命令并使其运行性能并连续将数据写入perf.data文件
或
- exec 进入容器并 运行 perf 命令,如果你意识到 运行从所有 perf.data 中退出磁盘 space,这会更好]
我正在学习一个教程
Ensure you are using Kubernetes 1.10+ and the following settings are enabled: Feature-gate PodShareProcessNamespace=true is turned on for both apiserver and kubelet
我在网上搜索过,但找不到任何方法来为 kubelet 打开功能门控。一些站点建议编辑 /etc/kuberenetes/kubelet.env,但我的集群上似乎没有该文件。
那么为 kubelet 启用功能门的正确方法是什么?
编辑:(根据评论添加更多详细信息)
我的目标是 运行 通过 sidecar 注入在集群上运行。同样,我需要启用 kubelet 和 kube-apiserver 功能门“PodShareProcessNamespace=true”。 This 是我试过的教程
我正在开发一个非托管的 digitalocean 3 worker - 1 master 集群。
我以前从未在 minikube 之外使用过 kuberenetes,所以我可能会问一个非常愚蠢或明显的问题。此外,我不太清楚 feature-gate
到底是什么,所以这可能是我的问题没有多大意义的原因
我在其他地方找到了答案,但我会 post 在这里,这样其他有类似问题的人可能会觉得它有用。
除非您想在 运行ning 集群中启用 feature-gates 而不重新启动,否则不需要所有这些复杂的操作。您只需编辑 yaml 文件并重新部署 pod。
在要使用 perf 分析的 pod 的 yaml 文件中,您需要在 container
部分下添加 ShareProcessNamespace: true
。对于需要特权系统调用的 pods 之类的 perf,您还需要设置 privileged: true
。这是一个用于分析 pod
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
shareProcessNamespace: true
containers:
- name: mongo
image: mongo
- name: perf
image: <some dockerhubrepo>/perf
securityContext:
privileged: true
capabilities:
add:
- SYS_PTRACE
tty: true
stdin: true
请注意,我使用的 perf repo 只是一个安装了 perf 的简单 pod,它有一个 python 带有无限睡眠循环的脚本 运行ning 只是为了防止它被终止。要进行个人资料,您可以
- 在python(或shell)文件中写入perf命令并使其运行性能并连续将数据写入perf.data文件
或
- exec 进入容器并 运行 perf 命令,如果你意识到 运行从所有 perf.data 中退出磁盘 space,这会更好]