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

网站转发代码桐乡市建设局官方网站

网站转发代码,桐乡市建设局官方网站,公司微网站建设价格,北京定制公交网站目录 1 监控解决方案2 prometheus2.1 容器监控2.2 节点监控2.3 资源对象监控2.4 metrics--server 3 prometheus-operator vs kube-prometheus vs helm3.1 prometheus-operator3.2 kube-prometheus3.3 helm 参考文档 1 监控解决方案 从实现方案来说#xff0c;监控分为3个部分… 目录 1 监控解决方案2 prometheus2.1 容器监控2.2 节点监控2.3 资源对象监控2.4 metrics--server 3 prometheus-operator vs kube-prometheus vs helm3.1 prometheus-operator3.2 kube-prometheus3.3 helm 参考文档 1 监控解决方案 从实现方案来说监控分为3个部分数据采集、数据存储、数据分析。 数据采集是指获取采集对象的指标数据而数据数据可以分成2种模式推和拉。推就是agent主动将数据进行上报拉就是服务端主动从agent拉取数据。 数据存储是指将采集的指标数据存储起来供后续的数据查询和分析现在通常用时序数据库存储监控数据。 数据分析就是对数据的合理性进行判断从而发现异常的数据用于发现现网的问题。 2 prometheus 在容器领域提到监控就不得不提到prometheus。prometheus是一个开源的解决方案而且可以很方便的进行扩展。 prometheus的体系中也包含上面提到的三个部分 exporter负责数据采集prometheus数据存储和数据分析alertmanager告警推送 具体的工作流程是exporter提供采集数据的接口但自身并不存储数据只是获取采集对象的数据然后格式化成指标数据prometheus会定期从exporter拉取数据然后将数据存储起来prometheus自身也是个时序数据库之后prometheus会定期执行用户配置的告警规则如果满足配置的规则条件就会调用alertmanager发送告警alertmanager会对告警进行聚合以及执行一些抑制规则同时alertmanager会负责将告警发送到具体的告警通道例如短信、钉钉等也可以开发alerthook程序对接用户自己的告警接口。 因此使用prometheus监控除了需要部署prometheus以外重要的是需要采集的对象以及告警规则。 2.1 容器监控 容器的监控依赖cAdvisor组件该组件会获取容器维度的指标数据包含容器的CPU、文件读写、内存、网络、线程等指标当前该组件已经集成到kubelet中可以直接访问/api/v1/nodes/{node_name}/proxy/metrics/cadvisor接口查看某个节点上的容器指标数据。 2.2 节点监控 当需要监控Node的指标时需要安装node_exporter apiVersion: apps/v1 kind: DaemonSet metadata:name: node-exporterlabels:name: node-exporterk8s-app: node-exporter spec:selector:matchLabels:name: node-exportertemplate:metadata:labels:name: node-exporterapp: node-exporterspec:hostPID: truehostIPC: truehostNetwork: truecontainers:- name: node-exporterimage: prom/node-exporter:v0.16.0ports:- containerPort: 9100resources:requests:cpu: 0.15securityContext:privileged: trueargs:- --path.procfs- /host/proc- --path.sysfs- /host/sys- --collector.filesystem.ignored-mount-points- ^/(sys|proc|dev|host|etc)($|/)volumeMounts:- name: devmountPath: /host/dev- name: procmountPath: /host/proc- name: sysmountPath: /host/sys- name: rootfsmountPath: /rootfstolerations:- key: node-role.kubernetes.io/masteroperator: Existseffect: NoSchedulevolumes:- name: prochostPath:path: /proc- name: devhostPath:path: /dev- name: syshostPath:path: /sys- name: rootfshostPath:path: /安装完成后可以用ss -lntp | grep node_exporter查看node_exporter监听的端口默认是9100可以用curl 127.0.0.1:9100/metrics命令查看相应的节点的指标数据。 2.3 资源对象监控 涉及到k8s的资源监控可以使用kube-state-metrics获取集群资源指标。 rbac.yaml apiVersion: v1 kind: ServiceAccount metadata:name: kube-state-metricsnamespace: kube-systemlabels:kubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcile---apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: kube-state-metricslabels:kubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcile rules: - apiGroups: []resources:- configmaps- secrets- nodes- pods- services- resourcequotas- replicationcontrollers- limitranges- persistentvolumeclaims- persistentvolumes- namespaces- endpointsverbs: [list, watch] - apiGroups: [apps]resources:- statefulsets- daemonsets- deployments- replicasetsverbs: [list, watch] - apiGroups: [batch]resources:- cronjobs- jobsverbs: [list, watch] - apiGroups: [autoscaling]resources:- horizontalpodautoscalersverbs: [list, watch] - apiGroups: [networking.k8s.io, extensions]resources:- ingresses verbs: [list, watch] - apiGroups: [storage.k8s.io]resources:- storageclasses verbs: [list, watch] - apiGroups: [certificates.k8s.io]resources:- certificatesigningrequestsverbs: [list, watch] - apiGroups: [policy]resources:- poddisruptionbudgets verbs: [list, watch]---apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata:name: kube-state-metrics-resizernamespace: kube-systemlabels:kubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcile rules: - apiGroups: []resources:- podsverbs: [get] - apiGroups: [extensions,apps]resources:- deploymentsresourceNames: [kube-state-metrics]verbs: [get, update]---apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: kube-state-metricslabels:kubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcile roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kube-state-metrics subjects: - kind: ServiceAccountname: kube-state-metricsnamespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata:name: kube-state-metricsnamespace: kube-systemlabels:kubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcile roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: kube-state-metrics-resizer subjects: - kind: ServiceAccountname: kube-state-metricsnamespace: kube-systemdeployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: kube-state-metricsnamespace: kube-systemlabels:k8s-app: kube-state-metricskubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcileversion: v1.3.0 spec:selector:matchLabels:k8s-app: kube-state-metricsversion: v1.3.0replicas: 1template:metadata:labels:k8s-app: kube-state-metricsversion: v1.3.0annotations:scheduler.alpha.kubernetes.io/critical-pod: spec:priorityClassName: system-cluster-criticalserviceAccountName: kube-state-metricscontainers:- name: kube-state-metricsimage: lizhenliang/kube-state-metrics:v1.8.0 ports:- name: http-metricscontainerPort: 8080- name: telemetrycontainerPort: 8081readinessProbe:httpGet:path: /healthzport: 8080initialDelaySeconds: 5timeoutSeconds: 5- name: addon-resizerimage: lizhenliang/addon-resizer:1.8.6resources:limits:cpu: 100mmemory: 30Mirequests:cpu: 100mmemory: 30Mienv:- name: MY_POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: MY_POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacevolumeMounts:- name: config-volumemountPath: /etc/configcommand:- /pod_nanny- --config-dir/etc/config- --containerkube-state-metrics- --cpu100m- --extra-cpu1m- --memory100Mi- --extra-memory2Mi- --threshold5- --deploymentkube-state-metricsvolumes:- name: config-volumeconfigMap:name: kube-state-metrics-config---apiVersion: v1 kind: ConfigMap metadata:name: kube-state-metrics-confignamespace: kube-systemlabels:k8s-app: kube-state-metricskubernetes.io/cluster-service: trueaddonmanager.kubernetes.io/mode: Reconcile data:NannyConfiguration: |-apiVersion: nannyconfig/v1alpha1kind: NannyConfiguration2.4 metrics–server 以上的三个采集器分别采集容器、节点、资源对象的指标数据指标都比较多并且节点和资源对象还需要安装额外的组件。 但是在k8s中还存在这样一种场景 只需要节点和Pod的简单指标数据例如cpu和内存不需要太多数据访问k8s apiserver的接口就可以访问这些数据只需要访问近期的数据就行不需要保存太长时间 因此在k8s上加入了metrics-server这样一个插件它定时访问kubelet的接口获取Node和Pod当前的cpu和memory并保存到内存当其他功能调用k8s apiserver的接口获取指标数据时metrcis-server会直接读取内存中的数据返回。 对于minikube可以通过minikube addons enable metrics-server命令启用对于k8s就需要额外安装了。 当前有三种场景会访问该接口 kubectl top根据Node和Pod的cpu和memory使用率进行排序HPA根据Pod的cpu和memory使用率进行扩缩容kube-scheduler在调度的优选阶段会考虑Node的cpu和memory使用率 以上讲解的基本都是数据采集它们的关系如下 3 prometheus-operator vs kube-prometheus vs helm 使用prometheus进行监控可以直接使用prometheus的镜像部署将配置文件放到configmap使用pv存储数据但是这样做的话需要考虑prometheus上下游的组件及其容灾因此在kubernetes环境下提供了operator的部署方式。 operator就是CRDController通过将prometheus中的配置抽象成kubernetes的CRD当用户使用CRD进行部署时Controller就会自动将用户提交的信息转换成prometheus上下游的配置同时在信息变更时自动执行更新。 部署prometheus-operator有三种方式 prometheus-operator只包含CRDoperator(bundle.yaml)但是并没有部署prometheus、exporter等组件用户需要自行创建对应的资源进行部署。kube-prometheus除了上面的CRD和operator还会将整个监控体系都部署例如kube-state-metrics、node-exporter、prometheus、alertmanager。helm跟kube-prometheus一样会部署整个监控体系只是使用了helm工具。 3.1 prometheus-operator 从prometheus-operator release页面下载bundle.yaml。 执行上面的bundle.yaml后会创建2部分资源 CRDkubectl get crd | grep monitoringoperatorkubectl -n monitoring get pods CRD包含以下的资源 AlertManager部署alertmanagerPodMonitor选择需要监控的PodPrometheus部署prometheusPrometheusRule创建prometheus的监控规则ServiceMonitor选择需要监控的服务ThanosRuler 而operator的作用就是让这些资源生效当这些资源变更或者相关资源变更时执行相应的变更逻辑。 所以如果只部署上面的yaml文件本身并没有部署任何跟监控相关的组件只是让k8s中多了一些资源的类型但是这些资源的变化需要operator控制器去执行一些操作例如如果需要部署prometheus就需要创建Prometheus资源在创建这些后prometheus-operator就会去部署prometheus如果需要创建监控规则就需要创建PrometheusRule资源prometheus-operator就会将这些规则加入到prometheus的规则配置文件中并让其生效。 3.2 kube-prometheus git clone https://github.com/prometheus-operator/kube-prometheus kubectl apply --server-side -f manifests/setup # 创建namespace和CRD kubectl apply -f manifests/上面的manifests目录中包含prometheus-operator以及整个监控体系的所有组件包含 The Prometheus OperatorHighly available Prometheus高可用的PrometheusHighly available Alertmanager高可用的AlertManagerPrometheus node-exporterPrometheus Adapter for Kubernetes Metrics APIskube-state-metricsGrafana 3.3 helm helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm install [RELEASE_NAME] prometheus-community/kube-prometheus-stack使用上面的命令可以直接安装整个监控体系。 参考文档 使用Operator部署Prometheus监控k8s集群从kubectl top看K8S监控
http://www.w-s-a.com/news/808540/

