minikube 在特定端口上公开服务

minikube expose service on specific port

是否可以使用 minikube 在特定端口上公开服务?

kubectl expose deployment my-deployment --type=NodePort --port=80 不会抛出错误,但是在调用

minikube service my-deployment --url

结果如下:

http://192.168.99.100:31512 并且它在端口 80 上不可用,但在端口 31512 上可用。

根据 https://kubernetes.io/docs/concepts/services-networking/service/#nodeport

,类型 nodePortminikube 的有效端口默认为 30000-32767

我能够指定一个特定的端口(这里:30000 在那个范围内使用这个 services.yaml:

apiVersion: v1
kind: Service
metadata:
  name: my-deployment 
  labels:
    app: my-deployment 
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30000
    protocol: TCP
  selector:
    app: my-deployment 

以这种方式开始 minikube 时:

minikube start --extra-config=apiserver.service-node-port-range=80-30000,也可以使用端口80

apiVersion: v1
kind: Service
metadata:
  name: my-deployment 
  labels:
    app: my-deployment 
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
    nodePort: 80
    protocol: TCP
  selector:
    app: my-deployment 

minikube service my-deployment --url 现在 returns http://192.168.99.100:80 正如预期的那样,应用程序在端口 80.

上可用