当前位置: 首页 > news >正文

网站开发 价格最新地址

网站开发 价格,最新地址,南京百度做网站的电话,大良网站建设背景 在大型分布式系统中,服务之间调用复杂,链路追踪可以帮助梳理请求流向,现代系统也需要实时监控来快速响应事件以及故障,让我们了解系统瓶颈和高负载路径,从而可以进行优化。 Ingress-nginx 是在 Kubernetes 环境…

背景

在大型分布式系统中,服务之间调用复杂,链路追踪可以帮助梳理请求流向,现代系统也需要实时监控来快速响应事件以及故障,让我们了解系统瓶颈和高负载路径,从而可以进行优化。

Ingress-nginx 是在 Kubernetes 环境中使用的,专门用于管理进入 Kubernetes 集群的外部访问流量。它基于 Nginx,利用其作为反向代理和负载均衡器的能力,但专门配置和优化以适应 Kubernetes 的架构。Ingress Controller 的主要任务是根据预先定义的规则(通过 Kubernetes Ingress 资源设置)将外部请求路由到集群内的特定服务。

前提条件

Ingress-nginx(v1.9.0) 协议使用 Opentracing 协议上报链路数据,各个服务中链路使用 ddtrace 串联上报数据。

本示例的 Ingress-nginx 版本是1.9.6,Service 之间使用 DDtrace sdk 串联上报数据。

1. 安装 Ingress-nginx-Controller

创建一个 ingress-nginx.yaml 文件:

apiVersion: v1
kind: Namespace
metadata:name: ingress-nginx
---
apiVersion: v1
kind: ServiceAccount
metadata:name: ingress-nginxnamespace: ingress-nginx
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: ingress-nginx
rules:- apiGroups:- ""resources:- configmaps- endpoints- nodes- pods- secrets- servicesverbs:- list- watch- get- apiGroups:- "discovery.k8s.io"resources:- endpointslicesverbs:- list- watch- apiGroups:- "coordination.k8s.io"resources:- leasesverbs:- get- watch- list- create- update- apiGroups:- "networking.k8s.io"resources:- ingresses- ingressclassesverbs:- get- list- watch- apiGroups:- "networking.k8s.io"resources:- ingresses/statusverbs:- update- apiGroups:- "extensions"resources:- ingressesverbs:- get- list- watch- apiGroups:- "extensions"resources:- ingresses/statusverbs:- update- apiGroups:- ""resources:- eventsverbs:- create- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: ingress-nginx
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: ingress-nginx
subjects:- kind: ServiceAccountname: ingress-nginxnamespace: ingress-nginx
---
apiVersion: apps/v1
kind: Deployment
metadata:name: ingress-nginx-controllernamespace: ingress-nginx
spec:selector:matchLabels:app: ingress-nginxtemplate:metadata:labels:app: ingress-nginxspec:serviceAccountName: ingress-nginxcontainers:- name: controllerimage: xxxxxxxxxxxxxxx/controller:v1.9.6args:- /nginx-ingress-controller- --publish-service=$(POD_NAMESPACE)/ingress-nginx-controller- --election-id=ingress-controller-leader- --controller-class=k8s.io/ingress-nginx- --ingress-class=nginx- --configmap=ingress-nginx/ingress-nginx-controllerenv:- name: HOST_IPvalueFrom:fieldRef:fieldPath: status.hostIP- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespaceports:- name: httpcontainerPort: 80- name: httpscontainerPort: 443- name: promcontainerPort: 10254
---
apiVersion: v1
kind: Service
metadata:name: ingress-nginx-controllernamespace: ingress-nginx
spec:type: NodePortports:- name: httpport: 80targetPort: 80nodePort: 30796- name: httpsport: 443targetPort: 443nodePort: 30149- name: prometheusport: 10254targetPort: 10254nodePort: 30254selector:app: ingress-nginx
---apiVersion: v1
data:allow-snippet-annotations: "false"enable-opentracing: "true"opentracing-trust-incoming-span: "true"datadog-collector-host: "datakit-service.datakit.svc.cluster.local"datadog-collector-port: "9529"datadog-service-name: "ingress-nginx"datadog-environment: "testing"datadog-operation-name-override: "HTTP $request_method $service_name $uri $opentelemetry_trace_id"datadog-priority-sampling: "false"datadog-sample-rate: "1.0"
kind: ConfigMap
metadata:labels:app.Kubernetes.io/component: controllerapp.Kubernetes.io/instance: ingress-nginxapp.Kubernetes.io/name: ingress-nginxapp.Kubernetes.io/part-of: ingress-nginxapp.Kubernetes.io/version: 1.9.6name: ingress-nginx-controllernamespace: ingress-nginx

