EvenChan's Ops.

EvenChan's Ops.

it's better to burn out than to fade away

实用的bash自定义脚本
工作越久 越能发现bash 自动化脚本的实用与好处 bash 用得好的话 在提升工作效率方面说“积小流而成江海”也不为过 前置条件所有命令只在 MacOS 系统上测试使用 同时都是写入 ~/.bash_profile 然后 source ~/.bash_profile 进行更新应用(有些也可能是 .bashrc) 为了省事 我直接将开启 编译 bash_profile 的命令成别名 123BASH_PROFILE_PATH="$HOME/.bash_profile"alias bash.open="open ${BASH_PRO...
利用 Loki/Promtail/Grafana 收集分析日志
Loki/Promtail/Grafana vs EFKLoki Stack 包含三个组件: Loki: 相当于 EFK 中的 ElasticSearch,用于存储和查询日志 Promtail: 相当于 EFK 中的 Filebeat/Fluentd,用于采集和发送日志 Grafana: 相当于 EFK 中的 Kibana,用于 UI 展示 使用 Helm 部署 Loki Stack 到 Kubernetes 参考官方文档: https://github.com/grafana/loki/blob/master/docs/installation/h...
两个助你高效编写 Kubernetes YAML 文件的神技
  我们在编写 Kubernetes 资源清单的时候可能会经常会忘记要创建的资源名称,即使知道了可能也不记得该资源对象有哪些属性可以使用了,特别是对于那些名称很长的资源或者属性,即使死记硬背下来隔一段时间又会忘记了。   比如现在我们要创建一个 validating 的 admission webhook,我们就需要定义一个 ValidatingWebhookConfiguration 的资源对象,但是可能我们不记得它的全名了。这个时候我们可以使用 kubectl api-resources 命令来找到我们需要的 API 资源。找到了正确的资源名称之后,就需要了解如何编写正确的 YAML...
Prometheus 常用 PromQL 语句
PromQL 是 Prometheus 提供的一个函数式的表达式语言,可以使用户实时地查找和聚合时间序列数据。表达式计算结果可以在图表中展示,也可以在 Prometheus表达式浏览器中以表格形式展示,或者作为数据源,以 HTTP API 的方式提供给外部系统使用。PromQL 虽然以 QL 结尾,但是它不是类似 SQL 的语言,因为在时间序列上执行计算类型时,SQL 语言相对缺乏表达能力。而 PromQL 语言表达能力非常丰富,可以使用标签进行任意聚合,还可以使用标签将不同的标签连接到一起进行算术运算操作。内置了时间和数学等很多函数可以使用。 然而 PromQL 也是大部分使用 ...
K8S故障排查指南-Orphaned pod found, but volume paths are still present on disk
问题产生在使用 Kubernetes 时,有时会遇到 Pod 状态一直处理 Terminating。Pod 一直没有正常退出,一般情况会使用命令 kubectl delete pods pod-name --force --grace-period=0 强制删除。 如果按照上面命令强制删除Pod,有一定概率会报 Orphaned pod found - but volume paths are still present on disk 错误。 问题排查上面错误信息可以通过 journalctl -u kubelet -f 或者 tail -f /var/log/messages 命...
Kubernetes故障排查指南-分析容器退出状态码
问题大家在使用 Kubernetes 时,会遇到创建Pod失败,这时会分析什么原因导致创建Pod失败? Pod status 状态解释 [1] CrashLoopBackOff:容器退出,kubelet正在将它重启 InvalidImageName:无法解析镜像名称 ImageInspectError:无法校验镜像 ErrImageNeverPull:策略禁止拉取镜像 ImagePullBackOff:镜像正在重试拉取 RegistryUnavailable:连接不到镜像中心 ErrImagePull:通用的拉取镜像出错 CreateContainerConfigError:不能创建ku...
Prometheus Operator 常用指标
Prometheus Operator 安装完成后会有很多默认的监控指标,一不注意就大量的报警产生,所以我们非常有必要了解下这些常用的监控指标,有部分指标很有可能对于我们自己的业务可有可无,所以可以适当的进行修改,这里我们就来对常用的几个指标进行简单的说明。 1. Kubernetes 资源相关1.1 CPUThrottlingHigh关于 CPU 的 limit 合理性指标。查出最近5分钟,超过25%的 CPU 执行周期受到限制的容器。表达式: 1sum(increase(container_cpu_cfs_throttled_periods_total{container...
Kubernetes 安全风险以及 29 个最佳实践
目前从各方面来看,Kubernetes 都在容器编排市场中占据了主导地位。近日发布的《Kubernetes 和容器安全状况报告》更是指出,87% 的组织正在使用 Kubernetes 管理容器工作负载。 另外,该报告中有一项调查显示,在过去的 12 个月里,有 94% 的组织在其容器环境中遇到过安全问题,其中 69% 的组织检测到错误配置,27% 的组织在运行时遇到安全事件,还有 24% 的组织发现了严重的安全漏洞。 粗略地说,这些安全问题分别对应着容器生命周期的各个阶段。我们应该在构建阶段修复已知的漏洞;在构建、部署阶段修复错误的配置;在运行阶段对威胁进行快速响应。 本文将深入探讨使用...
根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID
背景随着 Kubernetes 越来越火爆,运维人员排查问题难度越来越大。比如我们收到监控报警,某台 Kubernetes Node 节点负载高。通过 top 或者 pidstat 命令获取 Pid,问题来了,这个 Pid 对应那个 Kubernetes Pod 呢? 下面是作者写的两个小工具,可以帮助运维同胞们快速定位问题。 根据 Pid 获取 K8s Pod 名称脚本工具1234567891011121314151617181920212223$ vim pod_name_info.sh#!/usr/bin/env bashCheck_jq() { which jq ...
avatar
EvenChan
Tomorrow Is Another Day