相关文章:

  • 自助建设网站软件网站导航网站可以做吗
  • 网站模板放哪长沙网站优化分析
  • 泉州网站建设价钱网站模板素材
  • 南通网站托管js建设网站外网
  • 成都企业网站公司wordpress内页模板
  • 58同城建网站怎么做wordpress评论显示数字ip
  • 免费制作论坛网站模板免费下载北京网站制作长沙
  • 旅游网网站建设网站如何自己做seo
  • 如何验证网站所有权做二手家具回收哪个网站好
  • 做哪种网站赚钱项目开发流程
  • 网站建设和网站网络推广网站建设软件定制
  • 站长工具网址查询全球云邮登陆网站
  • 宁波 住房和建设局网站网上发帖推广
  • 平面设计在线网站工业设计公司有哪些
  • 福州网站设计外包公司网站做的比较好
  • 如何设计网站首页网站开发综合技能实训心得体会
  • 用织梦做的网站好用吗w网站链接如何做脚注
  • 东莞做网站公司在哪哪里有网站培训的
  • 做宣传 为什么要做网站那重庆网站建设公司在线联系
  • 网站设计制作售价多少钱制作图片的软件是
  • 网站验证码目录简单带数据库的网站模版
  • 制作网站用c#做前台网站建设专题的意义
  • 广西建设职业技术学院教育网站牡丹区建设局网站
  • 网站后台怎么用ftp打开上海外贸进出口有限公司
  • 淘宝建设网站的意义大学生做那个视频网站
  • 如何提高你的网站的粘性建设银行流水网站
  • 微信h5在哪个网站做泰州专业网站制作公司
  • 现在.net做网站的多吗建设工程造价网
  • pc访问手机网站跳转违法网站开发人员
  • 网站前端做报名框wordpress 启动慢