2017-02-27 87 views
0

我已經更新了我的本地kubernetesmaster(2016年12月),以v1.5.3
我以前hack/local-up-cluster.sh開始我的本地集羣:Kubernetes:./hack/local-up-cluster.sh需要驗證

sudo KUBE_ENABLE_CLUSTER_DNS=true \ 
    SERVICE_CLUSTER_IP_RANGE="10.100.0.0/16" \ 
    API_HOST_IP=0.0.0.0 \ 
    hack/local-up-cluster.sh 

更新後我有這樣的錯誤:

Creating kube-system namespace 
Cluster "local" set. 
Context "local" set. 
Switched to context "local". 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
Error from server (AlreadyExists): error when creating "namespace.yaml": namespaces "kube-system" already exists 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
deployment "kube-dns" created 
Please enter Username: 

我怎樣才能解決呢?

完整的日誌:

0.0 hack/local-up-cluster.sh 
[sudo] password for dmitry: 
make: Entering directory '/opt/kubernetes' 
make[1]: Entering directory '/opt/kubernetes' 
can't load package: package .: no buildable Go source files in /opt/kubernetes 
can't load package: package .: no buildable Go source files in /opt/kubernetes 
can't load package: package .: no buildable Go source files in /opt/kubernetes 
can't load package: package .: no buildable Go source files in /opt/kubernetes 
make[1]: Leaving directory '/opt/kubernetes' 
+++ [0227 19:34:34] Building the toolchain targets: 
    k8s.io/kubernetes/hack/cmd/teststale 
    k8s.io/kubernetes/vendor/github.com/jteeuwen/go-bindata/go-bindata 
+++ [0227 19:34:34] Generating bindata: 
    test/e2e/framework/gobindata_util.go 
+++ [0227 19:34:35] Building go targets for linux/amd64: 
    cmd/kubectl 
    cmd/hyperkube 
make: Leaving directory '/opt/kubernetes' 
API SERVER insecure port is free, proceeding... 
API SERVER secure port is free, proceeding... 
Detected host and ready to start services. Doing some housekeeping first... 
Using GO_OUT /opt/kubernetes/_output/local/bin/linux/amd64 
Starting services now! 
Starting etcd 
etcd --advertise-client-urls http://127.0.0.1:2379 --data-dir /tmp/tmp.FhAud4KuG4 --listen-client-urls http://127.0.0.1:2379 --debug > "/dev/null" 2>/dev/null 
Waiting for etcd to come up. 
+++ [0227 19:34:38] On try 2, etcd: : http://127.0.0.1:2379 
{"action":"set","node":{"key":"/_test","value":"","modifiedIndex":4,"createdIndex":4}} 
Waiting for apiserver to come up 
+++ [0227 19:34:39] On try 2, apiserver: : { 
    "major": "1", 
    "minor": "5", 
    "gitVersion": "v1.5.3", 
    "gitCommit": "029c3a408176b55c30846f0faedf56aae5992e9b", 
    "gitTreeState": "clean", 
    "buildDate": "2017-02-27T11:05:22Z", 
    "goVersion": "go1.7.4", 
    "compiler": "gc", 
    "platform": "linux/amd64" 
} 
Creating kube-system namespace 
Cluster "local" set. 
Context "local" set. 
Switched to context "local". 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
Error from server (AlreadyExists): error when creating "namespace.yaml": namespaces "kube-system" already exists 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
Please enter Username: admin 
Please enter Password: ******** 
deployment "kube-dns" created 
Please enter Username: 

kubectl config view

apiVersion: v1 
clusters: 
- cluster: 
    certificate-authority: /var/run/kubernetes/apiserver.crt 
    server: https://localhost:6443 
    name: local 
contexts: 
- context: 
    cluster: local 
    user: "" 
    name: local 
current-context: local 
kind: Config 
preferences: {} 
users: [] 

kubectl config get-contexts local

CURRENT NAME  CLUSTER AUTHINFO NAMESPACE 
*   local  local 
+1

能否請您此刻的提示顯示出來後的'kubectl配置view'輸出的相關部分? –

+1

'/ var/run/kubernetes/apiserver.crt'中實際上是否有CA證書?您的API服務器是否以' - ca-cert-file'標誌開始? –

+0

我運行的唯一命令是'hack/local-up-cluster.sh'。它在更新之前有效。我沒有安裝任何證書(但文件存在)。 – DmitryR

回答

1

local方面未配置有用戶,但羣集似乎被配置爲使用一個CA.如果您的集羣正在使用CA,您需要具有有效證書的用戶,由上述CA簽名或有效的用戶令牌,以便通過TLS進行通信。

你提到gives some hints你應該配置你的客戶在完成後,試着按以下步驟操作方式的腳本:

cluster/kubectl.sh config set-credentials myself --username=admin --password=admin 
cluster/kubectl.sh config set-context local --cluster=local --user=myself 
cluster/kubectl.sh config use-context local 

另一種選擇是改變你在溝通的方式您的本地配置不安全端口,默認爲8080,您可以實現與下面的命令:

kubectl config set-cluster local --server=http://localhost:8080 

參考文獻:

+1

謝謝,我附上了這些命令的輸出。 – DmitryR

+1

乾杯,回答更新 –

+0

謝謝。我必須在'hack/local-up-cluster.sh'之前運行'cluster/kubectl.sh' – DmitryR