【发布时间】:2018-10-22 14:49:56
【问题描述】:
我创建了一个local Kubernetes cluster using ansible。
一切都在运行,但现在我尝试将我的kubectl 与集群(在虚拟机中)连接。
我的集群在https://IP:6443上运行
首先我得到了:
$ kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?
所以我尝试了this solution:
kubectl config set-credentials kubeuser/IP --username=kubeuser --password=kubepassword
kubectl config set-cluster IP --insecure-skip-tls-verify=true --server=https://IP:6443
kubectl config set-context default/IP/kubeuser --user=kubeuser/IP --namespace=default --cluster=IP
kubectl config use-context default/IP/kubeuser
又试了一次:
$ kubectl get pods
Error from server (Forbidden): pods is forbidden: User "system:anonymous" cannot list pods in the namespace "default"
我知道我需要创建一个集群角色绑定,但我仍然需要一个初始的“管理员所有权”吗?为了让我可以使用 kubectl 访问我的集群并获取我的 pod,我遗漏了哪一步或做错了什么?
【问题讨论】:
-
您使用什么凭据进行连接? kubeuser 和 kubepassword 是从哪里来的?你确认这些是正确的吗?
-
我仍然需要一个初始的“管理员所有权” 是的,并且“集群管理员”凭据在任何一个主节点上的
/etc/kubernetes/admin.conf中; IIRC 你也可以在 on 主节点上使用kubectl作为集群管理员执行,并从那里创建自己的 serviceAccount -
@MatthewLDaniel 我已经检查过它存在,将它用作 min .kube/config 但现在我无法连接到服务器:x509,而我在同一天创建了集群。证书似乎无效,它们可能是自签名的
-
是的,但
cluster:标签接受 CA 证书的文件名或 PEM 的“内联”base64 版本;你可以用kubectl config set-cluster $foo --certificate-authority=... --embed-certs=true看,也可以作弊用--insecure-skip-tls-verify=true关掉CA验证来测试东西
标签: kubernetes rbac kubectl