Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 为无状态webapp创建多节点Kubernetes群集_Docker_Cluster Computing_Kubernetes - Fatal编程技术网

Docker 为无状态webapp创建多节点Kubernetes群集

Docker 为无状态webapp创建多节点Kubernetes群集,docker,cluster-computing,kubernetes,Docker,Cluster Computing,Kubernetes,我试图理解一种处理Kubernetes集群的好方法,其中有几个节点和一个主节点。 我将集群托管在我公司的云中,即普通的Ubuntu盒(因此没有谷歌云或AWS) 每个pod都包含webapp(无状态),我通过复制控制器运行任意数量的pod 我看到,对于服务,我可以声明PublicIPs,但是这很混乱,因为在添加 我的仆从节点,每个ip只公开它运行的pod,不做任何形式的负载平衡。因此,, 如果一个节点没有任何活动的pod在运行(因为创建的pod是在节点之间随机分配的),它只是超时,我会结束一些没有

我试图理解一种处理Kubernetes集群的好方法,其中有几个节点和一个主节点。 我将集群托管在我公司的云中,即普通的Ubuntu盒(因此没有谷歌云或AWS)

每个pod都包含webapp(无状态),我通过复制控制器运行任意数量的pod

我看到,对于服务,我可以声明PublicIPs,但是这很混乱,因为在添加 我的仆从节点,每个ip只公开它运行的pod,不做任何形式的负载平衡。因此,, 如果一个节点没有任何活动的pod在运行(因为创建的pod是在节点之间随机分配的),它只是超时,我会结束一些没有响应的IP地址。我理解错了吗

我如何才能真正为我的web应用程序进行适当的外部负载平衡?我应该在Pod级别进行负载平衡而不是使用服务吗?
如果是这样的话,豆荚被认为是凡人,它们可能会动态地死亡和出生,我如何跟踪这一点

公共IP的事情最近发生了变化,我不知道它确切地落在哪里。但是,服务是您在应用程序中引用的ip地址和端口。换句话说,如果我创建了一个数据库,我将它创建为一个pod(有或没有复制控制器)。但是,我没有从另一个应用程序连接到pod。我连接到一个知道pod的服务(通过标签选择器)。这一点很重要,原因有很多

  • 如果数据库出现故障并在另一台主机上重新创建,则访问该数据库的应用程序仍会引用(固定的)服务ip地址,kubernetes代理将负责将请求发送到正确的pod
  • 所有Kubernetes节点都知道服务地址。任何节点都可以适当地代理请求
  • 我认为这个主题的变化适用于你的问题。您可以考虑创建一个外部负载均衡器,它为特定的(Web)服务转发流量到所有节点。如果节点发生故障,您仍然需要将节点从平衡器的目标中移除,但是,我认为任何节点都将转发任何服务的流量,无论该服务是否在该节点上

    综上所述,我还没有直接体验过集群外部(公共)ip地址负载平衡,因此可能有更好的技术。我想说的要点是,无论节点是否有pod,节点都会将请求代理到相应的pod

    -g