KubeSail及其面向开发人员的免费Kubernetes集群



年初,由两名美国Kubernetes发烧友创建了一个新的KubeSail Web服务,他们将“使所有开发人员都可以更轻松地使用Kubernetes的好处”。 为了实现这一目标,他们以托管服务的形式提出了一个K8s集群,其中有一个免费的资费计划。

KubeSail的作者声称Kubernetes已经成为建筑基础设施的标准,他承认进入的门槛很高,“这使人们对该技术的好处是否能够覆盖[培训和启动]的成本产生了怀疑”。 为了减轻这一缺陷,他们提供了易于使用的服务,该服务的免费版本应该“对于学习Kubernetes或兴趣项目来说非常有用,而这些项目的成本不超过每月140美元,就像在Amazon EKS中一样”。

当前的KubeSail 收费计划如下:



…价格很快就会受到CPU /内存和存储的灵活限制。

有什么比其他选择更好的?


开发人员自己(不仅是他们) 就是这么说的 ,并回答了Reddit读者关于他们的报价与现有报价之间的区别的问题。

与本地运行Minikube相比:

“一个以上的主节点,使您可以使用这种高度可访问的配置。 您应该能够删除一个节点,而不会遭受功能中断的困扰。 我敢肯定,Minikube只能由许多工人组成一个大师。”

“ ...您还可以在集群中运行生产安装,并使其可以在Internet上使用。 这不仅对学习很酷,而且是一个真正高可用性的K8s集群,当关闭笔记本电脑盖时该集群不会关闭。”

与其他托管Kubernetes供应商相比(示例包括GKE和Digital Ocean):

“ DO确实比AWS便宜(上面已提供了与EKS的比较) ,但我必须说,我们以免费的价格支持HA配置(您可以在三个节点上运行三个小型Pod),并使用具有快速SSD的功能强大的机器-驱动器和网络连接,因此我敢打赌,KubeSail上的Pod将比DO中2 GB实例快! 尽管与DO竞争真的很困难,所以我们将专注于培训和用户界面/实用程序。”

超过托管的K8


尽管该服务主要针对开发人员,但它对于DevOps工程师也很有用。 除了简单的Web界面本身(有关其详细信息,将在下文中介绍)之外 ,作者还承诺发布Kubernetes的开发工具和教程,以简化在集群中部署和运行应用程序的过程。 这里的“第一口吞咽” deploy-to-kube实用程序 ,用于使用一个命令在Kubernetes中部署Node.js应用程序(甚至无需为此创建配置-交互请求所有必需的数据):

图片

但是回到实际管理的K8s集群,KubeSail为我们提供了什么。

与KubeSail合作


该服务的Web界面可满足项目的目的:它非常简单,只需单击几下就可以使用该集群。

通过GitHub帐户登录后,网络界面会提示您立即开始业务,即 将第一个部署部署到创建的Kubernetes集群中:



我们将为此选择一个现成的示例QUOTE-OF-THE-MONTH 。 这是一个随机的JSON报价服务。 部署速度快(<10秒):



让我们检查结果,参考一个外部可访问的端点:

 $ curl https://qotm-2d7ab6efca.kubesail.io/ { "hostname": "qotm-5d9f776595-6qfmv", "ok": true, "quote": "A small mercy is nothing at all?", "time": "2019-02-21T02:54:15Z", "version": "2.0" } 

有效! 这是已经上传到集群的部署的界面:



如您所见,您可以看到有关它们的基本信息:资源限制,转发的端口,日志输出(来自kubectl logs数据)。

如果单击ACCOUNT链接(在界面的右上角),则可以从现成的示例中推出其他部署(现在只有两个:已经提到的~/.kube/config服务和nginx),或者您可以选择现成的配置( ~/.kube/config )。通过通常的kubectl与集群kubectl



为了实验的完整性,我们将使用此配置并部署我们的部署-例如,来自Kubernetes文档

 $ kubectl create -f https://k8s.io/examples/controllers/nginx-deployment.yaml deployment.apps/nginx-deployment created $ kubectl get deployments NAME READY UP-TO-DATE AVAILABLE AGE nginx 1/1 1 1 4h14m nginx-deployment 0/3 0 0 64s qotm 1/1 1 1 4h17m 

原来是扩展,但是出了什么问题? KubeSail界面很乐意为您提供帮助:



就在这里-都是关于有限的资源。 例如,如果将部署引入此表单,问题将消失(请参阅最后几行- resources块):

 apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 resources: limits: cpu: "100m" memory: "20Mi" requests: cpu: "10m" memory: "10Mi" 

...但是,对这个问题进行这种“纠正”的人为手段很快就会使自己感到:



注意右上角的“ 1/3”-它表示其中一个副本的启动。 没错,在此之后,资源不再足够用了……但是,我将把这种“游戏”留在实验范围之外:它的本质仍然归结为通过kubectl检查与集群的交互-并且,正如我们所看到的,一切都井然有序。

KubeSail的官方当前状态是beta版,作者非常期待他们服务的任何用户(包括开发人员和DevOps工程师)的反馈。

替代品


最后,让我提醒您,还有其他免费服务,供您试用Kubernetes并在线学习。 其中之一-使用Docker-in-Docker(DIND)技术与Kubernetes一起玩并在浏览器中提供控制台-我们已经撰写了一篇评论

除了他之外,Katacoda还创建了一个非常相似的Kubernetes Playground

Kubernetes文档中,您可以找到有关安装/使用Kubernetes的本地方法以及托管解决方案的大型列表, 托管解决方案的种类远远超过了Amazon,Azure,Digital Ocean和Google熟悉的选项(顺便说一下,KubeSail还可以到此列表)

聚苯乙烯


另请参阅我们的博客:

Source: https://habr.com/ru/post/zh-CN441116/


All Articles