kubernetes 允许特权本地测试集群

kubernetes allow privileged local testing cluster

我正忙于使用 https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/docker.md

在本地电脑上测试 kubernetes

它启动了一个 docker 化的单节点 k8s 集群。我需要 运行 k8s 中的特权容器(它 运行s docker 以便从 docker 文件构建图像)。到目前为止,我所做的是将安全上下文 privileged=true 添加到 pod 配置中,在尝试创建 pod 时禁止 returns。我知道您必须使用 --allow-privileged=true 在节点上启用特权并且我通过将参数 arg 添加到第二步(运行 主节点和工作节点)来完成此操作,但它仍然 returns 创建 pod 时禁止。

有人知道如何在这个 docker 化的 k8s 中启用特权进行测试吗?

以下是我 运行 k8s 大师的做法:

docker run --privileged --net=host -d -v /var/run/docker.sock:/var/run/docker.sock  gcr.io/google_containers/hyperkube:v1.0.1 /hyperkube kubelet --api-servers=http://localhost:8080 --v=2 --address=0.0.0.0 --allow-privileged=true --enable-server --hostname-override=127.0.0.1 --config=/etc/kubernetes/manifests

更新:从 Kubernetes 1.1 版本开始,特权模式现在默认启用(在 apiserver 和 kubelet 中)。


要启用特权容器,您需要在启动时将 --allow-privileged 标志传递给 Kubernetes apiserver ,此外 还会传递给 Kubelet。您用于在单节点 docker 示例中启动 Kubernetes apiserver 的清单文件被捆绑到图像中(来自 master.json),但您可以制作该文件的本地副本,添加 --allow-privileged=true 标志到 apiserver 命令行,然后将您在第二步中传递给 Kubelet 的 --config 标志更改为包含您修改的文件的目录。