应用该配置:

kubectl apply -f ingress-nginx.yaml

1.1 编辑 Ingress-controller ConfigMap 资源

配置 Ingress-nginx 服务 ConfigMap(上述步骤中 Ingress-nginx.yaml 文件已经添加好):

apiVersion: v1
data:allow-snippet-annotations: "false"enable-opentracing: "true"opentracing-trust-incoming-span: "true"datadog-collector-host: "datakit-service.datakit.svc.cluster.local"datadog-collector-port: "9529"datadog-service-name: "ingress-nginx"datadog-environment: "testing"datadog-operation-name-override: "HTTP $request_method $service_name $uri $opentelemetry_trace_id"datadog-priority-sampling: "false"datadog-sample-rate: "1.0"
kind: ConfigMap
metadata:labels:app.Kubernetes.io/component: controllerapp.Kubernetes.io/instance: ingress-nginxapp.Kubernetes.io/name: ingress-nginxapp.Kubernetes.io/part-of: ingress-nginxapp.Kubernetes.io/version: 1.9.6name: ingress-nginx-controllernamespace: ingress-nginx

配置 ConfigMap 后在 Ingress-controller 的 deployment 中增加一行指定 ConfigMap。

--configmap=ingress-nginx/ingress-nginx-controller

kuebctl apply -f ingress-nginx.yaml

1.2 DataKit-operator 注入 DDTrace SDK

1.2.1 开启 DDTrace 采集器

修改 datakit.yaml 文件,在默认开启的采集器配置中,追加 DDtrace。

 - name: ENV_DEFAULT_ENABLED_INPUTSvalue: cpu,disk,diskio,mem,swap,system,hostobject,net,host_processes,container,ddtrace

重启 DataKit。

kubectl apply -f datakit.yaml
1.2.2 安装 DataKit Operator
wget https://static.guance.com/datakit-operator/datakit-operator.yaml

执行安装指令。

kubectl apply -f datakit-operator.yaml

重启业务应用 pod。

kubectl apply -f xxxxx.yaml
1.2.3 Ingress 访问测试

因为 Ingress-nginx-controller Service 的类型是 NodePort,将 80 端口映射到 30796 端口。192.168.0.5 是运行 Ingress-nginx Pod 的节点 IP。

curl -H "Host:service.com" http://192.168.0.5:30796/service-a/api/aService-A received: Hello from Service-B

1.2.4 链路展示

到观测云控制台应用性能检测部分,可以看到 Ingress-nginx 链路数据正常上报。

2. Ingress-nginx 指标

Ingress Nginx Controller 集成了 Prometheus 监控功能,使用 10254 作为其 Prometheus 指标端点的默认端口。通过将 service 的 type 改为 NodePort 并映射 10254 端口,集群外部(例如节点 IP)可以通过 http://:10254/metrics 访问这些指标。

DataKit 使用 Kubernetes Prometheus Discovery 方式采集 Prometheus 暴露的指标。KubernetesPrometheus 是一个只能应用在 Kubernetes 的采集器,它根据自定义配置实现自动发现 Prometheus 服务并进行采集,极大简化了使用过程。

2.1 DataKit 配置

DataKit 操作如下:

1、通过 ConfigMap 方式注入采集器配置来开启采集器开启KubernetesPrometheus 采集器

