K8无法使用octavia将浮动IP分配给负载均衡器

时间:2019-04-03 10:54:08

标签: kubernetes openstack

我有

  • 一个开放堆栈,它是Queens,它具有lbaas的八面体
  • 在其顶部的一个小型(测试)k8s集群(3个节点,一个主节点),版本9.1.2
  • 称为hello的部署,该部署可提供一个简单的网页,名为“ hello world”,当从集群内访问时便可以使用

我想将我的部署公开为具有浮动IP的负载平衡服务。

我做了kubectl expose deployment hello --type=LoadBalancer --name=my-service

它说(kubectl describe service my-service

Error creating load balancer (will retry): failed to ensure load balancer for service default/my-service: error getting floating ip for port 9cc6442b-2b2f-4b6a-8f91-65dbc2ff13d0: Resource not found

如果我手动执行:openstack floating ip --port 9cc6442b-2b2f-4b6a-8f91-65dbc2ff13d0 356c8ffa-7bc2-43a9-a8d3-29147ae01727 其中:

| ID                                   | Floating IP Address | Port                                 | Floating Network                     |
| 356c8ffa-7bc2-43a9-a8d3-29147ae01727 | 172.27.81.241       | None                                 | eb31cc74-96ba-4394-aef4-0e94bec46d85 |

和/ etc / kubernetes / cloud_config具有:

[LoadBalancer]
subnet-id=6a6cdc35-8dda-4982-850e-53c6ee5a5085
floating-network-id=eb31cc74-96ba-4394-aef4-0e94bec46d85
use-octavia=True

(因此它正在正确的网络上寻找浮动IP,并且该子网是k8s内部子网)

一切正常。

因此,除了“关联IP”之外的所有东西都起作用了。为什么此步骤失败? k8s在哪里记录了它的工作以及如何失败?我只能找到用于Pod级别日志记录的文档(我的Pod很好,并且可以很好地投放到测试网页中)。

(我还有很多配额可用于“制作更多浮动ip”,还有几个未使用的配额)

1 个答案:

答案 0 :(得分:0)

我能够找到这个No Ports Available when trying to associate a floating IP和这个Failed to Associate Floating IP。也许这些会为您指明正确的方向。

由于我不是OpenStack专家,因此我建议您检查此页面OpenStack community并寻求更多答案。

关于您的问题

  

k8s在哪里记录了它的工作以及如何失败?

您可以使用kubectl describe service <service_name>

  

显示特定资源或资源组的详细信息

     

打印所选资源的详细说明,包括相关资源,例如事件或控制器。您可以按名称选择单个对象,该类型的所有对象,提供名称前缀或标签选择器。例如:

     

$ kubectl describe TYPE NAME_PREFIX

有关模式调试的说明,请检查Debug Services