首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

41210

Dapr 可观测性之指标与日志

例如在 Kubernetes 中运行时,Prometheus 可与 Kubernetes API 集成,以查找环境中运行的所有可用 Kubernetes 资源。...运行状况 服务的运行状态提供对其可用性的见解,每个 Dapr sidecar 都会暴露一个运行状况的 API,宿主环境可以使用该 API 来确定 sidecar 的运行状况。...,不会自动调用运行状况 API,不过,可以通过应用程序代码或运行状态监视工具调用 API。...在 Kubernetes 中运行时,Dapr sidecar-injector 会自动将 Kubernetes 配置为使用运行状况 API 来执行存活性探针和就绪探针。...API 端点 port 指定 Dapr 运行状况 API 端口 initialDelaySeconds 指定 Kubernetes 在首次开始探针容器之前需等待的秒数 periodSeconds 指定

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

    K8S deployment可视化故障排查指南

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

    2.6K10

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

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

    4.1K20

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

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

    4K62

    好似一场马拉松:历时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

    58220

    在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.5K21

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

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

    2.7K20

    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.1K30

    服务网格 Service Mesh

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

    24710

    微服务的设计模式

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

    64150

    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方式来检测健康状态的部分关键代码

    39110

    Kubernetes DNS服务简介

    没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。 Kubernetes DNS服务提供什么?...无论处理实际DNS记录的软件如何,两种实现都以类似的方式工作: 创建一个名为将kube-dns的服务以及一个或多个pod。...kube-dns服务从Kubernetes API 侦听服务和端点事件,并根据需要更新其DNS记录。创建,更新或删除Kubernetes服务及其关联的pod时会触发这些事件。...这三个容器是: kube-dns:运行SkyDNS的容器,用于执行DNS查询解析 dnsmasq:一种流行的轻量级DNS解析器和缓存,用于缓存SkyDNS的响应 sidecar:一个边车容器,用于处理指标报告并响应服务的运行状况检查...单个容器解析并缓存DNS查询,响应运行状况检查并提供指标。

    2.3K61

    现代化Kubernetes的应用程序

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

    2.1K86

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

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

    9910

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

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

    4.9K20

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

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

    1.4K10
    领券