Kubernetes是用于协调容器化应用程序的平台,在本文中,小编将简单介绍如何在DigitalOcean云服务器种使用托管型(Managed)Kubernetes服务。
为什么要使用托管型Kubernetes?
你可以在自己的硬件上安装Kubernetes服务,运行Kubernetes服务,比较好的解决方案包括MicroK8s和K3s。
这两个项目都致力于提供易于掌握的轻量级解决方案,但即使这样,在自己电脑上安装Kubernetes可能很耗时且难以维护。现在,所有主要的公共云提供商都开发了完全托管的Kubernetes产品,这样可以最少的设置快速部署应用程序。
DigitalOcean Managed Kubernetes服务仅需几分钟即可创建Kubernetes集群,它支持完整的Kubernetes API,节点自动缩放和自动Kubernetes版本升级。
DigitalOcean免费提供Kubernetes控制平面,只需为添加到集群的节点付费即可。DigitalOcean上的节点使用平台的现有云计算实例,称为“Droplets”。这些服务器有多种尺寸,单个vCPU和2GB RAM的起价为10美元/月。
需要注意的是,按照本指南的方法,其余部分将导致DigitalOcean帐户产生费用,因此,如果是为实验目的而创建的Kubernetes集群,那么使用小型Droplets方案,这样低成本的节点。
创建集群服务
首先登录DigitalOcean帐户,点击屏幕右上方的绿色“创建”按钮。从出现的菜单中选择“ Kubernetes”选项,如下图所示:
首先选择要使用的Kubernetes版本。在撰写本文时,主要有1.17、1.18和1.19版本。除非有特殊原因,否则建议您使用最新版本(1.19)。
接下来,选择一个DigitalOcean数据中心以包含群集的资源,建议选择在地理位置比较靠近网站访客的机房,这样访问速度相对会快一些。
选择集群容量
向下拉到“选择群集容量”部分。在这里可以定义可用于集群的节点。群集的工作负载将在这些节点上执行。这些节点将由DigitalOcean提供的Kubernetes控制平面自动编排。
节点被分类到节点池中,这是Kubernetes术语,表示一组一个或多个节点,每个节点具有相同的硬件资源。就我们当前的目的而言,只需要一个节点池即可开始。
通过“Machine Type”下拉菜单,可以选择要使用的DigitalOcean Droplets类型。如果不确定每种类型之间的差异,那么可以看一下Droplets价格表。我们将坚持使用“Basic nodes”,它们在计算性能和可用内存之间实现了良好的平衡。
从“Node Plan”下拉列表中选择要使用的液滴类型。为了节省成本,这里使用了最小的选项– 1个vCPU和1GB RAM,每个节点每月10美元。DigitalOcean将此标记为“development plan”,因为可用资源不太可能用于长期生产。
最后,指定要添加到集群的节点数。默认选择为3,但出于开发目的,你可以将其减小为1。请注意,如果选择仅使用单个节点,则在Kubernetes升级期间你的服务将不可用。多个节点可增加冗余度,支持水平扩展并减少更新期间的停机时间。
添加完节点后,向下滚动页面并为集群命名。单击“创建集群”按钮开始配置过程。这最多需要五分钟才能完成。
集群入门
等待期间,可以单击页面顶部显示的“入门”指南。这将引导您完成下载kubectl,Kubernetes官方命令行客户端和doctl,即DigitalOcean自己的客户端。
下一步可以下载集群的Kubernetes配置文件。这可以用于kubectl连接到群集,下载后,其路径作为值传递给–kubeconfig标志:
kubectl --kubeconfig=kubeconfig-path.yaml get nodes
上面的命令将列出群集中所有节点的详细信息。
使用此方法时,请注意认证证书将在一周后过期。到期后需要重新下载它。另一种方法是doctl获取配置文件并配置自动证书管理–使用“自动证书管理”下显示的命令进行设置。
最后一个阶段使可以从DigitalOcean Marketplace快速安装“一键式应用程序”。这些是常用服务(例如NGINX Ingress Controller和Linkerd)的预配置部署。单击任何应用程序旁边的“安装”以添加到您的集群。该过程可能需要几分钟才能完成。
管理集群
通过单击屏幕顶部的“Nodes”选项卡,可以查看群集的节点池及其节点。单击节点池以查看其中的节点。
这时可以通过单击右上角的“Add Node Pool”按钮来添加新的节点池。想要编辑已存在的节点池,请单击表右侧的三点图标,然后选择“调整大小或自动缩放”。
该对话框使您可以从固定节点数(默认)或自动缩放中选择。使用“固定大小”选项时,你可以指定要使用的确切节点数。
选择“自动缩放”单选按钮以定义节点数量的最小到最大范围,这样将根据群集工作负载的资源使用情况自动添加和删除其他节点。
你也可以通过单击屏幕顶部的“ Insights”选项卡来查看集群中的活动。对于关键统计信息(例如CPU使用率和网络带宽),这默认为群集级指标。使用“选择对象”下拉列表来向下钻取到特定的节点或池。
更多管理选项
DigitalOcean云服务器内置了对Kubernetes仪表板(Kubernetes项目的官方Web UI)的支持。单击右上角的“ Kubernetes仪表板”按钮以在新选项卡中启动该应用程序。将使用有效的身份验证令牌对其进行预配置。
DigitalOcean还提供自动群集升级。点击屏幕顶部的“设置”标签。接下来,按“启用自动升级”。单击“编辑”按钮以自定义可接受的更新时间范围。
DigitalOcean现在将自动将Kubernetes补丁更新应用于你的集群。新的主要版本可用时,到时候会收到通知,当它们出现时,界面内将提供一键式升级按钮。
当然,你可以随时使用“设置”屏幕上的“销毁”按钮删除群集。这将删除与群集关联的所有计算资源,与此同时,某些外围对象(例如块存储卷和网络负载平衡器)可能需要手动删除。
总结
以上就是在DigitalOcean云服务器上面创建Kubernetes集群的全部内容。请务必注意,Kubernetes管理的资源将显示在DigitalOcean控制面板中的其他位置(例如,节点将显示在“ Droplets”管理界面中)。不要直接修改这些资源的属性,而应使用Kubernetes接口,以确保它们与Kubernetes控制平面的期望保持一致。