如何将我的应用程序与运行Docker容器的Kubernetes集群集成在一起?

时间:2019-03-14 08:27:14

标签: docker kubernetes

这更多是一个研究问题。如果不符合SO标准,请告诉我,我将在其他地方提出要求。

我是Kubernetes的新手,有一些基本问题。我在互联网上阅读了很多文档,希望有人能帮助回答一些基本问题。

我正在尝试与Kubernetes(准确地说是在Docker容器内运行的用户应用程序)和我的应用程序进行集成,以用作容器中某些数据的备份。

  1. 我的应用程序当前在AWS中运行。 Kube集群也需要在AWS中运行吗?还是只要API可用,它是否可以在任何云服务中甚至本地运行?

  2. 我的应用程序需要知道主节点API服务器的IP才能执行POST / GET请求,而没有其他要求?

  3. 对于身份验证,我可以使用AD(我的应用程序今天在某些方面使用AD)。这还将为我提供每个用户基于角色的策略。还是我必须始终使用Kube Token Reviewer API进行身份验证?

  4. 在Kubernetes中运行的应用程序是否会使用我提供的与应用程序通信的API?

  5. 我的应用程序是否将使用POST / GET与Kube Master API服务器通信?对于#4及以上版本,我是否需要使用kubectl?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  1. 您的应用程序不必与k8s在同一服务器上。有多种连接到k8s集群的方法,具体取决于您的用例。您可以使用kubectl proxy公开内置的k8s API,直接连接到主服务器上的k8s API,也可以通过负载平衡器或节点端口公开services
  2. 如果直接通过内置的k8s API连接到集群,则只需要知道主节点的IP,但是在大多数情况下,您只应使用此API在内部管理集群。访问k8s Pod的首选方法是通过负载平衡器公开它们,它允许您从单个IP访问任何节点上的服务。 k8s还允许您通过预先分配的端口从任何k8s节点(主服务器除外)使用nodePort访问服务。
  3. TokenReview只是k8s身份验证策略之一。我对Active Directory身份验证一无所知,但乍一看OpenID connect tokens似乎支持它。您应该查看是否需要允许用户直接访问k8s API。考虑改为通过LoadBalancer公开服务。
  4. 我不确定您的意思是什么,但是如果您以k8s deployments的形式部署API,则可以通过服务公开它们的端点,以便随心所欲与您的外部应用程序进行通信。
  5. 同样,从外部应用程序与k8s pod进行通信的首选方法是通过公开为负载平衡器的服务,而不是通过k8s主服务器上的内置API。就服务而言,由底层API决定要接受的请求类型。