利用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信息:

Mac下minikube,本地无法访问Service服务插图
查看Pod

查看Service信息:

Mac下minikube,本地无法访问Service服务插图1
查看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(端口转发)等方式进行实现。



Mac下minikube,本地无法访问Service服务插图2

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2023/09/01/mac-minikube-service/