Назначение плавающего IP-адреса для балансировщика нагрузки в тепловом шаблоне

Кто-нибудь знает, как связать плавающий IP-адрес с балансировщиком нагрузки в тепловом шаблоне? Я могу создать балансировщик нагрузки для экземпляра (или нескольких экземпляров, но начинающих с малого) в жару; и может связывать плавающий IP-адрес с балансировщиком нагрузки в Horizon, но я не могу понять, как это сделать с помощью тепла.

2 ответа

Решение

Я просто должен был найти ответ на этот вопрос сам.

Оказывается, что vip атрибут OS::Neutron::Pool Ресурс содержит еще несколько ключей, чем документировано здесь. В частности, vip атрибут содержит port_id, который является адресом нейтронного порта, связанного с этим пулом.

Поскольку у нас есть идентификатор порта Neutron, мы можем использовать его для привязки плавающего IP-адреса следующим образом:

type: "OS::Neutron::Pool"
  properties:
    protocol: HTTP
    monitors:
      - {get_resource: monitor}
    subnet_id: {get_resource: fixed_subnet}
    lb_method: ROUND_ROBIN
    vip:
      protocol_port: 80

lb_floating:
  type: "OS::Neutron::FloatingIP"
  properties:
    floating_network_id:
      get_param: external_network_id
    port_id:
      get_attr: [pool, vip, port_id]

Тот get_attr звонок становится port_id атрибут vip атрибут pool ресурс.

У меня был тот же вопрос в отношении Октавии, а не Нейтрона, однако ответ Ларска указал мне правильное направление.

The OS::Octavia::LoadBalancerобъект имеет vip_port_idатрибут, к которому можно получить доступ таким же образом:

        port_id:
    get_attr: [lb1, vip_port_id]
Другие вопросы по тегам