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

本文涉及的产品
可观测链路 OpenTelemetry 版,每月50GB免费额度
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
可观测监控 Prometheus 版,每月50GB免费额度
简介: 快速学习可观测性-你的应用健康吗?

开发者学堂课程【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

相关文章
|
6月前
|
运维 监控 Cloud Native
SysOM 的可观测和智能监控实践
随着云原生的发展,给运维带来了什么挑战?
|
6月前
|
机器学习/深度学习 传感器 算法
构建未来:基于机器学习的智能健康监测系统
【5月更文挑战第12天】 在数字医疗领域,智能健康监测系统的出现正在革新我们对健康管理和疾病预防的理解。本文将探讨一个基于机器学习技术的智能健康监测系统的设计与实现,它能够实时跟踪个体的健康指标并通过预测性分析提前警示潜在的健康问题。通过融合生物统计学、数据挖掘及模式识别等先进技术,该系统旨在为个人用户提供量身定制的健康建议,并为医疗专业人员提供决策支持。文章首先概述了系统框架和关键技术,随后详细讨论了机器学习模型的建立过程以及如何优化这些模型以提高预测的准确性。最后,我们通过实验结果验证了系统的有效性,并讨论了未来的发展方向。
|
SQL 数据采集 运维
「应用实时监控 ARMS 」斩获「根因分析技术」先进级认证
「应用实时监控 ARMS 」斩获「根因分析技术」先进级认证
|
监控 Kubernetes 前端开发
使用SigNoz搭建可观测系统
使用SigNoz搭建可观测系统
|
人工智能 运维 监控
《阿里云可观测最佳实践》——8.伟东云教育
《阿里云可观测最佳实践》——8.伟东云教育
140 0
|
SQL 人工智能 机器人
《阿里云可观测最佳实践》——1.深绘智能(上)
《阿里云可观测最佳实践》——1.深绘智能(上)
250 0
|
弹性计算 Kubernetes 监控
《阿里云可观测最佳实践》——1.深绘智能(下)
《阿里云可观测最佳实践》——1.深绘智能(下)
269 0
|
Arthas 缓存 Prometheus
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践1:如何基于OpenTemeletry和ARMS实现全链路的追踪和应用诊断【下】
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践1:如何基于OpenTemeletry和ARMS实现全链路的追踪和应用诊断【下】
501 0
|
监控 Java
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践1:如何基于OpenTemeletry和ARMS实现全链路的追踪和应用诊断【上】
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践1:如何基于OpenTemeletry和ARMS实现全链路的追踪和应用诊断【上】
434 0
|
弹性计算 Prometheus 监控
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践2:如何基于Prometheus和Grafana做统一的监控和告警
《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践2:如何基于Prometheus和Grafana做统一的监控和告警
259 0
下一篇
无影云桌面