使用minikube通过kubernetes api进行kubernetes集群设置的正确方法是什么?目前,我找不到可以访问kubernetes集群的端口。
运行minikube start
将自动配置kubectl
。
您可以运行minikube ip
来获取您的minikube所在的IP。默认情况下,API服务器在8443上运行。
更新:要直接访问API服务器,您需要使用已生成的自定义SSL证书。通过minikube。客户端证书和密钥通常存储在:~/.minikube/apiserver.crt
和~/.minikube/apiserver.key
。在发出请求时,您必须将它们加载到HTTPS客户端中。
如果您正在使用curl
,请使用--cert
和--key
选项来使用证书和密钥文件。查看docs了解更多详情。
使用minikube时访问Kubernetes API的最简单方法是使用
kubectl proxy --port=8080
然后,您可以访问API
curl http://localhost:8080/api/
这也允许您在浏览器中浏览API。使用启动minikube
minikube start --extra-config=apiserver.Features.EnableSwaggerUI=true
然后启动kubectl proxy
,并在浏览器中导航到http://localhost:8080/swagger-ui/。
您可以直接使用curl访问Kubernetes API
curl --cacert ~/.minikube/ca.crt --cert ~/.minikube/client.crt --key ~/.minikube/client.key https://`minikube ip`:8443/api/
但通常这样做没有任何好处。常见浏览器对minikube生成的证书不满意,因此如果您想通过浏览器访问API,则需要使用kubectl proxy
。
我经历了很多答案,但很多都是错的。
在我们开始之前,我们需要IP和令牌。
如何获取IP:minikube ip如何生成令牌:
$export secret=kubectl get serviceaccount default -o json | jq -r '.secrets[].name'
$kubectl get secret $secret -o yaml | grep "token:" | awk {'print $2'} | base64 -D > token
注意:base64对mac使用-D,对Linux使用-d。
然后,正确的命令是:
#curl -v -k -H --cacert ~/.minikube/ca.crt -H "Authorization: Bearer $(cat ~/YOUR_TOKEN)" "https://{YOUR_IP}:8443/api/v1/pods"