使用Kubernetes管理/少数单个主机的Docker容器是否有意义?

时间:2018-03-18 18:18:53

标签: docker server kubernetes

我在裸机服务器上使用docker。我非常满意使用docker-compose来配置和设置应用程序。

还缺少一些功能,例如配置管理和监控可能还有其他解决方案来解决这个问题,但我对Kubernetes的功能集不知所措,无法判断它是否会对我有所帮助

我也打开单独解决要求的建议:

  • 配置/秘密管理
  • 监控我的docker hostes应用程序(例如,有某种仪表板)
  • 远程控制容器控制(只有一台服务器可以使用SSH)
  • 准备好在未来扩展我的环境(基于多个不同的Dockerized应用程序)到多个服务器 - 已经考虑使用纯粹的docker-compose setup来解决网络/服务发现问题

我确信Kubernetes涵盖了其中的一些功能,但我觉得它太过专注于云平台,其中机器是动态创建的(因为我最多只有少量裸机服务器)

我希望问题范围不是太宽泛,否则请使用评论部分帮助我缩小问题范围。

感谢。

1 个答案:

答案 0 :(得分:2)

我认为Kubernetes绝对是您的要求,而这正是您所需要的。

让我们逐一开始。

  

我觉得它太过专注于那些动态创建机器的云平台(因为我最多只有几个裸机服务器)

不,它没有专注于云。 Kubernates几乎可以安装在任何裸机平台(包括ARM)上,并且有很多tools and instructions可以帮助你完成它。此外,使用Minikube可以很容易地在本地PC上部署它,这将在VM中或在您的操作系统中为您准备本地群集(仅适用于Linux)。

  

配置/秘密管理

Kubernates具有基于特殊对象的强大配置和管理功能,可以附加到您的容器中。您可以在that文章中了解有关配置管理的更多信息。

此外,像Helm这样的工具可以为您提供更多自动化和一系列预配置的应用程序,您可以使用单个命令进行安装。您可以为它准备自己的charts

  

监控我的docker hostes应用程序(例如,有某种仪表板)

Kubernetes拥有自己的dashboard,您可以在其中获取各种信息:当前应用程序状态,配置,统计信息等等。此外,Kubernetes与Heapster有很好的集成,可与Grafana一起用于几乎所有内容的强大可视化。

  

远程控制容器控制(只有一台服务器可以使用SSH)

Kubernetes controlling tool kubectl可以获取日志并连接到群集中的容器而不会出现任何问题。例如,要连接容器" myapp"您只需要致电kubectl exec -it myapp sh,即可在容器中获得sh个会话。此外,您可以使用kubectl proxy命令连接到群集内的任何应用程序,该命令会将您需要的端口转发到PC。

  

准备好在未来将我的环境(基于多个不同的Dockerized应用程序)扩展到多个服务器 - 已经考虑使用纯粹的docker-compose设置来解决网络/服务发现问题

Kubernetes可以扩展到数千个节点。或者只能有一个。这是你的选择。独立于群集大小,您将获得生产级网络,服务发现和负载平衡。

所以,不要害怕,只需try to use it locally使用Minikube。它将使许多操作任务更简单,而不是更复杂。