docker - 如何将我的应用程序与运行 Docker 容器的 Kubernetes 集群集成?
问题描述
这更像是一个研究问题。如果它不符合 SO 的标准,请告诉我,我会在别处询问。
我是 Kubernetes 新手,有几个基本问题。我在互联网上阅读了很多文档,希望有人可以帮助回答一些基本问题。
我正在尝试创建与 Kubernetes(准确地说是在 Docker 容器中运行的用户应用程序)和我的应用程序的集成,该应用程序将充当容器中某些数据的备份。
我的应用程序目前在 AWS 中运行。Kube 集群是否也需要在 AWS 中运行?或者,只要 API 可用,它就可以在任何云服务甚至本地运行吗?
我的应用程序需要知道主节点 API 服务器的 IP 才能执行 POST/GET 请求,仅此而已?
对于身份验证,我可以使用 AD(我的应用程序今天使用 AD 来做一些事情)。这也将为每个用户提供基于角色的策略。还是我必须始终使用 Kube Token Reviewer API 进行身份验证?
在 Kubernetes 中运行的应用程序会使用我提供的 API 与我的应用程序通信吗?
我的应用程序会使用 POST/GET 与 Kube Master API 服务器通信吗?我是否需要为此及以上 #4 使用 kubectl ?
谢谢你的帮助。
解决方案
- 您的应用程序不必与 k8s 存在于同一台服务器上。有几种方法可以连接到 k8s 集群,具体取决于您的用例。您可以使用 公开内置的 k8s API ,直接连接到 master 上的 k8s API,或者您可以通过负载均衡器或节点端口
kubectl proxy
公开服务。 - 如果您通过内置的 k8s API 直接连接到集群,您只需要知道主节点的 IP,但在大多数情况下,您应该只使用此 API 来内部管理您的集群。访问 k8s pod 的首选方式是通过负载均衡器公开它们,这允许您从单个 IP 访问任何节点上的服务。
nodePort
k8s 还允许您通过预先分配的端口从任何 k8s 节点(主节点除外)访问服务。 - TokenReview 只是 k8s auth 策略中的一种。我对 Active Directory 身份验证一无所知,但乍一看OpenID 连接令牌似乎支持它。您应该检查是否需要允许用户直接访问 k8s API。考虑改为通过 LoadBalancer 公开服务。
- 我不确定你的意思是什么,但如果你将 API 部署为k8s 部署,你可以通过服务公开它们的端点,以便与你的外部应用程序进行通信,但你喜欢。
- 同样,从外部应用程序与 k8s pod 通信的首选方式是通过作为负载均衡器公开的服务,而不是通过 k8s 主服务器上的内置 API。在服务的情况下,由底层 API 决定它想要接受哪些类型的请求。
推荐阅读
- ios - 如何摆脱等待完成处理程序
- html - HTML Anchor 标记的 href 属性中的两个主题标签而不是一个
- selenium - 如果无法检查,如何在 Selenium WebDriver 中查找元素
- powershell - 如何将此 curl 命令转换为 PowerShell
- codenameone - 如何检查 iOS 权限是否设置为“始终允许”?[代号]
- angular - 更改 NGRX 中的 Store 状态
- ember.js - 如何将参数传递给 ember 组件?
- mysql - 想连接 Power Bi 和 MySQL
- javascript - 检查输入值是否减少/增加
- javascript - CRUD op Express.js Node.js Mysql 无法使用 MVC 插入