Mac下minikube,本地无法访问Service服务
利用Minikube发布
Mac环境下,使用minikube发布k8s的Service,但在本地环境下一致无法访问。发布的服务为rabbitmq,具体配置如下。
rabbitmq-pod.yaml配置
apiVersion: v1 kind: Pod metadata: name: rabbitmq-pod labels: # 打标签 app: rabbitmq #用于service路由到这里 spec: containers: - name: rabbitmq-container image: rabbitmq:management
rabbitmq-svc.yaml配置
apiVersion: v1 kind: Service metadata: name: rabbitmq-svc spec: ports: - name: rabbitmq-dashboard-http port: 15672 # 暴露出来的地址 targetPort: 15672 # 应用真实的地址, 可以不写,默认和port一致 nodePort: 31035 #在本地开启31035的端口 将service暴露出来 selector: app: rabbitmq #路由选择,标签为rabbitmq的应用 所以得修改pod上发布物yaml,将其打上标签 type: NodePort
查看信息
查看Pod信息:
查看Service信息:
访问失败
通过localhost:31035
访问,无法正常访问。
解决方案
查看minikube的ip:
appledeMacBook-Pro:k8s apple$ minikube ip 192.168.64.2
大多数情况下,Mac环境都是这个ip。
访问地址修改为:192.168.64.2:31035
,可以正常访问。
原因:正常情况下,集群的网络和本机的网络不是一个网络,所以无法直接通过localhost进行访问。
如果通过此方式查询到的IP依旧无法访问,在Mac环境下需要进一步排查,或者通过minikube tunnel、kubectl port-forward(端口转发)等方式进行实现。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:http://choupangxia.com/2023/09/01/mac-minikube-service/