【发布时间】:2020-05-25 18:39:43
【问题描述】:
我正在测试 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 系统上不会导致此类问题。
现在有一些问题:
- 如何显示服务节点端口范围的当前状态?
- 为什么/在哪里可以更改服务范围?
- 解决方法:如何更新正在运行的 node/kube-api 中的服务端口范围?
【问题讨论】:
-
您能否尝试将端口数减少到 30000-40000 并检查它是否有效?据我了解,相同的命令在 linux 上工作,它只在 mac 上?如果要手动更改节点端口范围,可以编辑
/etc/kubernetes/manifests/kube-apiserver.yaml并且应该有--service-node-port-range行。minikube logs | grep ServiceNodePortRange应该会显示服务节点端口范围的当前状态,您也可以在编辑 kube-apiserver yaml 时检查它。
标签: kubernetes minikube kubernetes-apiserver kube-apiserver service-node-port-range