K8S运维必备排查手册 一、Pod 相关问题及排查: Pod 无法启动,如何查找原因? 使用 kubectl describe pod [pod_name] -n [namespace_name] 命令查看该 Pod 的状态信息,检查容器的状态和事件信息,判断是否出现问题。 使用 kubectl logs [pod_name] -n [namesp…
Kubernetes VPA(Pod纵向自动扩缩) GPT介绍 Kubernetes VPA(Vertical Pod Autoscaler)是Kubernetes的一个组件,具有以下特点: 自动垂直扩缩容:VPA能够根据Pod的实际资源使用情况自动调整其资源请求和限制。它会分析历史的使用模式,并根据需求动态地调整Pod的资源配置,从而实现资源的自…
kube-prometheus 监控Redis 因为此次是使用K8s部署redis的,因此就采用边车模式(sidecar)新增一个redis-exporter监控容器,如果是集群外的redis,可以参考之前kube-prometheus监控 K8s集群外服务笔记。 操作步骤 部署单机版redis过程省略,此次是sidecar模式部署,redis-d…
kube-prometheus监控Harbor Harbor官方在Harbor v2.2开始提供对相关指标的采集和使用,所以只要在配置文件开启即可。 部署harbor 省略,参考官方网站或者之前笔记即可 开启metric 解压文件后,修改harbor.yml将metric eneabled改为true metric: enabled: true p…
kube-prometheus 监控ElasticSearch步骤 此方法既可以监控集群内的ElasticSearch,也可以监控集群外的ElasticSearch,原理和node-exporter一样 操作步骤 创建es-exporter es-exporter.yaml apiVersion: apps/v1 kind: Deployment …
Prometheus Node Exporter 配置访问认证 设置Basic Auth 使用 htpasswd 来生成 bcrypt 密码 hash,如果没有htpasswd命令请自行安装 #这里我只用它来生成了密码 hash , 没有传递用户名。 htpasswd -nBC 12 '' | tr -d ':\n' 创建一个yaml配置文件,如:…
kube-prometheus监控 K8s 集群外服务 前言 实际生产中,并不是所有组件都在 K8S 集群内, 如: LB、DB、中间件服务等等... 监控 K8s 集群外服务方案 针对此类服务, 有以下监控方案: 通过 Prometheus Operator CR - prometheus spec方式 - 这种方案和 Prometheus 其他…
K8s部署Minio 前言 minio相关技术文档、产品概述可前往官网查看,此处不在做详细介绍。 https://www.minio.org.cn/ 根据minio官网的范本部署一个单节点单磁盘的minio服务端。 https://min.io/docs/minio/kubernetes/upstream/operations/installati…
ELK-分析Nginx日志和Grafana可视化展示 概述 使用ELK收集nginx access日志,利用Grafana做出一套可视化图表,图标效果如下,因生产为内网,因此实际效果会有区别。 官方效果图: Nginx 日志字段配置 log_format aka_logs escape=json '{"@timestamp":"$time_iso8…
ELK-k8s部署ELK集群 系统架构 因测试or生产集群模式都是3master,2node,因此采用基本上2工作节点上部署。 创建StorageClass和Namespace 创建StorageClass sc.yaml kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name…
Pod长时间处于Terminating状态的问题 问题描述 当一个Pod被执行删除操作后,却长时间的处于Terminating状态,发生这样的情况可能是因为: Pod有一个与其关联的finalizer,这个finalizer的任务没有完成。 Pod对中断信号没有响应 当我们执行kubectl get pods命令时,你将会看到这样的信息: NAME…
k8s-pvc删除不掉-状态是Terminating问题记录 问题 删除pvc,执行delete就卡住了,状态也是Terminating 一般删除步骤为:先删pod->删pvc->最后删pv 解决办法 最快速直接删除k8s中的记录,执行:kubectl patch pv pv-name -p '{"metadata":{"finalizers":n…
K8S部署skywalking9.3版本 skywalking集群情况下需要保证用同一数据源,这里我存储方式改为es 部署es集群 省略 安装包等镜像准备 安装包官网下载地址:Documentation | Apache SkyWalking K8S部署 --- apiVersion: v1 kind: ConfigMap metadata: na…
Kubernetes-部署Promehteus监控 本次使用kube-prometheus也就是网上常用的Prometheus Operator快速部署监控,官方文档说明:https://github.com/prometheus-operator/kube-prometheus Prometheus Operator VS kube-promet…
二进制或者kubeadm搭建的k8s部署kube-prometheus解决默认告警问题 二进制或者kubeadm搭建的k8s在kube-promethesu部署完成之后,会出现KubeControllerManagerDown、KubeProxyDown、KubeSchedulerDown、Watchdog四个告警 Watchdog 查看Watch…
Centos7内核过高导致ipset报错 问题 因虚拟机内核为5.19.8-1.el7.elrepo.x86_64,过高导致执行ipset list报错:ipset v7.1: Kernel and userspace incompatible,因为k8s使用ipvs,导致calico一直启动异常,无法正常工作。 解决 将内核版本降低,本次使用5.…
RKE搭建k8s-1.20.15集群之 nginx+keepalive+vip配置 nginx安装和配置,主从服务都需要安装 直接使用了rpm包部署。 nginx配置 vi /etc/nginx/nginx.conf 新增如下信息: stream { # 添加socket转发的代理 upstream socket_proxy { hash $rem…
Kubernetes Deployment 的故障排查可视化指南 将应用部署到 Kubernetes 时通常会使用 Deployment、Service、Ingress,整个应用从部署到正常运行,经历的流程很长。从 kubectl apply YAML 文件,经过 apiserver、controller manager、scheduler、kub…
k8s部署升级内核 k8s部署必须升级内核版本到4.4以上。本次升级是直接升级到5.4 下载rpm包(时间会很长) https://elrepo.org/linux/kernel/el7/x86_64/RPMS/kernel-lt-5.4.238-1.el7.elrepo.x86_64.rpm https://elrepo.org/linux/ke…
RKE部署k8s,无法映射StorageClass本地存储卷的坑 最近部署elk,想着通过StorageClass存储卷这种方式去映射使用本地磁盘,但执行一直报错说无法找到存储: "logging-local-storage-pv-0" : path "/data/elk/master" does not exist 找了一圈,官方提示需要提前设置…