商务

Kubernetes在多云上使用Terraform

女人和男人看着两个电脑屏幕,女人指着屏幕。

Kubernetes(美丽)是一个开源平台,用于管理容器化的工作负载和服务,并加速声明性配置和自动化。K8s通常被描述为容器编排平台。

容器提供了一种轻量级机制来隔离应用程序的环境。例如,容器化应用程序不仅意味着构建一个包含应用程序的包,还意味着构建运行该应用程序所需的所有依赖项。作为容器编排平台,K8s管理容器的整个生命周期,根据需要启动和关闭资源。

如何创建k8

可以在单节点和多节点中创建k8。为了创建单个节点集群,我们可以使用minikube,其中我们可以在笔记本电脑或台式机上运行单个节点K8s集群。在生产环境中,我们需要一个具有高计算资源的集群,单节点集群无法满足这一需求,并且只有一个节点的集群无法实现集群的高可用性。

有许多方法可以构建多节点K8s集群。其中一个在使用工具,kubeadm,其中提供了“kubeadm init”和“kubeadm join”作为创建集群的最佳实践。在本文中,我们将在Amazon Web Services (AWS)和Azure上配置多节点Kubernetes集群多的云包括AWS和Azure云提供商。AWS云将有一个主节点和一个工作节点,而Azure将有另一个工作节点。

下面是创建集群所需的资源:

  • AWS上的主节点和一个工作节点
  • Azure上的另一个工作节点
  • 用于AWS和Azure上的配置实例的Terraform
  • 配置主备节点的Bash脚本

以下是您需要的先决条件:

  • 拥有AWS账户
  • 拥有Azure帐户
  • 必须安装和配置AWS CLIv2
  • 必须安装和配置Azure CLI
  • 起程拓殖:基础设施作为代码工具,允许您构建、更改、管理和版本化基础设施。它的唯一目的是为配置基础设施提供一个工作流。

下面,我们可以看到通过一个Terraform脚本在AWS和Azure云上配置主节点和工作节点的Terraform代码。

下面的步骤将向您展示如何在AWS和Azure上创建多节点Kubernetes集群:

步骤1:在AWS Cloud上提供主节点和一个工作节点,在Azure上提供另一个工作节点。

根据上面的Terraform代码,您可以在AWS和Azure上创建主节点和工作节点。

  • 在AWS上创建实例时,需要使用instance_type=t2。中等(2vCPU, 4GiB RAM)与操作系统亚马逊Linux 2。这里已经创建并使用了安全组。
  • 当在Azure上提供这个实例时,需要使用“vm_size=Standard_B2s(2vCPU, 4GiB RAM)”,os应该是“rhel8”。要登录,我们需要创建用户名和密码。

执行如下命令进行发放:

起程拓殖init

起程拓殖应用

以下是你的输出:

  • 使用Terraform提供的AWS主节点和工作节点

  • 下面是使用Terraform创建的Azure工作节点:

开发人员可以通过使用bash脚本来节省编写命令的时间。Bash脚本是纯文本文件中的一系列命令,因此当您有一组将经常执行的命令时,请考虑为其编写bash脚本。

步骤2:配置K8s Master

现在,我们已经创建了用于配置主节点和从节点的bash脚本。主节点使用Terraform在AWS Cloud上启动。接下来,登录虚拟机,使用bash脚本配置主节点。在bash脚本中,我们将首先配置repo来安装“kubeadm”、“kubectl”、“kubelet”和“docker”,然后启动并启用“docker”和“kubelet”服务。然后,您需要将“docker cgroupdriver”更改为“systemd”。

为了初始化控制平面节点,我们需要将参数“kubeadm init”与相关参数一起传递,以使其高度可用。最后,您将创建用于存储“kube”配置文件的目录,最后一步是应用法兰绒。

输出如下:

步骤3:在AWS中配置Worker Node

在工作节点中,我们需要为K8s配置repo,用于安装“kubelet”、“kubeadm”、“kubectl”和“docker”。您将启动并启用“kubectl”和“docker”服务。然后将“docker”的“cgroupdriver”修改为“systemd”。现在,我们正在配置IP表并运行“join”令牌命令。

步骤4:在Azure中配置Worker Node

我们为Azure使用了Red Hat Enterprise Linux (RHEL 8)操作系统,为AWS使用了Amazon Linux 2。现在,需要对Azure工作节点进行相同的配置,以便为K8配置回购。以下操作步骤与AWS节点相同。最后需要运行主节点提供的令牌加入命令。

在AWS和Azure工作节点中运行各自的bash脚本后,然后我们需要运行主节点提供的join命令:

kubeadm join VM_PUBLIC_IPv4:6443 -token TOKEN -discovery-token-ca-cert-hash CERT_HASH

最后,在主节点上运行“kubectl get node”命令:

这是最后的输出,我们可以看到第一个节点是Azure工作节点,第二个节点是AWS主节点,第三个节点是AWS工作节点。这样,我们就使用Terraform在AWS和Azure上配置了多节点K8s集群。有关这些过程的更多信息,立即联系我们的专家

关于“利用Terraform实现Kubernetes多云”的思考

留下回复

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

Mohini Rahate

Mohini Rahate是一名熟练的IT专业人士,拥有云平台经验,包括云开发、管理和迁移。她开发创造性的解决方案,利用DevOps流程,并为组织提供工程解决方案。

更多来自作者

订阅每周博客文摘:

报名
关注我们
推特 Linkedin 脸谱网 Youtube Instagram