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/