可观测性-你的应用健康吗?|学习笔记

简介: 快速学习可观测性-你的应用健康吗?

开发者学堂课程【Kubernetes 入门 可观测性-你的应用健康吗?】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/51/detail/1017


可观测性-你的应用健康吗?


内容介绍

一、需求来源

二、Liveness 与 Readiness

三、问题诊断

四、应用远程调试

五、课后总结与实践

 

一、需求来源

当我们迁移应用到 Kubernetes 后,要如何保障应用健康稳定?提高应用的可观测性,提高应用的可恢复能力

应用的状态可以从被实时观测:

1、应用健康状态

2、应用资源使用

3、应用实时日志

4、应用出现问题需要降低影响范围,进行问题调试、诊断

5、应用出现问题可以通过自愈机制恢复

 

二、Liveness 与 Readiness

1、应用健康状态–初识 Liveness 与 Readiness

当应用的 Pod 已经运行起来,如何让 Kubernetes 检查应用的状态,判断是否已经准备好对外提供服务?

2、应用健康状态–使用方式

l 探测方式

httpGet 通过发送 http GET 请求返回200-399状态码则表明容器健康。

l Exec  

通过执行命令来检查服务是否正常,命令返回值为0则表示容器健康。

tcpSocket  通过容器的 IP 和 Port 执行 TCP 检查,如果能够建立 TCP 连接则表明容器健康。

l 探测结果

Success Container 通过了检查

Failure Container 未通过检查

Unknown 未能执行检查,不采取任何动作

l 重启策略

Always 总是重启

OnFailure 失败才重启

Never 永远不重启

3、应用健康状态–Pod Probe Spec

l 其他参数

initialDelaySeconds Pod 启动后延迟多久进行检查,单位:秒

periodSeconds 检查的间隔时间,默认为10秒,单位:秒 timeoutSeconds 探测的超时时间,默认为1秒,单位:秒

successThreshold 探测失败后再次判断成功的阀值,默认为1,单位:次

failureThreshold 探测失败的重试次数,默认为3,单位:次

 

三、问题诊断

1、应用故障排查–了解状态机制

image.png

2、应用故障排查–常见应用异常

l Pod 停留在 Pending

Pending 表示调度器没有介入,可以通过 kubectl describe pod,查看事件排查,通常和资源使用相关。

l Pod 停留在 waiting

一般表示 Pod 的镜像没有正常的拉取,通常可能和私有镜像拉取,镜像地址不存在,镜像公网拉取相关。

l Pod 不断被拉起且可以看到 crashing

通常表示 Pod 已经完成调度并启动,但是启动失败,通常是由于配置、权限造成,需查看 Pod 日志。Pod 处在 Running 但是没有正常工作

通常是由于部分字段拼写错误造成的,可以通过校验部署来排查,例如: kubectl apply—validate -f pod.yaml

l Service 无法正常工作

在排除网络插件自身的问题外,最可能的是label配置有问题,可以通过查看 endpoint 的方式进行检查。

 

四、应用远程调试

l 应用远程调试一Pod 远程调试

当我们把一个应用部署到集群中发现问题需要快速进行验证修改时,可以通过远程调试的方式进行修改、验证。

l 进入一个正在运行的 Pod

kubectl exec -it pod-name /bin/bash

l 进入一个正在运行包含多容器的 Pod

kubectl exec -it pod-name -c container-name/bin/bash

1、应用远程调试-Service 远程调试

l 当集群中应用依赖的应用需要本地调试时:

可以使用 Telepresence 将本地的应用代理到集群中的一个 Service 上。

Telepresence —swap-deployment $DEPLOYMENT_NAME

l 当本地开发的应用需要调用集群中的服务时:

可以使用 Port一Forward 将远程的应用代理到本地的端口上。

kubectl port-forward svclapp -n app-namespace

 

五、课后总结与实践

l 应用状态探针与自动恢复

1.Liveness Probe 保活探针

2. Readiness Probe 就绪探针

l 应用问题诊断的三个步骤

1. 通过 describe 查看状态,通过状态判断排查方向。

2. 查看对象的 event 事件,获取更详细的信息。

3. 查看 Pod 的日志确定应用自身的情况。

l 应用远程调试

1. 代理本地应用到集群一Telepresence

2. 代理远程应用到本地-Port一Forward

相关文章
|
14天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23496 11
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
2天前
|
人工智能 BI 持续交付
Claude Code 深度适配 DeepSeek V4-Pro 实测:全场景通关与真实体验报告
在 AI 编程工具日趋主流的今天,Claude Code 凭借强大的任务执行、工具调用与工程化能力,成为开发者与自动化运维的核心效率工具。但随着原生模型账号稳定性问题频发,寻找一套兼容、稳定、能力在线的替代方案变得尤为重要。DeepSeek V4-Pro 作为新一代高性能大模型,提供了完整兼容 Claude 协议的 API 接口,只需简单配置即可无缝驱动 Claude Code,且在任务执行、工具调用、复杂流程处理上表现极为稳定。
944 0
|
7天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
1828 3
|
17天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
5569 21
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
19天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
6652 16
|
7天前
|
前端开发 API 内存技术
对比claude code等编程cli工具与deepseek v4的适配情况
DeepSeek V4发布后,多家编程工具因未适配其强制要求的`reasoning_content`字段而报错。本文对比Claude Code、GitHub Copilot、Langcli、OpenCode及DeepSeek-TUI等主流工具的兼容性:Claude Code需按官方方式配置;Langcli表现最佳,开箱即用且无报错;Copilot与OpenCode暂未修复问题;DeepSeek-TUI尚处早期阶段。
1198 3
对比claude code等编程cli工具与deepseek v4的适配情况
|
7天前
|
人工智能 前端开发 测试技术
Qoder Skills 完全指南:从零开始,让 AI 按你的标准执行
文章内容基于作者个人技术实践与独立思考,旨在分享经验,仅代表个人观点。