2024-11-7 myluzh Kubernetes
0x00 关于ECK 对于 Elasticsearch 应用,官方也推出了基于 Kubernetes Operator 的应用:Elastic Cloud on Kubernetes (ECK),用户可使用该产品在 Kubernetes 上配置、管理和运行 Elasticsearch 集群。 0x01 在K8S中部署ECK 由于我这边k8s版本是1.20,所以兼容ECK的版本是2.4.0 root@k8s-master:~# kubectl create -f https://download.elastic.co/downloads/eck/2.4.0/crds.yaml customresourcedefinition.apiextensions.k8s.io/agents.agent.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/apmservers.apm.k8s.elastic.co created customresourcedefinition.apiextensions.k8s.io/beats.beat.k8s.e...标签: k8s 集群 部署 k8s部署 apply elasticsearch elasticsearch7 es ECK Elasticsearch Operator es cluster
2024-10-29 myluzh Kubernetes
0x01 前言 在使用blackbox-exporter进行黑盒监控地址的时候,请求的URL被WAF拦截下来了,原因是blackbox-exporter请求时候UA太像扫描器了,"User-Agent: Go-http-client/1.1",导致被waf拦截了请直接返回403,实际状态码应该是200。 可以修改blackbox-exporter的请求UA,然后在waf上放行UA白名单。 0x02 修改blackbox-exporter请求的UA 1. 找到配置文件 blackbox-exporter 的配置文件通常名为 config.yml,可以在安装目录下找到。该文件定义了不同的探测模块及其相关参数。 2. 编辑配置文件 使用文本编辑器打开 config.yml 文件。您需要找到或添加 modules 部分,然后在其中定义 http_2xx 模块的配置。 3. 修改 http_2xx 模块的配置 在 http_2xx 模块中,您可以添加或修改 http 请求的 headers 字段,以设置自定义的 User-Agent。以下是修改后的示例配置: "modules": "http_2xx": "http"...2024-10-28 myluzh Kubernetes
0x00 前言 白盒监控:主要通过应用程序内部的指标(如 Prometheus 的 /metrics 接口)监测系统性能,提供深入的技术洞察。 黑盒监控:主要通过 HTTP 请求、TCP 测试等外部监控手段获取数据,关注系统外部行为和功能,往往不需要访问应用程序的内部结构。 --- 通过kube-prometheus方式部署,默认就有blackbox-exporter,如果没有的话手动部署下。 0x01 手动部署 blackbox_exporter github地址:https://github.com/prometheus/blackbox_exporter 下面的 blackbox.yml 也可以直接下载下来导入 # curl -o blackbox.yml https://raw.githubusercontent.com/prometheus/blackbox_exporter/master/blackbox.yml # kubectl get configmap blackbox-exporter-config --namespace=monitoring apiVersion: apps/v1 kind: De...2024-10-24 myluzh Kubernetes
0x01 关于 etcd 双向认证及数据获取 etcd 通常通过 SSL 双向认证来确保通信的安全性。因此,使用 curl 请求 etcd 的 metrics 数据时,需要提供客户端证书和私钥,否则会出现认证错误。 直接通过 curl -k https://172.30.233.87:2379/metrics 来获取 etcd 的 metrics 数据时,可能会遇到以下错误: curl: (35) error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate 这是因为 etcd 启用了 SSL 双向认证,服务端要求客户端提供有效的证书和私钥进行身份验证。 解决方案: 在 curl 请求中携带正确的客户端证书、私钥以及(可选)CA 根证书。具体步骤如下: curl --cert /etc/kubernetes/ssl/kube-etcd-172-30-233-87.pem \ --key /etc/kubernetes/ssl/kube-etcd-172-30-233-87-key.pem \ --cacer...2024-10-23 myluzh Kubernetes
在云原生环境中,Prometheus 常用于监控应用状态。应用程序是否自带 /metrics 接口决定了监控方式的不同。 情况一:应用自带 /metrics 接口 对于一些云原生应用(如 Kubernetes、etcd 等),通常自带 /metrics 接口,可以直接暴露监控数据。Prometheus 通过配置 ServiceMonitor,直接调用应用的 /metrics 接口来收集监控数据,配置过程简单,直接与应用对接即可。 情况二:应用没有 /metrics 接口 对于传统应用或不支持 Prometheus 的应用,需要借助 Exporter。Exporter 作为中间层,从应用中收集监控数据,转换为 Prometheus 能识别的格式,并通过自身的 /metrics 接口暴露数据。例如,node-exporter 用于监控系统资源,mysql-exporter 用于监控 MySQL 数据库。Prometheus 通过监控 Exporter 的 /metrics 接口,间接实现对这些应用的监控。2024-10-23 myluzh Kubernetes
0x01 部署yaml apiVersion: apps/v1 kind: Deployment metadata: name: nexus3 namespace: base-ops spec: replicas: 1 selector: matchLabels: workload.user.cattle.io/workloadselector: deployment-base-ops-nexus3 strategy: type: Recreate template: metadata: labels: workload.user.cattle.io/workloadselector: deployment-base-ops-nexus3 spec: containers: - name: nexus3 image: sonatype/nexus3:3.37.3 imagePullPolicy: IfNotPresent ...