k8sCrd开发学习-client_go连接k8s(minikube)
client go远程连接k8s(minikube)复制配置文件到本地 先将minikube拷贝到本地(或者只拷贝.kube\config需要的文件) 1cp -r /home/docker_user/.minikube /root/ 拷贝.kube文件夹 1cp -r /home/docker_user/.kube /root/ 添加ssh端口转发本地肯定是访问不了的,所以需要在本地试验环境添加远程主机的端口转发。 windows端口转发,打开windows的cmd,输入命令: 12345# 表示在本地启动18443端口,与远程主机root@192.168.56.101建议连接,端口转发到远程主机192.168.49.2:8443上去, 执行完窗口会hold住# 192.168.49.2是k8s节点ip, 使用`minikube node list`查看C:\Users\a94391> ssh -L 18443:192.168.49.2:8443 -N -f docker_user@192.168.56.101docker_user@192.168.56...
k8s Crd开发学习-安装k8s(minikube)
安装 docker使用官方安装脚本自动安装docker12curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsystemctl enable docker 配置镜像加速12345678mkdir -p /etc/dockertee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://0vlzmqf0.mirror.aliyuncs.com"]}EOFsystemctl daemon-reloadsystemctl restart docker 安装 Minikube12curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64install minikube-linux-amd64 /usr/local/bin/min...
prometheus推送告警记录
AlertManager 中的几个容易混淆的参数首先在 Prometheus 中有两个全局的参数 scrape_interval 和 evaluation_interval 。 scrape_interval 参数表示的是 Prometheus 从各种 metrics 接口抓取指标数据的时间间隔 evaluation_interval 参数表示的是 Prometheus 对报警规则进行评估计算的时间间隔。 group_by 为了避免连续发送类似的告警通知,可以将相关告警分到同一组中进行告警。分组机制可以将详细的告警信息合并成一个通知,在某些情况下,比如由于系统宕机导致大量的告警被同时触发,在这种情况下分组机制可以将这些被触发的告警合并为一个告警通知,避免一次性接受大量的告警通知: 1group_by: ['alertname', 'job'] group_wait 当一个新的报警分组被创建后,需要等待至少 group_wait 时间来初始化告警。 这样实际上就缓冲了从 Prometheus 发送到 AlertManager 的告警,...
分析Alertmanager发送告警消息的逻辑
摘自: https://blog.csdn.net/qq_35952638/article/details/108077895 本文使用 Prometheus v2.18.1 ,Alertmanager v0.20.0本文主要分析 Alertmanager 什么情况下会发送告警消息,避免对用户造成消息轰炸。 Alertmanager 的一般工作流程 Prometheus 每隔 interval 时长执行一次 alert rule 。如果执行结果包含 n 个时间序列,则认为存在 n 个警报,通过 HTTP 通信发送 alerting 状态的消息给 Alertmanager 。 Alertmanager 收到之后, 先根据 route 判断它属于哪个 group 、应该发送给哪个 receiver 。 再判断该 group 当前是否处于冷却阶段、是否被 Silence 静音、是否被 Inhibit 抑制。如果都没有,则立即发送告警消息给用户。 如果 Prometheus 再次执行 alert rule 时,发现执行结果为空,则认为警报已解决,立即产生 resolved 状态的...
记录容器化后的java项目问题处理
背景: 生产环境, 项目cpu一直报警 进入容器查看cpu占用高的进程top 查看占用cpu高的线程top -Hp 90 这里得到占用资源高的线程, 假如是93 获取线程id的16进制printf "%x\n" 93 这里得到的5d 对于只有jre的镜像, 需要安装对应版本jdk然后打印堆栈信息打印堆栈信息: ./jstack -l 90 > jstack.log 查找到对应线程的信息: cat jstack.log |grep "nid=0x5d" 查看gc格式: jstat -gcutil pid interval(ms) n次 jstat -gcutil 90 5000 10 123456789101112131415161718192021222324S0 S1 E O M CCS YGC YGCT FGC FGCT GCT0.00 0.00 99.64 100.00 94.39 92.31 285 14.940 474 329.694 344.6350.00 0.00 98.78 99.99 94.40 92.31 2...
关于rancher的证书轮换策略
参考: https://docs.rancher.cn/docs/rancher2/cluster-admin/certificate-rotation/_index/#%E7%8B%AC%E7%AB%8B%E5%AE%B9%E5%99%A8-rancher-server-%E8%AF%81%E4%B9%A6%E6%9B%B4%E6%96%B0 集群部署略,参考官网 Docker Rancher Server 证书更新 证书未过期 证书未过期时,rancher server 可以正常运行。升级到 Rancher v2.0.14+ 、v2.1.9+、v2.2.2+ 后会自动检查证书有效期,如果发现证书即将过期,将会自动生成新的证书。所以独立容器运行的 Rancher Server,只需在证书过期前把 rancher 版本升级到支持自动更新 ssl 证书的版本即可,无需做其他操作。 证书已过期 如果证书已过期,那么 rancher server 无法正常运行。即使升级到 Rancher v2.0.14+ 、v2.1.9+、v2.2.2+ 也可能会提示证书错误。如果出现这种情况,可通...
rancher的角色权限分配实践
rancher分为3种角色, 各自适用范围也不同 全局 集群 项目 项目下又包括了多个namespace 先使用管理员登陆创建1个可以管理全局的账户和角色的用户(全局管理员账户) 注: 此用户仅用来管理用户和角色, admin权限太大, 之后不再使用它进行登陆用户名: UserManager拥有角色:Manage RolesManage Users 退出管理员, 然后使用全局管理员账户创建一个集群管理员账户(集群管理员账户)全局权限: Standard User 用户名: ClusterManager 用ClusterManager身份登陆并进行创建集群.略 创建集群或项目时,Rancher 会自动将创建者分配为所有者。分配了所有者角色的用户可以在集群或项目中给其他用户分配角色。 然后使用UserManager为各集群(一个ClusterManager账户下可以创建多个集群, 例如release/production)创建用户 项目管理员ProjectsAdmin 全局权限: Standard User 创建和管理项目, 查看监控等, 可以经由下一级通知...
prometheus,k8s学习网站记录
rancher官方文档 一个不错的Prometheus中文网站 上面网站的一个备用地址 AlertManager 何时报警 Alertmanager重复/缺失告警现象探究及两个关键参数group_wait和group_interval的释义 Kubernetes集群监控指标项详解 K8s about pod resource monitoring(记录些常用的Prometheus规则expr) 最近5分钟,pod 磁盘io利用/写, 大于100的1sum(rate(container_fs_writes_bytes_total{pod!=""}[5m])) by (pod,namespace,instance) > 100 最近30分钟pod重启1changes(kube_pod_container_status_restarts_total[30m])>0 Ready状态(配合for参数, 比如for=5m, Ready持续5分钟,说明启动有问题)1kube_pod_container_status_r...
使用AlertManager进行告警管理
rancher官方文档 一个不错的Prometheus中文网站 Prometheus典型的告警规则1234567891011121314151617181920groups: - name: wechat-rule-group rules: - alert: wechat-rule annotations: summary: |- ==========begin=========== [报警名称]:{{ $labels.alertname }} [报警实例]:{{ $labels.instance }} [报警命名空间]:{{ $labels.namespace }} [报警pod]:{{ $labels.pod }} [报警阈值]:{...
结合Rancher使用监控系统
rancher官方文档 一个不错的Prometheus中文网站 Grafana安装文档 注: 本文Rancher版本为rancher2.6.x 一定要记得在hosts文件编辑这些集群的host, 使这些台机器可以通过hostname互通 安装Charts 配置详细配置:https://github.com/prometheus-community/helm-charts/blob/main/charts/kube-prometheus-stack/values.yaml 配置Prometheus、Alerting以及Grafana 默认Prometheus的admin api是不开启的,如果希望通过api方式操作Prometheus数据,则需要打开admin api 可以配置各项【grafana/prometheus/alertmanager】的enable参数来控制是否安装此工作负载 已知问题有一个已知问题,K3s 群集需要更多的默认内存。如果你在 K3s 集群上启用监控,rancher lab建议将prometheus.prometheus...
