我只想在Kubernetes中运行一个简单的应用程序

时间:2016-11-30 20:12:18

标签: kubernetes

我有一个docker镜像,它提供一个简单的静态网页。 我有一个有4个节点的Kubernetes集群(物理服务器不在云端的任何地方)。

我想在4个Kubernetes节点中的2个节点上运行该docker镜像,并让群集外的世界可以访问它并进行负载平衡,并且如果有人死亡,则将其移动到另一个节点。

我是否需要制作一个pod然后是一个复制控制器然后是一个kube代理? 或者我是否需要制作复制控制器并以某种方式公开它? 我需要提供服务吗?

我不需要帮助如何制作任何这些东西,这似乎有很好的记录,但我无法告诉我需要做什么。

2 个答案:

答案 0 :(得分:2)

您需要的是公开您的服务(包含 pods 复制运行/扩展/重新启动控制器)。使用部署而不是复制控制器具有额外的好处(主要用于更新应用程序)。

如果您使用的是裸机,那么您可能希望通过type: NodePort公开您的服务 - 因此群集中的每个节点都会打开一个静态端口,将流量路由到pod。

然后,您可以将负载均衡器指向该端口上的节点,或者为所有Kubernetes节点创建DNS条目。

文档:http://kubernetes.io/docs/user-guide/quick-start/

答案 1 :(得分:1)

你需要:

1)群集中某个节点上的负载均衡器,即nginx之类的反向代理Pod,用于将流量代理到upstream

需要使用hostPort

将此Pod暴露在外面
ports:
- containerPort: 80
  hostPort: 80
  name: http
- containerPort: 443
  hostPort: 443
  name: https

2)服务,它将使用Web服务器选择器作为目标。

3)将服务名称(将解析为服务IP)设置为nginx config中的上游

4)部署您的Web服务器Pod,它将使服务器成为目标选择器。

您可能还想查看服务的外部IP http://kubernetes.io/docs/user-guide/services/#external-ips

但我个人从来没有设法让我的裸机群上工作。