2016-01-13 56 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

相關問題