将现有应用程序转移到云的构想(第 4 部分)
Posted: Mon Jan 27, 2025 5:49 am
如您所知,Pod 是一组一个或多个 Docker 容器。除了上述技术之外,您在使用 Pod 时还应该了解一些功能、工具和选项。我想一一向大家介绍这些,最后向大家展示所介绍的技术之间的联系。
EFK堆栈
EFK 字母背后隐藏着以下技术:
E = Elasticsearch – 存储所有日志条目的对象存储
F = Fluentd – 从节点收集日志并将其传输到 Elasticsearch
K = Kibana – Elasticsearch 的 Web 界面
成功配置此 EFK 堆栈后,您就可以在 OpenShift 中进行跨项目监控和日志聚合工具。该工具在新 Pod 的开发过程中特别重要,因为它收集所有日志 - 包括来自被破坏的 Docker 层的日志。该工具对开发很有帮助,因为 OpenShift 中的终端仅在 pod 仍“活动”时记录信息。 EFK 堆栈为您提供附加信息,甚至来自不可执行或已损坏的 pod。
活性和就绪性测试
liveness 和 readiness 探针是 Kubernetes 的一项功能,用于 cpa电子邮件列表 测试创建的 Pod 的功能。您可以指定应在相应 pod 的 YAML 配置文件中检查的内容。应选择活性测试以确保相应 Pod 的主要功能。一旦不再保证这一点,活性测试就会生效并重新启动 pod。
就绪探针确保 Pod 已准备好工作并可以接受数据。此探针检查 pod 组的每个实例。当 Pod 包含的所有容器都准备好工作时,该 Pod 就被认为“准备就绪”。如果此测试失败,Pod 将在一段时间后缩小规模,因为它将被归类为“未就绪”。
如果我们将活跃度和就绪性测试与一个例子进行比较,整个事情肯定会变得更加清晰:想象一下,你想吃冰淇淋并参观一家冰淇淋店。它必须是开放的(活性测试),并且冰容器中必须有不同类型的冰淇淋可供选择(准备测试)。
在 Pod 创建过程中,活性和就绪性测试不是强制性的。尽管如此,它仍然是确保各个 Pod 功能的重要工具。如果您正在考虑使用此功能,您应该提前考虑您到底想要测试什么。
秘密
“秘密”可以是密码(密钥值)、文件或许可证密钥,Pod 内的应用程序需要许可证密钥 - 无论是运行应用程序还是相互验证服务,这就是我们要解决的问题。在云平台内开发时的一个更大且普遍的问题:到目前为止,许可证通常与硬件或名称绑定,并且仅限于一个实例,但是,当它重新安装在底层硬件或实例上时,这种情况会在云中发生变化。此外,当使用定义的 ReplicaSet(Pod 的多个实例)时,特定的 Pod 名称可能会更改,因为它是由 Kubernetes 初始化和管理的,必须重新考虑解决这种情况的方法,包括使用以下技术。已经针对此类情况进行了设计。因此,您应该提前仔细检查要使用的技术。顺便说一句,存储机密的最佳实践是安装卷。
EFK堆栈
EFK 字母背后隐藏着以下技术:
E = Elasticsearch – 存储所有日志条目的对象存储
F = Fluentd – 从节点收集日志并将其传输到 Elasticsearch
K = Kibana – Elasticsearch 的 Web 界面
成功配置此 EFK 堆栈后,您就可以在 OpenShift 中进行跨项目监控和日志聚合工具。该工具在新 Pod 的开发过程中特别重要,因为它收集所有日志 - 包括来自被破坏的 Docker 层的日志。该工具对开发很有帮助,因为 OpenShift 中的终端仅在 pod 仍“活动”时记录信息。 EFK 堆栈为您提供附加信息,甚至来自不可执行或已损坏的 pod。
活性和就绪性测试
liveness 和 readiness 探针是 Kubernetes 的一项功能,用于 cpa电子邮件列表 测试创建的 Pod 的功能。您可以指定应在相应 pod 的 YAML 配置文件中检查的内容。应选择活性测试以确保相应 Pod 的主要功能。一旦不再保证这一点,活性测试就会生效并重新启动 pod。
就绪探针确保 Pod 已准备好工作并可以接受数据。此探针检查 pod 组的每个实例。当 Pod 包含的所有容器都准备好工作时,该 Pod 就被认为“准备就绪”。如果此测试失败,Pod 将在一段时间后缩小规模,因为它将被归类为“未就绪”。
如果我们将活跃度和就绪性测试与一个例子进行比较,整个事情肯定会变得更加清晰:想象一下,你想吃冰淇淋并参观一家冰淇淋店。它必须是开放的(活性测试),并且冰容器中必须有不同类型的冰淇淋可供选择(准备测试)。
在 Pod 创建过程中,活性和就绪性测试不是强制性的。尽管如此,它仍然是确保各个 Pod 功能的重要工具。如果您正在考虑使用此功能,您应该提前考虑您到底想要测试什么。
秘密
“秘密”可以是密码(密钥值)、文件或许可证密钥,Pod 内的应用程序需要许可证密钥 - 无论是运行应用程序还是相互验证服务,这就是我们要解决的问题。在云平台内开发时的一个更大且普遍的问题:到目前为止,许可证通常与硬件或名称绑定,并且仅限于一个实例,但是,当它重新安装在底层硬件或实例上时,这种情况会在云中发生变化。此外,当使用定义的 ReplicaSet(Pod 的多个实例)时,特定的 Pod 名称可能会更改,因为它是由 Kubernetes 初始化和管理的,必须重新考虑解决这种情况的方法,包括使用以下技术。已经针对此类情况进行了设计。因此,您应该提前仔细检查要使用的技术。顺便说一句,存储机密的最佳实践是安装卷。