使用kubectl创建TLS Secret失败:连接localhost:8080被拒绝求助
解决Kubectl连接localhost:8080失败的问题
问题根源
你遇到的connection refused错误,核心原因是kubectl没有正确指向Minikube的Kubernetes API服务器,而是默认尝试连接本地的127.0.0.1:8080——这个端口通常不是Minikube API服务器的监听地址,且sudo执行kubectl会导致使用root用户的kubeconfig(未配置Minikube上下文)。
解决方案步骤
1. 移除sudo执行kubectl命令
Minikube是基于普通用户权限安装和运行的,sudo会切换到root用户,其~/.kube/config文件没有Minikube的集群配置。直接执行命令:
kubectl create secret tls my-tls --key="MyKeyTLS.key" --cert="MyCertTLS.crt" -n keycloak-test
2. 验证并切换kubectl上下文
检查当前kubectl使用的上下文:
kubectl config current-context
如果输出不是minikube,执行以下命令切换到Minikube上下文:
kubectl config use-context minikube
或者直接让Minikube更新上下文配置:
minikube update-context
3. 确认kubectl与Minikube的连接状态
执行以下命令验证连接是否正常:
kubectl cluster-info
正常输出会显示Minikube的API服务器地址(类似https://192.168.49.2:8443),而非localhost:8080。
如果仍有问题,检查Minikube组件状态:
minikube status
确保apiserver状态为Running,若不是则重启Minikube:
minikube stop && minikube start --addons=ingress
4. 额外验证TLS证书有效性
确保你生成的证书和密钥格式正确:
- 检查证书:
openssl x509 -in MyCertTLS.crt -text -noout
- 检查密钥:
openssl rsa -in MyKeyTLS.key -check
若命令无报错,则证书/密钥格式正常。
内容的提问来源于stack exchange,提问作者Gayan Kodithuwakku
相关产品推荐
相关产品推荐

