我正在 macOS 10.15.3 下测试 kubernetes minikube/influxdb/grafana 堆栈。我正在命令行上工作。
系统环境:
- MacOS 10.15.3 /bin/bash (darwin19)
Minikube 1.7.2,通过下载
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
我通过 shell 脚本启动 minikube
minikube start --extra-config=apiserver.service-node-port-range=3000-61616
minikube 回应
Creating hyperkit VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
Preparing Kubernetes v1.17.2 on Docker 19.03.5 ...
▪ apiserver.service-node-port-range=3000-61616
Launching Kubernetes ...
Enabling addons: default-storageclass, storage-provisioner
⌛ Waiting for cluster to come online ...
Done! kubectl is now configured to use "minikube"
所以我假设服务端口 3000-61616 在 minikube 中可用。
我通过应用 yaml 代码创建了 Grafana 服务的一些 shell 脚本行:
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: default
spec:
selector:
app: grafana
type: NodePort
ports:
- protocol: TCP
port: 3000
targetPort: 3000
nodePort: 3000
产生:
The Service "grafana" is invalid: spec.ports[0].nodePort: Invalid value: 3000: provided port is not in the valid range. The range of valid ports is 30000-32767
看起来,服务端口范围以某种方式被重置。Grafana 部署和其他部署,以及 influxDB 和 telegraf 服务(不是“NodePort”类型!)不会引起问题。相同的代码在标准的 linux 系统上不会导致此类问题。
现在有几个问题:
- 如何显示服务节点端口范围的当前状态?
- 为什么/在哪里可以更改服务范围?
- 作为解决方法:如何更新正在运行的节点/kube-api 中的服务端口范围?