我正忙着使用https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/docker.md在我的本地电脑上测试kubernetes
启动dockerized单节点k8s
群集。我需要在k8s中运行一个特权容器(它运行docker以便从dockerfiles构建映像)。到目前为止我所做的是向pod配置添加安全上下文privileged=true
,该配置在尝试创建pod时返回禁止。我知道你必须在节点上使用--allow-privileged=true
启用特权,并且我已经通过将参数arg添加到第二步(运行主节点和工作节点)来完成此操作但是在创建pod时它仍然会被禁止返回。
任何人都知道如何在此dockerized 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
答案 0 :(得分:2)
更新:默认情况下启用特权模式(在apiserver和kubelet中),从Kubernetes的1.1版本开始。
要启用特权容器,您需要在启动时将--allow-privileged
标志另外传递给Kubernetes apiserver 到Kubelet。用于在单节点docker示例中启动Kubernetes apiserver的清单文件捆绑到映像中(来自master.json),但您可以创建该文件的本地副本,添加--allow-privileged=true
标志到apiserver命令行,然后将传递给第二步中的Kubelet的--config
标志更改为包含已修改文件的目录。