我在裸机服务器上使用docker。我非常满意使用docker-compose来配置和设置应用程序。
还缺少一些功能,例如配置管理和监控可能还有其他解决方案来解决这个问题,但我对Kubernetes的功能集不知所措,无法判断它是否会对我有所帮助
我也打开单独解决要求的建议:
我确信Kubernetes涵盖了其中的一些功能,但我觉得它太过专注于云平台,其中机器是动态创建的(因为我最多只有少量裸机服务器)
我希望问题范围不是太宽泛,否则请使用评论部分帮助我缩小问题范围。
感谢。
答案 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。它将使许多操作任务更简单,而不是更复杂。