最简单合理的 Kubernetes 设置是什么?

What is the simplest reasonable Kubernetes setup?

我对Kubernetes入门很感兴趣,但是我的需求很简单,看起来并不简单。我有许多部署到容器服务器的容器化应用程序。我使用nginx作为反向代理来暴露这些应用。

据我所知,Kubernetes 旨在简化此类设置的管理。但我不确定设置投资是否值得,因为我实际上只需要每个应用程序的一个实例 运行。

我可以将一些容器化应用程序部署到的最简单合理的 Kubernetes 设置是什么?

编辑:如果我开始使用 Kubernetes,它将只使用现场服务器。有问题的应用程序是我为我的雇主开发的应用程序,他们要求一切都在现场。

因为你想开始使用 Kubernetes,我假设你想为你的本地开发设置,我认为 minikube is a best candidate for this purpose. You can also take a look at interactive tutorials 来自 Kubernetes 官方网站,我觉得它很有帮助。

看看这个固执己见的集群设置 k8s-snowflake 并将其部署到某个地方,例如 Azure,或 Google Compute。

了解 kubernetes 集群如何在低级别工作是一个很好的练习,但是当您准备好投入生产时,请查看 Google 的 Container Engine 或 AWS Elastic Container Engine .这些极大地简化了集群的管理,并将云平台的所有其他优势暴露给您的 kubernetes 工作负载。

  1. 在开发者机器上;你应该使用 minikube。
  2. 在 Azure / Google / Amazon ..etc 上;你应该使用托管的 kubernetes 服务
  3. 在 Prem 上,您应该根据自己的设置部署 kubernetes。

    3.1。 https://github.com/kelseyhightower/kubernetes-the-hard-way

    3.2。使用 kubeadm

    3.3 带有像 kubespray 这样的 ansible 脚本

如果你选择kubeadm安装,升级kubernetes集群时,你应该再次使用kubeadm。在 prem 上部署的最佳方式是使用 kubeadm、kube-spray 或使用 Pivotal 的 Bosh 脚本使其自动化

好吧,根据之前的回答,您应该从机器上的 minikube 开始。

关于进一步的 dev/test/staging/prod 部署,这取决于它。有几个解决方案:

  • 使用 Google、Azure 或 AWS 提供的集群(AWS EKS 尚未准备好 - https://aws.amazon.com/eks/
  • 困难的方法 - 设置自己的集群或 EC2 机器或类似机器
  • 使用像 Rancher 这样的工具——一些关于 k8s 的额外抽象以便于开始,从 2.0 版开始,k8s 将成为 Rancher 的默认机制 orchiestration

2018 年 1 月 31 日更新:

  • 关于困难的方法——当然有一些工具可以帮助这种方法,比如 helm

Kubernetes 文档提供了一个优秀的页面,可以在不同的选项之间进行选择以设置 kubernetes。该页面位于 Picking the Right Solution.

如果您想要一种在本地设置 kubernetes 集群的简单方法,请查看 kubeadm