Mac下Minikube环境中spring.cloud.kubernetes.discovery.discovery-server-url配置问题
解决Spring Cloud Kubernetes服务发现连接拒绝问题
获取正确的K8s API Server地址
- 执行
minikube kubectl -- cluster-info命令,输出里的Kubernetes control plane地址就是目标地址,格式通常为https://<minikube-node-ip>:8443。 - 也可通过
minikube ip获取节点IP,手动拼接成https://<minikube-ip>:8443。
修正配置
将spring.cloud.kubernetes.discovery.discovery-server-url替换为上述获取到的地址,示例如下:
spring: cloud: kubernetes: discovery: discovery-server-url: https://192.168.49.2:8443
若使用properties格式配置文件:
spring.cloud.kubernetes.discovery.discovery-server-url=https://192.168.49.2:8443
额外注意事项
- 若应用部署在Minikube集群内部运行,无需手动配置该参数,Spring Cloud Kubernetes会自动使用集群内部的K8s API地址
https://kubernetes.default.svc:443,手动配置错误地址会覆盖自动发现逻辑。 - 确保应用对应的ServiceAccount拥有访问K8s服务资源的权限,可通过以下命令绑定基础权限:
kubectl create clusterrolebinding sc-k8s-view --clusterrole=view --serviceaccount=<你的命名空间>:default
内容的提问来源于stack exchange,提问作者duckdivesurvive
相关产品推荐
相关产品推荐

