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