首页
学习
活动
专区
圈层
工具
发布

探索使用 Kubernetes 扩展专用游戏服务器:第1部分-容器化和部署

通过将软件容器和 Kubernetes 结合使用,我们可以建立一个坚实的基础,从而基本上可以大规模运行任何类型的软件 - 从部署(deployment),运行状况检查(health checking),...因此,我为游戏服务器创建了一个 “unity” 用户,并将游戏服务器复制到其主目录中。在构建过程中,我创建了专用游戏服务器的压缩包,并且将其构建为可以在 Linux 操作系统上运行。...为了解决这个问题,我尽量让事情简单化:在创建我的 pod 时,我传递可以用作两个环境变量的端口范围,并让 Unity 专用服务器在该范围中随机选择一个值,直到它成功打开一个套接字。...为此,Paddle Soccer 游戏服务器管理器具有一个简单的/ register REST 端点,该端点由 Redis 支持用于存储,该端点具有Kubernetes 提供的 Pod 名称(我们通过环境变量进行传递...游戏服务器管理器调用 Kubernetes API,以告知它在其中包含专用游戏服务器的集群中启动Pod。 专用游戏服务器启动。 专用游戏服务器向游戏服务器管理器进行注册,并告知其开始在哪个端口上。

2.9K20

现代化Kubernetes的应用程序

实施健康检查 在Kubernetes模型中,可以依赖集群控制平面来修复损坏的应用程序或服务。它通过检查应用程序Pod的运行状况,重新启动或重新安排不健康或无响应的容器来实现此目的。...要将应用程序运行状况正确地传递给Kubernetes控制平面,您应该实现自定义应用程序运行状况检查,以指示应用程序何时运行并准备好接收流量。...第一种类型的运行状况检查称为准备情况调查,并让Kubernetes知道您的应用程序何时准备好接收流量。第二种类型的检查称为活动探测,让Kubernetes知道您的应用程序何时运行正常。...在计划和考虑将应用程序容纳在Kubernetes中并将其运行时,您应该分配计划时间来定义特定应用程序的“健康”和“就绪”含义,以及实现和测试端点和/或检查命令的开发时间。...对于快速操作和维护修复,如刷新队列或清除缓存,您应该实现适当的API端点,以便您可以执行这些操作,而无需重新启动容器或exec进入运行容器并执行一系列命令。

2.4K86
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    健康检查 - 从Readiness和Liveness 探针说起

    书签: 如果微服务的url endpoint(如: /seats)可以清晰表明该微服务的状态, 就用它! 更通用的做法, 是配置一个专用的健康检查的URL....successThreshold - 探针在开始失败后必须报告成功的次数,以便重置探测过程。 initialDelaySeconds参数必须设置为应开始运行状况检查探针的适当值。...由于 /health 探针与其他资源消耗较多的 URL 在同一应用程序服务器平台上运行,初始延迟必须足够长,以确保运行状况检查 URL 处于活动状态。...应谨慎对待periodSeconds参数,因为这个配置的是 Kubernetes 平台探测pod以查看其是否成功运行的频率。...(类似于踢出F5的pool) 检测方式: 用mysql命令登录并执行SELECT 1 SQL 启动延迟5s 超时时间为1s 高级配置 对于一些更为复杂的健康检查需求, 我们可以通过编写自定义检查脚本来实现

    4.5K20

    浅析Kubernetes Pod重启策略和健康检查

    Kubernetes强大的功能可使应用程序的容器保持连续运行,还可以根据需求的增长自动扩展系统。除此之外在Pod或容器出现故障时Kubernetes还可以让系统实现"自愈"。...需要注意的是:虽然是重启,但背后其实是Kubernetes用重新创建的容器替换了旧容器。 Pod怎么实现自我修复?...探针处理程序 为了使健康检查能够对Pod的运行状况进行诊断,kubelet会调用容器中为探针实现的处理程序,这些处理程序分为三大类: Exec:在容器内执行命令。...通过在同一个Pod中使用这两种健康检查,可以确保流量不会到达尚未准备就绪的Pod,并且确保Pod在发生故障时能重新启动。 良好的应用程序设计应同时记录足够的信息,尤其是在引发异常时。...它还应公开必要的API端点,这些端点将会传达重要的运行状况和状态指标,以供监控系统(如Prometheus)使用。

    5.1K20

    分布式系统恐怖故事:Kubernetes 深度健康检查

    在这篇第一篇文章中,我将分享一个错误,我已经在多个公司看到过这个错误,可能导致连锁故障。我称之为 Kubernetes 深度健康检查。...Kubernetes 困境: 存活、就绪和深度健康检查陷阱的故事 Kubernetes 是一个容器编排平台。...我们应该将一些不需要如此多依赖的工作流程剥离到另一个服务中,以进一步隔离未来的故障吗? 总结 根据我的对话,我预计这篇博文会产生极大分歧。...有些人会认为我是一个白痴,因为我曾经实现过深度运行状况检查,因为这肯定会导致连锁故障。其他人会在他们的 Slack 频道中分享这篇文章,并询问“我们的就绪检查做错了吗?”...我的 Kubernetes 故事的重要启示不是要避免深度健康检查,而是要小心使用它们。平衡至关重要;我们需要权衡彻底的健康检查的好处与潜在的广泛系统影响。

    21110

    K8S deployment可视化故障排查指南

    这是一个示意图,可帮助您调试Kubernetes中的deployemnt, ?...您是否应该为每个服务创建一个新端口,以免它们冲突? 标签名称重要吗?所有的都应该一样吗? 在进行调试之前,让我们回顾一下这三个组件如何相互链接。 让我们从Deployment和Service开始。...解决Kubernetes Deployment问题的3个步骤 在深入研究异常的Deployment之前,必须有一个明确定义的Kubernetes工作方式的思维模型。...如果"Endpoints"部分为空,则有两种解释: 您没有运行带有正确标签的Pod(提示:您应检查自己是否在正确的命名空间中) 您selector在服务标签上有错字 如果您看到端点列表,但仍然无法访问您的应用程序...由于正在使用的Ingress控制器是集群中的第三方组件,因此有不同的调试技术,具体取决于Ingress控制器的类型。 但是在深入研究Ingress专用工具之前,您可以检查一些简单的方法。

    2.9K10

    如何在 Kubernetes 上部署高可用应用程序

    因此,探测器只是进行调查、检查和验证。Kubernetes 探针也做同样的事情。 Kubernetes 中的探针主要分为三种类型;准备情况、活跃度和启动情况。...出于示例目的,最基本的实现是 API。我们配置一个运行状况检查端点,该端点应返回 HTTP 状态代码 200。探针通过间歇性地向容器发送 HTTP 请求并返回响应来检查这些端点。...以下清单是运行状况检查路径为“ /health ”的应用程序的示例,探针配置为检查应用程序是否运行状况良好并准备好接收流量 apiVersion: v1 kind: Deployment metadata...Kubernetes 部署中的配置是请求和限制配置。请求是应用程序工作或运行所需的最低限度,限制是应用程序应使用的最高限度,不得超过该限度。...ClusterAutoscaler受到许多托管 Kubernetes 提供商的支持。当 Pod 无法调度时,它只是根据节点池(需要新节点时应创建的虚拟机的大小)配置添加一个新节点。

    65710

    在Kubernetes中简化多集群

    多集群控制平面 专用 API 服务器 官方的 Kubernetes Cluster Federation(又名KubeFed[2])就是这种方法的一个例子,它“允许你从一个托管集群中的一组 API 协调多个...为此,KubeFed 用一种新的语义扩展了传统的 Kubernetes API,该语义表示应该为特定的部署选择哪些集群(通过“覆盖”和“集群选择器”)。...基于 Virtual Kubelet 的方法 Virtual Kubelet(VK)[6]是一个“Kubernetes Kubelet[7]实现,它伪装成 Kubelet,将 Kubernetes 连接到其他...Skupper[12]是一个七层业务的多集群互联服务。Skupper 通过定义一个特别的虚拟网络基底,实现了 Kubernetes 集群之间的安全通信。...当一个服务被暴露时,Skupper 会创建特定的端点,使它们在整个集群上可用。 服务网格 服务网格框架是专用的基础架构层,用于简化基于微服务的应用程序的管理和配置。

    2.7K21

    Spring Boot Actuator-Java快速入门教程

    与其他 API 相反,用于创建custom运行状况终结点的抽象保持不变。但是,添加了一个新的接口,反应式health指示器,以实现反应式health检查。...让我们看一个简单的custom反应式运行状况检查: @Component public class DownstreamServiceHealthIndicator implements ReactiveHealthIndicator.../运行状况终结点 /运行状况终结点用于检查正在运行的应用程序的运行状况或状态。...默认情况下,未经授权的用户只有在通过 HTTP 访问时才能看到状态信息: { "status" : "UP" } 此运行状况信息是从实现应用程序上下文中配置的运行状况指示器接口的所有 Bean...创建一个新的端点 除了使用 Spring Boot 提供的现有端点之外,我们还可以创建一个全新的端点。

    31410

    如何从Serilog请求日志记录中排除健康检查终结点

    当您有一个访问比较频繁的端点时,这非常有用,因为为每个请求都进行记录几乎没有什么价值。 健康检查访问较频繁 这篇文章的动机来自我们在Kubernetes中运行应用程序时看到的行为。...您可以设置一个简单,没有任何返回值的健康检查,该健康检查对每个请求返回200 OK的响应,以使Kubernetes知道您的应用程序没有崩溃。...由于我没有配置任何运行状况检查200,因此只要应用程序正在运行,端点将始终返回响应: 在上面的示例中,向/healthz发送请求将调用运行状况检查终结点。...由于我没有配置任何运行的健康检查,因此只要应用程序正在运行,端点将始终返回200响应: ? 这里存在的唯一的问题是Kubernetes将非常频繁的调用这个终结点。...当然,确切的频率由您决定,但每10秒检查一次应该是很常见的。但是如果你想让Kubernetes可以快速重启有故障的Pod的话,您就需要一个相对较高的频率了。

    1.7K10

    Spring Boot与云原生:Kubernetes探针集成深度解析

    统一观测体系:健康状态数据自动接入Prometheus监控 声明式配置:通过注解驱动替代硬编码检查逻辑 集成架构的核心设计 在技术实现层面,这种集成体现为三个关键映射关系: 协议转换层 Kubernetes...Probes映射到Actuator端点的实现 在Spring Boot与Kubernetes的深度集成中,探针(Probes)与Actuator端点的映射机制是实现云原生健康检查的关键桥梁。...自Spring Boot 2.3版本起,Actuator模块通过两个专用端点与之对应: /actuator/health/liveness 对应 livenessProbe /actuator/health.../health/readiness 提供状态变更的metrics指标(可通过Prometheus采集) 对应的Kubernetes配置应该为: livenessProbe: httpGet:...HTTP探针适用于: - 需要检查特定API端点响应 - 依赖HTTP状态码判断健康状态 - 需要携带自定义Header的场景 TCP探针适用于: - 非HTTP协议的服务(如gRPC) - 只需确认端口可连接

    11010

    大规模分析您的 Prometheus 指标: Prometheus + Elasticsearch

    实现对容器和 Kubernetes 的全局、可扩展和安全的 Prometheus 监测。...对于帮助理解系统运行状况,指标当然发挥着极其重要的作用,但要想系统实现可观测性,指标也只是一部分内容而已。考虑可观测性时,用户通常会尝试将其他类型的运行数据(例如,日志和跟踪数据)与指标一同囊括进来。...每个集群会运行一个或多个 Prometheus 实例,通过这些实例便可以查看节点、Pod、服务和端点的运行状况。缺了点什么吗?一个 Prometheus 实例可以覆盖您环境中的一个资源子集。...Prometheus 联合 API 提取业已采集的指标,即可开始。...随时了解 Prometheus 服务器的运行状况Elastic Stack 还能让您随时了解所有 Prometheus 实例的运行状况。

    4.2K62

    Kubernetes 1.24:gRPC 容器探针功能进入 Beta 阶段

    对于大多数应用程序来说,这些检查就足够了。如果你的应用程序提供了用于运行状况(或准备就绪)检查的 gRPC 端点,则很容易重新调整 exec 探针的用途,将其用于 gRPC 运行状况检查。...有一个常用工具可以实现这一点,该工具创建[2]于 2018 年 8 月 21 日,并于2018 年 9 月 19 日[3]首次发布。 这种 gRPC 应用健康检查的方法非常受欢迎。...这很好地表明了该工具的受欢迎程度,以及对其本地支持的需求。 Kubernetes v1.23 引入了一个 alpha 质量的实现,原生支持使用 gRPC 查询工作负载状态。...Initialized True Ready True ContainersReady True PodScheduled True 现在,让我们将运行状况检查端点状态更改为...上这种新的内置 gRPC 健康探测,使通过 gRPC 实现健康检查,比依赖于使用单独的 exec 探针的旧方法容易得多。

    1.2K30

    服务网格 Service Mesh

    服务网格提供了一个集中的专用基础设施层,用于处理分布式应用程序中复杂的服务到服务通信。 服务发现 服务网格提供自动服务发现,可以减少管理服务端点的运维负担。...它通过加密流量来帮助确保数据的机密性和完整性。您还可以强制执行授权策略,以控制哪些服务访问特定端点或执行特定操作。 监控 服务网格提供全面的监控和可观测性功能,可深入了解服务的运行状况、性能和行为。...Istio 是一个开源服务网格项目,设计为主要与 Kubernetes 配合使用。Kubernetes 是一款开源容器编排平台,用于大规模部署和管理容器化应用程序。...Istio 的控制面板组件本身作为 Kubernetes 工作负载运行。它使用 Kubernetes 容器组(一组共享一个 IP 地址的紧密耦合的容器)作为 sidecar 代理设计的基础。...Istio 的第 7 层代理在与主服务相同的网络环境中作为另一个容器运行。从这个位置,它可以拦截、检查和操作所有通过容器组的网络流量。但是,主容器不需要任何改动,甚至不需要知道这种情况正在发生。

    37010

    微服务的设计模式

    解决 为了解决上述问题,必须为每个微服务设计一个数据库。它必须仅对该服务专用。只能由微服务API访问它。其他服务无法直接访问它。...解决 每个服务都需要有一个端点,可用于检查应用程序的运行状况,例如/health。该API应该可以检查主机的状态,与其他服务/基础结构的连接以及任何特定的逻辑。...Spring Boot Actuator确实实现了/health端点,并且该实现也可以自定义。...对于开发,质量检查,UAT,产品等每个环境,端点URL或某如些配置属性可能会有所不同。这些属性中的任何一个更改都可能需要重新构建和重新部署服务。我们何避免对配置更改进行代码修改?...消费者或路由器应查询注册表,并找出服务的位置。注册表还需要对生产者服务进行运行状况检查,以确保只能通过服务使用服务的工作实例。服务发现有两种类型:客户端和服务器端。

    72150

    【kubernetes篇】面向初学者的kubernetes-ingress教程

    (我展示了 nodePort 只是为了显示流量)在同一个实现中,使用 Ingress,负载均衡器和 kubernetes 服务端点之间有一个反向代理层(Ingress controller实现)。...这是 Ingress 实现的一个非常高级的视图。在后面的部分中,我们将看到涵盖所有关键概念的详细架构。在 Kubernetes Ingress 之前?...最重要的是,外部流量不会到达Ingress API,而是会到达直接使用负载均衡器配置的Ingress controller服务端点。现在,让我们了解一下 Ingress controller。...Nginx controller Pod 中的文件是一个 lua 模板,可以与 Kubernetes Ingress API 通信,并实时获取流量路由的最新值。...Nginx controller与 Kubernetes Ingress API 通信,以检查是否为流量路由创建了任何规则。

    28600

    好似一场马拉松:历时5月,Kubernetes1.19正式发布 !Ingress迎来GA

    存储容量跟踪是一个新的alpha特性,通过为CSI驱动程序添加API来报告存储容量,并在为pod选择节点时在Kubernetes调度器中使用该信息。...支持Persistent Volume Claims支持的所有功能,例如存储容量跟踪、快照和恢复以及卷大小调整 4 CSI卷运行状况监控 本次Kubernetes 1.19发布了CSI运行状况监测的alpha...该特性可以作为Kubernetes程序化检测和解决单卷运行状况问题的基础。...在没有完全替代的情况下放弃它是不可行的做法。它是一个重要的API,并捕获了一系列重要的用例。...Request API 无需Docker构建 Kubelet 重大变化: 节点拓扑管理器 新的端点API 将Kubernetes支持窗口延长到一年 其他重要特性: 运行多个Scheduling Profiles

    61820

    05. Springboot admin集成Actuator(一)

    Actuator通过HTTP端点和JMX(Java Management Extensions)提供了一系列功能,包括查看应用程序的运行状况、度量指标、日志、追踪和应用信息。...2、Actuator监控端点 Actuator提供了一系列内置的端点(EndPoints)用于查看应用程序的运行状况、运行情况、指标等信息。...其中主要提供了如下一些端点: 2.1、健康检查 HTTP端点:`/actuator/health`。提供了应用程序的健康状态,包括磁盘空间、数据库连接等信息。健康检查对于监控和负载均衡非常有用。...这个也是我项目中用的比较多的,当时有一个需求是汇总所有的API请求,检测对方的API健康状态,并告警提醒,就是自定义了health。...: endpoint: health: show-details: always 6、附录 贴出之前我对第三方API地址进行拨测的,实现health方式来检测健康状态的部分关键代码

    64910
    领券