2016-01-13 59 views
1

(我看了一些其他线程,但显然现在已经在最新的代码支持的特权模式,所以如果我打了一个错误我想知道。)Kubernetes:在Linux的搬运工,多节点集群特权容器

我有两台物理服务器:两台都运行Linux(ubuntu),并且昨天有来自github的最新kubernetes代码。

我正在运行docs/getting-started-guides/docker-multinode/master.sh(& worker.sh)。

在主节点:

$ kubectl create -f examples/nfs/nfs-server-rc.yaml 
The ReplicationController "nfs-server" is invalid. 
spec.template.spec.containers[0].securityContext.privileged: forbidden '<*>(0xc208389770)true' 

问:是否支持?或者我做错了什么。或者这是一个错误,请吗?

master.sh代码已经有选项--allow-privileged=true提供。

设置了以下这些选项,但没有很好的信念,只是因为我在其他地方看到了一些设置它们的讨论。

/etc/default/kubelet: 
    `KUBELET_OPTS="--allow_privileged=true"` 

/etc/default/kube-apiserver: 
    `KUBE_APISERVER_OPTS="--allow_privileged=true"` 

主设备配置:

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"2+", GitVersion:"v1.2.0-alpha.5.833+2e5da8b881e2f5", GitCommit:"2e5da8b881e2f5b6dfb66653acf4aaa1ca1f398e", GitTreeState:"clean"} 
Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3", GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2", GitTreeState:"clean"} 

$ docker version 
Client: 
Version:  1.9.1 
API version: 1.21 
Go version: go1.4.2 
Git commit: a34a1d5 
Built:  Fri Nov 20 13:12:04 UTC 2015 
OS/Arch:  linux/amd64 
Server: 
Version:  1.9.1 
API version: 1.21 
Go version: go1.4.2 
Git commit: a34a1d5 
Built:  Fri Nov 20 13:12:04 UTC 2015 
OS/Arch:  linux/amd64 

回答

0

您需要设置--allow-privileged=true两个kubeletkube-apiserver。它看起来像master.sh只设置在kubelet。你可以修改文件./cluster/images/hyperkube/master-multi.json,为apiserver设置--allow-privileged=true(应该在第21行到第30行)并重建hyperkube图像。

+0

不幸的是,没有帮助:更改多桅杆er.json。 有趣的是,我运行了hack/local-up-cluster.sh,而不是运行多节点linux示例,而是独立安装。 错误稍有不同: '/ usr/src/kubernetes/examples/nfs#kubectl create -f nfs-server-rc.yaml ReplicationController“nfs-server”无效。 spec.template.spec.containers [0] .securityContext.privileged:禁止:由策略禁止.' – lakhindr

+0

启动本地群集时运行'ALLOW_PRIVILEGED = true hack/local-up-cluster.sh'。 – janetkuo

+0

与原始问题没有运气。但是,感谢你,第二个例子,即独立设置工作。 – lakhindr

3

从kubernetes v1.1开始,pod中的任何容器都可以使用容器规范的SecurityContext上的特权标志启用特权模式。

要启用特权模式窝privileged:truesecurityContext decleration容器规范的:

"securityContext": { 
    "privileged": true 

正如珍妮所说的设置--allow-privileged=true两个kubelet和KUBE-API服务器并重启:

sudo /etc/init.d/kubelet restart 
sudo /etc/init.d/kube-apiserver restart 

和验证标志更改为ps -ef | grep kube

相关问题