Kubernetes kubectl从头开始连接远程群集

Kubernetes kubectl从头开始连接远程群集,kubernetes,rbac,kubectl,Kubernetes,Rbac,Kubectl,我创造了一个新的世界。 一切都在运行,但现在我尝试将我的kubectl连接到集群(在虚拟机中) 我的群集正在https://IP:6443 首先我得到: $ kubectl get pods The connection to the server localhost:8080 was refused - did you specify the right host or port? 所以我试着: 然后再试一次: $ kubectl get pods Error from server (Fo

我创造了一个新的世界。 一切都在运行,但现在我尝试将我的
kubectl
连接到集群(在虚拟机中)

我的群集正在
https://IP:6443

首先我得到:

$ kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?
所以我试着:

然后再试一次:

$ kubectl get pods
Error from server (Forbidden): pods is forbidden: User "system:anonymous" cannot list pods in the namespace "default"

我知道我需要创建一个clusterrolebinding,但我仍然需要一个初始的“管理员所有权”?为了使用kubectl访问集群并获取播客,我遗漏了或做错了什么步骤?

kubectl是一个用于远程管理Kubernetes集群的命令行工具

Kubectl正在使用一个配置文件,您必须连接到集群。您的配置文件可能由于许多主要或次要的更改而不一致。如果对问题的进一步分析没有显示出良好的结果,请尝试rm-f~/.kube/config并从头开始

如我所见,您怀疑问题出在自签名证书上。它可能需要更新客户端上的群集根证书颁发机构(CA),然后刷新本地列表以获取有效证书

转到本地CA目录,检查CA.crt文件是否存在,然后将其复制到客户端。 对于客户端,请执行以下操作:

sudo cp ca.crt /usr/local/share/ca-certificates/kubernetes.crt
sudo update-ca-certificates
我同意Matthew L.Daniel提出的建议:

cluster:tag接受CA证书的文件名或 PEM的“内联”基础版本您可以通过以下方式查看:

或者您可以作弊并使用
--unsecure skip tls verify=true
进行切换 用于测试事物的非CA验证

如果您没有在Kubernetes安装期间生成的证书,我建议从开始。 你可以看看像GKE或AKS这样的Kubernetes云提供商——他们可以远程创建Kubernetes配置文件,并包含所有证书,然后将其下载到本地~/.kube目录。 如果您将配置应用于本地安装,这可能会解决配置的一些问题。
它就像一个符咒,节省了很多时间。如果您仍不确定,请在此提供
kubectl config view
的输出,以便我们帮助您解决问题。(在此处发布之前,请删除其中的敏感数据)。

您使用什么凭据连接?kubeuser和kubepassword来自哪里?您验证了这些是正确的吗?我仍然需要一个初始的“管理员所有权”,是的,“集群管理员”凭证位于任何一个主节点上的
/etc/kubernetes/admin.conf
;IIRC您也可以在主节点上使用
kubectl
作为集群管理员执行,并从中创建您自己的serviceAccountthere@MatthewLDaniel我已经检查过了,并且它存在,使用它作为min.kube/config,但是现在我无法连接到服务器:x509,因为我在同一天创建了集群。证书似乎无效,它们可能是自签名的Yes,但
集群:
标记接受CA证书的文件名或PEM的“内联”版本;您可以通过
kubectl配置集cluster$foo--certificateauthority=--嵌入certs=true
,或者您可以欺骗并使用
--unsecure skip tls verify=true
关闭CA验证以进行测试
sudo cp ca.crt /usr/local/share/ca-certificates/kubernetes.crt
sudo update-ca-certificates
kubectl config set-cluster $foo --certificate-authority=... --embed-certs=true