Kubernetes теряет расширенный набор сервисных портов

Я тестирую стек kubernetes minikube / infxdb / grafana под macos 10.15.3. Я работаю в командной строке.

Системная среда:

  • MacOS 10.15.3 / bin / bash (darwin19)
  • Minikube 1.7.2, скачал через

    curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64

Я запускаю 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.

Несколько строк сценария оболочки в будущем я создаю службу Grafana, применяя код yaml:

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 и другие развертывания, а также услуги InfxDB и Telegraf (не типа «NodePort»!) Не вызывают проблем. Тот же код не вызывает подобных проблем в стандартной Linux-системе.

Теперь несколько вопросов:

  • Как я могу отобразить текущий статус диапазона портов сервисного узла?
  • Почему / где можно было изменить спектр услуг?
  • В качестве обходного пути: как обновить диапазон портов службы на работающем узле / kube-api?

comment
Не могли бы вы уменьшить количество портов например до 30000-40000 и проверить, работает это или нет? Как я понял, такая же команда работает на Linux, и только на Mac? Если вы хотите изменить диапазон портов узла вручную, вы можете отредактировать /etc/kubernetes/manifests/kube-apiserver.yaml, и там должна быть строка --service-node-port-range. minikube logs | grep ServiceNodePortRange должен показать вам текущий статус диапазона портов сервисного узла, вы также можете проверить его при редактировании kube-apiserver yaml.   -  person Jakub    schedule 10.02.2020


Ответы (1)


Я также ударил это на Mac. Ключ был запущен minikube delete, а затем снова запущен minikube start --extra-config=apiserver.service-node-port-range=3000-61616.

Это было с драйвером Docker, а не с Hyperkit FWIW.

person Nick Aberle    schedule 13.10.2020
comment
Привет, Ник, так как я перестал работать над этим, я не могу протестировать предложенное тобой решение. Тем не менее ставлю решенную галочку - person WolfiG; 14.10.2020