# datakit.yamlvolumeMounts: # datakit.yaml 中已有该配置,直接搜索即可定位到- mountPath: /usr/local/datakit/conf.d/Kubernetesprometheus/Kubernetesprometheus.confname: datakit-confsubPath: Kubernetesprometheus.conf# 直接在 datakit.yaml 底部追加
---
apiVersion: v1
kind: ConfigMap
metadata:name: datakit-confnamespace: datakit
data:Kubernetesprometheus.conf: |-[inputs.Kubernetesprometheus][[inputs.Kubernetesprometheus.instances]]role       = "pod"#namespaces = ["ingress-nginx"]scheme     = "http"#selector   = "app=ingress-nginx"port       = "10254"path       = "/metrics"node_local = "true"[inputs.Kubernetesprometheus.instances.custom]measurement = "ingress-nginx"[inputs.Kubernetesprometheus.instances.custom.tags]instance         = "__Kubernetes_mate_instance"host             = "__Kubernetes_mate_host"pod_name         = "__Kubernetes_pod_name"pod_namespace    = "__Kubernetes_pod_namespace"

2、 重启 DataKit

2.2 Ingres-nginx- controller 配置

Ingress-nginx-controller 的配置文件 Ingress-nginx.yaml 修改内容如下:

编辑 deploy.yaml 把 service 的 type 设置成 NodePort,并对外暴露 10254 端口。

spec:type: NodePort
......- name: prometheusport: 10254targetPort: prometheus

2.3 指标展示

2.4 仪表板视图

3. Ingress-nginx 日志

Ingress-nginx 日志是由控制台输出,DataKit 可以采集输出到 stdout 的容器日志,使用 datakit.yaml 部署 DataKit 后默认已经开启了 container 采集器。此时会在 DataKit 容器中生成 /usr/local/datakit/conf.d/container/container.conf 配置文件,默认配置是采集除了 pubrepo.jiagouyun.com/datakit/logfwd 开头的镜像外的所有 stdout 日志。访问日志页面即可看到 Ingress-nginx-controller 相关日志。

总结

监控 Ingress-nginx 的链路、指标和日志的作用在于确保 Kubernetes 集群中 Ingress 控制器的稳定性和性能。通过链路追踪,可以了解请求的完整路径和延迟,定位瓶颈;指标监控(如请求速率、错误率、响应时间)有助于评估系统健康状况,及时发现异常。

日志分析则提供详细的事件记录,便于排查问题和审计安全。通过这些手段,可以优化流量管理,提升用户体验,同时保障服务的高可用性和安全性,是现代微服务架构中不可或缺的运维实践。

http://www.15wanjia.com/news/5243.html

相关文章:

  • 东莞门户网站建设报价表搜索引擎收录
  • 怎么做网站劫持企业文化ppt
  • 胶州网站建设公司百度店面定位怎么申请
  • 网站开发net源码江阴企业网站制作
  • 自己可以做网站服务器seo 专业
  • 扬州鼎盛开发建设有限公司网站100个电商平台
  • 网站做app安全吗深圳全网信息流推广公司
  • 福田网站建设龙岗网站建设龙岗网站建设龙岗网站建设百度关键词怎么刷上去
  • 2022年楼市最新政策优化落实新十条措施
  • 公司动态网站模板下载百度公司注册地址在哪里
  • 做兼职一般去哪个网站好seo论坛
  • 电商网站开发流程代码东莞全网推广
  • 襄阳住房和城乡建设网站win10优化大师好用吗
  • 南宁做网站价格制作网站需要什么
  • 淘宝上做网站不靠谱网站服务器查询
  • 小程序自己做网站seo优化博客
  • 胜芳哪里做网站公司seo
  • 世界上做的最好的前端网站官方网站怎么注册
  • 濮阳做网站多少钱谷歌seo建站
  • 南通给公司做网站的今天疫情最新消息
  • 有专门做网站的公司吗推广公司属于什么公司
  • wordpress 安装包金融网站推广圳seo公司
  • 党建网站怎么做百度推广靠谱吗
  • 织梦移动网站模板郑州网络推广哪家口碑好
  • 重庆蜡像制作优化公司
  • 韦恩图在线制作网站seo快速上排名
  • 公司网站建设工作总结营销推广技巧
  • c mvc 大型网站开发公司怎么建立自己的网站
  • 虾皮网站有的做吗有什么引流客源的软件
  • 计算机编程是做网站如何推广一个新的app