Почему в Kubernetes NodePort имеет диапазон портов по умолчанию от 30000 до 32767?

Я новичок в Kubernetes. Почему в Kubernetes только NodePort имеет диапазон портов по умолчанию от 30000 до 32767? Даже если мы изменим диапазон портов по умолчанию на определенные пользователем, почему разрешены только порты 2767?

Пожалуйста, помогите мне понять. Заранее спасибо.


person BharathKumarMurugan    schedule 02.09.2020    source источник
comment
Вы можете найти некоторую информацию здесь   -  person Sayf Uddin Al Azad Sagor    schedule 02.09.2020


Ответы (1)


Этот диапазон был выбран, чтобы избежать конфликтов с чем-либо еще в сети хост-компьютера, поскольку во многих случаях он назначается динамически (также возможен ручной вариант). Например, если вы настроите его из диапазона 1-32767, ваш выделенный nodePort может конфликтовать с портом 22.

Причины довольно хорошо освещены здесь @thockin:

  1. Мы не хотим, чтобы порты сервисного узла попадали на реальные порты, используемые узлом.
  2. Мы не хотим, чтобы порты сервисных узлов попадали в порты хоста пода.
  3. Мы не хотим случайным образом выделять кому-то порт 80, 443 или 22.

Глядя на код, я вижу, что диапазон им не ограничен. Вы можете найти фрагменты кода , и в godocs здесь.

Я также выполнил быстрый тест, когда я установил более высокий диапазон по умолчанию, он отлично работает для меня:

➜  temp kubectl get svc
NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
my-service    NodePort    10.100.214.233   <none>        80:14051/TCP   68s
my-service2   NodePort    10.97.67.57      <none>        80:10345/TCP   6s
person acid_fuji    schedule 02.09.2020