k8s的service、deployment、探针详解

 1.k8s组成图

 2.service和deployment的流量转发图

# Deployment 定义容器端口
apiVersion: apps/v1
kind: Deployment
metadata:name: myapp
spec:template:spec:containers:- name: nginximage: nginxports:- containerPort: 80  # 容器监听 80name: http         # 端口命名(可选)---
# Service 定义端口映射
apiVersion: v1
kind: Service
metadata:name: my-service
spec:ports:- port: 8080         # Service 暴露 8080targetPort: http    # 转发到容器中名为 "http" 的端口(即80)selector:app: myapp

3.pod的生命周期

Pending

- Pod 已被 API Server 接收,但尚未被调度到节点
- 可能原因:资源不足、镜像下载中、节点选择器不匹配

kubectl describe pod web1 查看 Events 中的具体原因(如 Insufficient cpu/memory

Init:0/1

- 初始化容器正在执行(示例中总共有1个初始化容器,当前完成0个)
- 数字格式:完成数/总数

检查初始化容器的日志:
kubectl logs web1 -c <init-container-name>

PodInitializing

- 所有初始化容器已成功完成
- 主容器正在启动(但尚未进入 Ready 状态)

通常短暂(秒级),若长时间卡在此状态,检查主容器的镜像拉取或启动命令问题

Running

- 主容器已成功启动并持续运行
1/1 表示:1个容器已就绪,共1个容器

可通过 kubectl exec 进入容器调试

4.容器的探针执行流程

1. Deployment 的局限性

Deployment 主要解决以下问题:

  • 副本管理:确保指定数量的 Pod 副本运行(通过 replicas 字段)。

  • 滚动更新:支持无缝升级和回滚。

  • 故障恢复:当 Pod 完全崩溃时,Deployment 会重新创建 Pod。

但它无法解决

  • 应用逻辑层面的健康状态:Pod 进程可能正在运行,但应用内部已死锁或无响应。

  • 依赖就绪问题:Pod 已启动,但依赖的数据库/缓存尚未准备好。

  • 启动顺序问题:应用需要较长时间初始化(如 Java 应用启动慢)。

2. 探针的核心作用

探针弥补了 Deployment 的不足,提供细粒度的健康控制:

探针类型解决的问题示例场景
Liveness Probe解决"进程在但服务挂"的问题,触发重启。线程池耗尽、内存泄漏、死锁等故障导致无响应
Readiness Probe解决"临时不可用"的问题,控制流量。要加载大量的配置文件、建立数据库连接池、初始化缓存等操作
Startup Probe保护慢启动应用,避免被 Liveness Probe 误杀。某个模型启动需要较长的时间加载
containers:
- name: myapp# 存活探针(Liveness Probe):检测容器是否处于运行但不可用的状态(如死锁),失败时会重启容器livenessProbe:httpGet:                  # 使用 HTTP GET 请求检测path: /internal/health  # 健康检查接口路径(需由应用实现)port: 8080              # 检测的容器端口failureThreshold: 3       # 连续失败 3 次才判定为故障(默认值)# initialDelaySeconds: 0  # (未显式设置)容器启动后立即开始检测(生产环境建议设置缓冲时间)# periodSeconds: 10       # (未显式设置)默认每10秒检测一次# timeoutSeconds: 1       # (未显式设置)默认检测超时时间为1秒# 就绪探针(Readiness Probe):检测容器是否准备好接收流量,失败时从 Service 负载均衡中移除该 PodreadinessProbe:httpGet:path: /api/ready        # 就绪检查接口路径(可与健康检查分开)port: 8080periodSeconds: 5          # 每 5 秒检测一次(比存活探针更频繁)# successThreshold: 1     # (未显式设置)默认成功1次即标记为就绪# failureThreshold: 3     # (未显式设置)默认连续失败3次才判定为未就绪# 启动探针(Startup Probe):保护慢启动应用,避免在初始化期间被存活探针误杀startupProbe:httpGet:path: /internal/health  # 通常与存活探针使用相同接口port: 8080failureThreshold: 30      # 允许的最大失败次数(30次)periodSeconds: 10         # 每 10 秒检测一次# 总启动时间 = failureThreshold × periodSeconds = 30 × 10 = 300秒(5分钟)# 在此期间,存活探针和就绪探针不会执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90573.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PostgreSQL教程】PostgreSQL中json类型与jsonb类型的区别

博主介绍:✌全网粉丝23W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。 感兴趣的可…

牛客刷题记录01

除2&#xff01; 目录 除2&#xff01; 题目描述&#xff1a; ​编辑 题目解析&#xff1a; 代码实现&#xff1a; 数组中两个字符串的最小距离__牛客网 题目描述&#xff1a; 题目解析&#xff1a; 代码实现&#xff1a; 除2&#xff01; 题目描述&#xff1a; 给一个…

Docker Compose UI远程访问教程:结合贝锐花生壳实现内网穿透

对于很多刚接触Docker的用户来说&#xff0c;命令行操作总带着一丝“劝退感”。尤其是要在Windows上部署服务、开放端口、配置参数时&#xff0c;稍有不慎就容易出错。有没有办法像网页后台一样&#xff0c;用图形界面来管理Docker项目呢&#xff1f;答案是&#xff1a;有&…

HF83311_VB1/HF83311Q_VB1:高性能USB HiFi音频解码器固件技术解析

引言随着高品质音频体验需求的不断增长&#xff0c;音频解码器固件的性能和功能成为决定音频设备品质的关键因素。本文将介绍一款基于XMOS XU316技术的高性能USB HiFi音频解码器固件——HF83311_VB1/HF83311Q_VB1&#xff0c;这是一款专为USB HiFi音频应用设计的软件解决方案。…

[ComfyUI] -入门1-ComfyUI 是什么?比 Stable Diffusion WebUI 强在哪?

ComfyUI 是一个开源的、节点可视化界面,用于构建与执行 Stable Diffusion 图像生成流程。它把复杂的生成过程拆解为许多“节点”(如提示编码、采样器、控制网络等),用户通过连接节点,就能自由编排工作流 。这种设计适合开发者与进阶用户,更便于微调、多分支与复用流程。 …

[python][flask]flask接受get或者post参数

在 Flask 中&#xff0c;可以通过 request 对象来获取客户端通过 GET 或 POST 方法发送的参数。以下是如何在 Flask 中接收 GET 和 POST 参数的详细说明&#xff1a;1. 接收 GET 参数GET 请求的参数通常通过 URL 的查询字符串传递。例如&#xff0c;对于 URL http://example.co…

Creo 模块众多,企业如何按需灵活分配许可证资源?

在数字化设计与智能制造深入发展的当下&#xff0c;企业 CAD/CAE 工具的精细化管理越来越重要。Creo&#xff0c;作为 PTC 旗下一体化 3D CAD 平台&#xff0c;以其模块化、可扩展的产品架构&#xff0c;广泛应用于机械、装备、汽车、航空航天等行业。其丰富的模块库覆盖建模设…

【c++】提升用户体验:问答系统的交互优化实践——关于我用AI编写了一个聊天机器人……(12)

本期依旧使用豆包辅助完成代码。从功能到体验的转变上个版本已经实现了问答系统的核心功能&#xff1a;基于 TF-IDF 算法的问题匹配和回答。它能够读取训练数据&#xff0c;处理用户输入&#xff0c;并返回最相关的答案。但在用户体验方面还有很大提升空间。让我们看看改进版做…

Android UI 控件详解实践

一、UI 开发基础概念&#xff08;初学者必看&#xff09; 在学习具体控件前&#xff0c;先理解以下核心概念&#xff0c;能大幅降低后续学习难度&#xff1a; 1. View 与 ViewGroup 的关系 View&#xff1a;所有 UI 控件的基类&#xff08;如 Button、TextView&#xff09;&…

关于linux运维 出现高频的模块认知

一、Linux 基础核心&#xff08;必掌握&#xff09;核心工具&#xff1a;Shell 脚本、Systemd、用户权限管理、日志分析&#xff08;journalctl、rsyslog&#xff09;企业需求&#xff1a;中小型公司&#xff1a;需独立完成系统部署、故障排查&#xff0c;对脚本开发&#xff0…

手语式映射:Kinova Gen3 力控机械臂自适应控制的研究与应用

近日&#xff0c;美国明尼苏达大学研究团队在《从人手到机械臂&#xff1a;遥操作中运动技能具身化研究》中&#xff0c;成功开发出基于​​Kinova的7轴力控机械臂Gen3的智能控制系统。这项创新性技术通过人工智能算法&#xff0c;实现了人类手臂动作到机械臂运动的精准映射&am…

P5535 【XR-3】小道消息

题目描述 小 X 想探究小道消息传播的速度有多快&#xff0c;于是他做了一个社会实验。 有 n 个人&#xff0c;其中第 i 个人的衣服上有一个数 i1。小 X 发现了一个规律&#xff1a;当一个衣服上的数为 i 的人在某一天知道了一条信息&#xff0c;他会在第二天把这条信息告诉衣…

ChatGPT Agent架构深度解析:OpenAI如何构建统一智能体系统

引言&#xff1a;AI智能体的范式跃迁 2025年7月17日&#xff0c;OpenAI发布的ChatGPT Agent标志着对话式AI从“被动应答”向主动执行的历史性转变。这款融合Operator网页操作与Deep Research信息分析能力的新型智能体&#xff0c;通过统一架构设计实现了复杂任务的端到端自主执…

计算机网络(第八版)— 第2章课后习题参考答案

2-01 物理层要解决哪些问题&#xff1f;物理层的主要特点是什么&#xff1f;答&#xff1a;物理层要解决的主要问题&#xff1a;&#xff08;1&#xff09;物理层要尽可能地屏蔽掉物理设备和传输媒体&#xff0c;通信手段的不同&#xff0c;使数据链路层感觉不到这些差异&#…

Hive【Hive架构及工作原理】

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…

数据管理能力成熟度评估模型(DCMM)详解

数据管理能力成熟度评估模型(DCMM)详解 1. DCMM概述 数据管理能力成熟度评估模型(Data Management Capability Maturity Assessment Model, DCMM)是我国首个数据管理领域的国家标准(GB/T 36073-2018)&#xff0c;由国家工业信息安全发展研究中心牵头制定。该模型为我国企业数据…

学习C++、QT---34(使用QT库实现串口调试助手01:解决串口调试助手的UI)

&#x1f31f; 嗨&#xff0c;我是热爱嵌入式的涛涛同学&#xff01;每日一言别害怕改变&#xff0c;走出舒适圈才能遇见更好的自己。串口调试助手项目好的现在我们来学习串口调试助手的项目&#xff0c;我们依旧是项目引领学习好的我们最后就是要做成一个类似我们市面上的串口…

Dockerfile 文件及指令详解

什么是Dockerfile 文件Dockerfile 文件是用于构建 docker 镜像的脚本文件&#xff0c;由一系列的指令构成。通过 docker build 命令构建镜像时&#xff0c;Dockerfile 文件中的指令会由上到下执行&#xff0c;每条 指令都将会构建出一个镜像层&#xff0c;这就是镜像的分层。因…

主流Java Redis客户端对决:Jedis、Lettuce与Redisson性能特性深度评测

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 持续学习&#xff0c;不断…

刷题日记0725

今日计划5道。2/5晚上被一些事影响了心神不宁&#xff0c;再加上感觉睡前做完时间有点紧&#xff0c;逃避的念头出现了。代码意思不进脑子了。做一道是一道。21. 合并两个有序链表默认构造​​&#xff1a;用于创建​​值为0的孤立节点​​&#xff08;不连接其他节点&#xff…