Но тогда, действительно ли у нас есть сценарий использования для функции порта службы безголового доступа?
ИМХО, да: потому что сама идея Service
не является "случайным IP-адресом" - иначе он будет называться DHCPIPAddress
. Идея Service
в kubernetes заключается в том, что вы можете использовать некоторые сетевые функции, используя один или несколько наборов (address, protocol, port)
, как в мире, не связанном с kubernetes.
Так что может быть хорошо, если вас не волнует порт безголового Service
, в этом случае добавьте ports:\n- port: 80\n
и назовите это ничьей, но преимущество безголового Service
- раскрытие внекластерного сетевого ресурса способом, которым сам kubernetes не может управлять. Я использовал этот трюк, чтобы помочь нам перейти от одного кластера к другому, создав безголовый Service
, имя которого было тем, что ожидал предыдущий Deployment
, с именем ports:
, которое ожидал предыдущий Deployment
, но указав на IP-адрес, которым я управлял, а не в SDN.
При этом все традиционные инъекции kubernetes kube-dns
и $(SERVICE_THING_HOST)
и $(SERVICE_THING_PORT)
работали, как ожидалось, но абстрагировались от того факта, что _HOST
временно жил вне кластера.