我已将本地kubernetes
从master
(2016年12月)更新为v1.5.3
我使用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
答案 0 :(得分: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
另一种选择是以通过 insecure 端口进行通信的方式更改本地配置,默认为8080.您可以使用以下命令实现此目的:
kubectl config set-cluster local --server=http://localhost:8080
参考文献: