当前位置: 首页 > 网络应用技术

使用Kubernetes构建ETCD群集和WebUI教程指南

时间:2023-03-08 11:14:43 网络应用技术

  今天,我将使用这篇文章为您带来计算机上的Kubernetes ETCD群集。Kubernetes的功能依赖于ETCD实现,但是它不会用于将其用于我们,因此您需要单独构建它。

  ETCD现在是分布式服务体系结构中的重要组成部分。它是CNCF的监护权。它不仅可以在微服务和kubernates集群中注册和发现,而且可以在配置和共享中分布式关键值。将分布式系统数据的可用性和一致性。

  使用GO语言开发的GRPC服务通常使用ETCD来实现服务发现和注册。此外,一些重要的配置还将存储在ETCD中,以实现配置更新,这些更新不需要通过允许程序监视来侦听键来重新启动应用程序。

  我们不会对为什么使用ETCD的原因介绍太多,现在将其切入该主题。有很多安装etcd的方法。如果要直接在计算机而不是kubernetes上安装ETCD群集,则可以通过该工具。将来,我不必担心将来更改计算机。在Kubernetes中的安装和运行ETCD群集外,还将安装ETCD Web UI服务,使我们可以查询并设置密钥- 通过浏览器的ETCD值。此ETCD Web UI服务也在Kubernetes中运行。我相信,您还必须感受到今天Kubernetes的便利性和知识。

  在开始安装文章中的步骤之前,您需要确保在计算机中安装Minikube单节点Kubernetes群集。我在上一篇文章中详细介绍了安装步骤。我把他放在这里供你参考。

  在笔记本上运行的Minikube-Kubernetes群集

  在Kubernetes中安装ETCD有两种方法。一个是通过状态满集控制器的原始节点,即安排ETCD节点的状态应用程序。需要配置,配置文件和启动命令的这种图像。通过无头服务,POD提供了POD的映射到IP,而NodePort -Type服务将客户端端口公开了cluster.Anno Ana Ana Ana Ana to使用CoreOS提供ETCD操作员直接安装它,并为我们直接处理许多详细信息。

  在这里,我们使用第一种ETCD节点和服务来公开具有状态满集的客户端端口安装方法。

  首先,让我们为POD名称创建一个无头服务,以供IP映射到eTCD群集的POD。

  在此处创建的无名服务是etcd。因为状态满集的pod名称始终是podname-serial号码,群集中的ETCD节点配置的通信模式可以使用“ node ip:2380”以“ podname--”的形式使用序列号。等:2380“。

  2380是ETCD服务器的端口,外界提供的客户端端口为2379。因此,也有一个NodePort -Type服务访问端口2379端口的端口。

  创建这两个服务:kubectl apply -f resources/services.yml -n etcdd

  关于Kubernetes服务的原则和状态填充,可以将各种配置的详细说明转介给我的公共帐户中的先前文章:

  Kubernetes服务学习笔记和实践实践

  在对状态填充的深度理解中,使用kubernetes安排状态申请

  我们通过状态填充安排了3个ETCD节点的POD。创建之后,上面的两个服务将根据POD的标签找到它们,并将节点添加到其服务器 - 端点列表中。

  在POD的开始命令中,您应该配置每个节点点的IP和端口。无头服务的配置可以通过podname-serial编号解析。etcd。相应的事情是:

  但是,为了灵活地,我是指由外国网络开始执行Shell脚本时执行Shell脚本的方法,并根据ETCD簇节点的数量设置动态,以在启动命令中设置PeerSurl。

  状态填充的创建命令是:

  Shell脚本提供了两个环境变量,这些变量无法在容器中获得。

  创建ETCD群集使用的YAML资源声明文件和特定的操作步骤已放置在GitHub上。您可以按照内部的命令进行操作。

  链接地址:https://github.com/kevinyan815/learningkubernetes/tree/master/master/etcd

  测试安装是否成功也很简单。观察荚通常在Kubernetes开始。在我们开始在ETCD中设置钥匙值后,您可以查看是否可以查询它。

  接下来,我们正在谈论如何为ETCD制作Web UI。毕竟,为应用程序准备的某些配置太麻烦了,无法使用命令行进入一个。

  执行此Web UI很长,并且需要更多时间来设置上面的ETCD群集。大约花了两到三天的时间重复尝试。

  Web UI我使用了E3W项目

  项目地址:https://github.com/soyking/e3w

  最初,该项目提供了Docker Mirror和Docker-Compose集装箱的布置,但是我真的不想在计算机上安装这么多工具,我一直想将其转换为在Kubernetes运行的方式。

  查看此项目的源代码后,您将在启动时读取目录中的配置文件。默认情况下,WebUI服务的端口号为8080。借助这两个信息,我们可以通过部署创建Web UI来创建POD.Services,Web UI服务将暴露于对组的外部访问端口。

  至于配置文件,我的想法是将配置放入configmap中,然后将配置项用作文件中的配置项来安装原始配置文件的路径。这样做有两个好处:

  在ConfigMap中的e3w-config.default.ini下方是我们要以文件作为文件安装到容器中的配置项目。

  但是,在此步骤中需要大量时间,这主要是因为将配置项作为文件安装到容器中。除了配置POLUMEMONTS.MOUNTPATH上的完整目录和文件名。

  这是另一个小知识点,subpath的应用程序场景是按音量安装的(您要收听的下一部分将安排,请记住喜欢它)。

  配置文件完成后,请查看POD操作的状态,并且不再是错误。

  上面创建的ETCD群集中的三个基点,E3W的WebUI服务可以正常运行。

  通过WebUI,我们可以查看ETCD群集的运行状态

  更方便地通过UI接口管理键值:

  总体而言,我觉得这种Web UI服务体验还不错,并且有许多功能可用。

  ETCD Web UI服务的YAML定义文件也放在github上,链接地址:github.com/kevinyan815 ...

  今天的文章,我觉得ETCD群集的内容没有新的知识。这是以前提到的知识点的实际应用。当引入ETCD Web UI服务的安装时,我们使用了两个新的知识点。我们可以避免通过将Configmap的配置项作为配置文件在容器中更改Docker Mirror。它还避免了管理主机上的配置文件的麻烦。

  作者:Kevinyan的版权属于作者。