带有外部openstack负载平衡器的Kubernetes无法正常工作

时间:2016-11-18 10:20:21

标签: kubernetes openstack

以下是我的设置

  • Kubernetes带有主节点和工作节点的cluser。 (知识产权 -
    192.168.55.40/41)

    • kubectl版本 - v1.4.5
    • 两个节点都在运行 coreos
  • Ubuntu 14.04上的Devstack单节点设置(IP - 192.168.55.60)

    stack @ vagrant-ubuntu-trusty-64:〜/ devstack $ neutron --version 6.0.0

我正在尝试使用openstack的loadbalancer来对k8s集群中运行的服务进行负载均衡。我做了以下更改。

  • 将以下行添加到 kubernetes-apiserver.service
    kubernetes控制器-manager.service

    - cloud_config =的/ etc / SYSCONFIG / kube_openstack_config

    - cloud_provider =开栈

  • 以下是/ etc / sysconfig / kube_openstack_config的内容

    [Global] auth-url=http://192.168.55.60/identity_admin username=admin password=password tenant-name=admin region=regionOne

  • 重新启动kubernetes-apiserver.service

现在,当我使用type - Loadbalancer创建服务时,会创建服务,但Openstack端没有更改。

我已使用journalctl检查了系统上的日志,并显示有关cloud_config文件的错误。

plugins.go:80] Couldn't open cloud provider configuration /home/core/kube_openstack_config

该文件存在,并为所有用户提供读取权限。什么可能是错的?

1 个答案:

答案 0 :(得分:0)

这里给出了如何使用Openstack Neutron配置Kubernetes的详细信息:

http://docs.openstack.org/developer/magnum/dev/kubernetes-load-balancer.html

我的第一个问题是你在运行什么版本的Neutron?负载平衡功能现在才在最新版本的Openstack中发展,这可以解释设置它的困难。

就个人而言,我赞成Kubernetes中的新Ingress feature配置负载均衡器。这样可以更好地控制使用哪个负载均衡器以及如何配置它。例如,我遇到的最简单的设置是使用Traefik入口控制器

https://docs.traefik.io/user-guide/kubernetes/

在群集上作为简单的Pod运行。