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

合肥公司建设网站首页网络营销是营销的网络化吗

合肥公司建设网站首页,网络营销是营销的网络化吗,wordpress 优惠券,wordpress 是免费的嘛Kuberentes是一款开源的容器编排产品#xff0c;由Google开发后发布到社区#xff0c;并在2015年将该项目捐献给了云原生基金会#xff08;Cloud Native Computing Foundation#xff09;。从2014年第一个版本发布以来#xff0c;Kubernetes便迅速获得开源社区的追捧…Kuberentes是一款开源的容器编排产品由Google开发后发布到社区并在2015年将该项目捐献给了云原生基金会Cloud Native Computing Foundation。从2014年第一个版本发布以来Kubernetes便迅速获得开源社区的追捧包括RedHat、VMware在内的很多知名企业都加入到开发和推广的阵营。目前Kubernets已经成为发展最快、市场占有率最高的容器编排产品。 Promehteus是一款近年来非常火热的容器监控系统它使用go语言开发设计思路来源于Google的Borgmom(一个监控容器平台的系统。2016年云原生基金会将其纳入麾下成为该基金会继Kubernetes后第二大开源项目。因此Prometheus天然具有对容器的适配性可非常方便的满足容器的监控需求目前已成为监控Kubernetes的主要工具。 本文将介绍如何通过Prometheus监控Kubernetes集群状态的方案限于篇幅原因会分为上、下两个篇章进行。对于Kubernetes的技术细节本文不做讲解不熟悉的朋友可先自行查阅相关资料。 1、安装Prometheus Prometheus支持基于Kubernetes的服务发现通过kubernetes_sd_config 配置允许从 Kubernetes 的API 检索抓取目标并始终与集群状态保持同步。 我们需要在被监控集群上安装Prometheus本文将使用YAML文件的方式进行部署。 1.1 创建命名空间 创建namespace.yml文件内容如下 apiVersion: v1 kind: Namespace metadata:name: monitoring执行该yml文件 kubectl apply -f namespace.yaml查看命名空间已成功创建 1.2 创建RBAC规则 RBAC为Kubernetes的授权认证方式包括 ServiceAccount、ClusterRole、ClusterRoleBinding三类YAML文件。该规则用于授权Prometheus获取资源信息。 创建prometheus-rbac.yml文件内容如下 apiVersion: v1 kind: ServiceAccount metadata:name: prometheusnamespace: monitoring --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: prometheus rules: - apiGroups: []resources: [nodes, nodes/proxy, services, endpoints, pods]verbs: [get, list, watch] - apiGroups: []resources: [configmaps]verbs: [get] - nonResourceURLs: [/metrics]verbs: [get]--- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: prometheus roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus subjects: - kind: ServiceAccountname: prometheusnamespace: monitoring执行该yml文件 [rootmaster prometheus]# kubectl apply -f prometheus-rbac.yaml serviceaccount/prometheus unchanged clusterrole.rbac.authorization.k8s.io/prometheus created clusterrolebinding.rbac.authorization.k8s.io/prometheus created查看RBAC是否创建成功 [rootmaster prometheus]# kubectl get sa -n monitoring NAME SECRETS AGE default 1 10m prometheus 1 89s [rootmaster prometheus]# kubectl get ClusterRole prometheus NAME CREATED AT prometheus 2023-03-23T03:01:36Z [rootmaster prometheus]# kubectl get ClusterRoleBinding prometheus -n monitoring NAME ROLE AGE prometheus ClusterRole/prometheus 103s1.3 创建Configmap 我们使用Configmap来管理Prometheus的配置文件此处先使用默认的配置用于启动Prometheus后面再根据需要进行修改。 创建prometheus-config.yml文件内容如下 apiVersion: v1 kind: ConfigMap metadata:name: prometheus-confignamespace: monitoring data:prometheus.yml: |global:scrape_interval: 15s evaluation_interval: 15sscrape_configs:- job_name: prometheusstatic_configs:- targets: [localhost:9090]执行该yml文件 [rootmaster prometheus]# kubectl apply -f prometheus-config.yaml configmap/prometheus-config created查看configmap资源是否生成 kubectl get configmap -n monitoring1.4 部署Deployment 在完成Configmap资源创建后我们可以开始部署Prometheus的实例了。此处我们使用Deployment来部署Prometheus并通过Volume挂载的方式将Prometheus的配置文件挂载到Pod内。另外在正式环境中建议通过PVC的方式将收集的监控数据挂载到外部存储避免因Pod被删除而造成数据丢失。 创建prometheus-deployment.yml文件内容如下 apiVersion: apps/v1 kind: Deployment metadata:name: prometheusnamespace: monitoringlabels:app: prometheus spec:strategy:type: Recreatereplicas: 1selector:matchLabels:app: prometheustemplate:metadata:labels:app: prometheusspec:containers:- image: prom/prometheus:v2.2.1name: prometheuscommand:- prometheusargs:- --config.file/etc/prometheus/config/prometheus.yml- --storage.tsdb.path/data- --web.enable-lifecyclesecurityContext:runAsUser: 0ports:- containerPort: 9090protocol: TCPvolumeMounts:- mountPath: /etc/prometheus/config/name: config- name: prometheus-datamountPath: /data/serviceAccountName: prometheusvolumes:- name: configconfigMap:name: prometheus-config- name: prometheus-datahostPath:path: /datatype: Directory执行yaml文件 [rootmaster prometheus]# kubectl apply -f prometheus-deployment.yaml deployment.apps/prometheus created查看Prometheus实例状态 [rootmaster prometheus]# kubectl get deploy -n monitoring NAME READY UP-TO-DATE AVAILABLE AGE prometheus 1/1 1 1 46s [rootmaster prometheus]# kubectl get pods -n monitoring NAME READY STATUS RESTARTS AGE prometheus-65df6bbcc7-mmv5f 1/1 Running 0 54s1.5 创建Service 创建Prometheus的Service用于集群内外部访问。默认情况下Service只能在集群内访问如果希望开放给集群外部可选方案有Ingress、NodePort、ExternalIPs、LoadBalancer等几种。此处使用NodePort方式。 创建prometheus-service.yml内容如下 apiVersion: v1 kind: Service metadata:labels:app: prometheusname: prometheusnamespace: monitoring spec:ports:- name: webport: 9090protocol: TCPtargetPort: 9090selector:app: prometheustype: NodePort执行该yml文件 [rootmaster prometheus]# kubectl apply -f prometheus-service.yaml service/prometheus created查看Service状态Service已创建完成其中Cluster-ip用于集群内部访问External-ip则是给到集群外部访问 [rootmaster prometheus]# kubectl get service -n monitoring NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE prometheus NodePort 10.111.199.135 none 9090:30322/TCP 50s1.6 访问Prometheus 浏览器打开http://$ip:9090可看到Prometheus已部署完成。 查看Targets目标当前除了监控Prometheus自身实例还未有其他Kubernetes资源。 2、基于Kubernetes的服务发现 在监控Kubernetes集群的过程中我们需要使用到针对Kubernetes的服务发现功能这个在Prometheus的原生功能中已经支持。 以下几种类型的资源角色可被配置为服务发现的目标对于集群的监控即是通过有效利用这些角色及标签来实现。 2.1 node角色 该node 角色发现用于检索集群中的节点目标信息其地址默认为节点kubelet的HTTP访问端口。目标地址的默认顺序为NodeInternalIPNodeExternalIPNodeLegacyHostIP和NodeHostName中的第一个现有地址。 该角色可获取到的元数据标签如下 __meta_kubernetes_node_name节点对象的名称。__meta_kubernetes_node_label节点对象所定义的各个label__meta_kubernetes_node_labelpresent节点对象所定义的各个labelvalue固定为true。__meta_kubernetes_node_annotation来自节点对象的每个注释__meta_kubernetes_node_annotationpresent来自节点对象的每个注释value固定为true。__meta_kubernetes_node_addressaddress_type每个节点地址类型的第一个地址如果存在 此外节点的instance标签将被设置为从API服务检索到的节点名称。 2.2 service角色 该角色发现用于检索集群中每个service目标并且将该服务开放的端口做为目标端口。该地址将设置为服务的Kubernetes DNS名称以及相应的服务端口。 该角色可获取到的元数据标签如下 __meta_kubernetes_namespace: 服务对象的名称空间。__meta_kubernetes_service_annotation:服务对象的每个注释。__meta_kubernetes_service_annotationpresent: 服务对象的每个注释,value固定为true。__meta_kubernetes_service_cluster_ip: 服务对象的集群IP。__meta_kubernetes_service_external_name: 服务的DNS名称。__meta_kubernetes_service_label: 服务对象中的每个label。__meta_kubernetes_service_labelpresent: 服务对象中的每个labelvalue固定为true。__meta_kubernetes_service_name: 服务对象的名称。__meta_kubernetes_service_port_name: 目标服务端口的名称。__meta_kubernetes_service_port_protocol: 目标服务端口的协议。__meta_kubernetes_service_type: 服务的类型。 2.3 Pod角色 该pod角色发现用于发现所有Pod并将其容器做为目标访问对于容器的每个声明的端口将生成一个目标。如果容器没有指定的端口则会为每个容器创建无端口目标。 该角色可获取到的元数据标签如下 __meta_kubernetes_namespace: pod对象的命名空间。 __meta_kubernetes_pod_name: pod对象的名称。 __meta_kubernetes_pod_ip: pod对象的pod IP。 _meta_kubernetes_pod_label: 来自pod对象的每个标签。 _meta_kubernetes_pod_labelpresent: 来自pod对象的每个标签value固定为true。 _meta_kubernetes_pod_annotation: 来自pod对象的每个注释。 _meta_kubernetes_pod_annotationpresent: 来自pod对象的每个注释value固定为true。 __meta_kubernetes_pod_container_init: 如果容器是初始化容器则value为true。 __meta_kubernetes_pod_container_name: 目标地址指向的容器的名称。 __meta_kubernetes_pod_container_port_name: 容器端口的名称。 __meta_kubernetes_pod_container_port_number: 容器端口号。 __meta_kubernetes_pod_container_port_protocol: 容器端口的协议。 __meta_kubernetes_pod_ready: 代表pod状态是否就绪value为true或false。 __meta_kubernetes_pod_phase: Pod的生命周期Value值为PendingRunningSucceededFailed或Unknown 。 __meta_kubernetes_pod_node_name: Pod所在节点的名称。 __meta_kubernetes_pod_host_ip: pod所在节点的IP。 __meta_kubernetes_pod_uid: pod对象的UID。 __meta_kubernetes_pod_controller_kind: pod控制器的对象种类。 __meta_kubernetes_pod_controller_name: pod控制器的名称。 2.4 endpoints角色 该endpoints角色发现用于检索服务的endpoints目标且每个endpoints的port地址会生成一个目标。如果端点由Pod支持则该Pod的所有其他容器端口包括未绑定到endpoints的端口也将作为目标。 该角色可获取到的元数据标签如下 __meta_kubernetes_namespace: endpoints对象的命名空间 __meta_kubernetes_endpoints_name: endpoints对象的名称 对于直接从端点列表中发现的所有目标不包括由底层pod推断出来的目标将附加以下标签 __meta_kubernetes_endpoint_hostname: 端点的主机名 __meta_kubernetes_endpoint_node_name: 托管endpoints的节点名称 __meta_kubernetes_endpoint_ready: 代表endpoint 状态是否就绪value为true或false。 __meta_kubernetes_endpoint_port_name: endpoint 端口的名称。 __meta_kubernetes_endpoint_port_protocol: endpoint 端口的协议。 __meta_kubernetes_endpoint_address_target_kind: endpo int地址目标的类型如deployment、DaemonSet等。 __meta_kubernetes_endpoint_address_target_name: endpoint地址目标的名称。 2.5 ingress角色 该ingress角色发现用于发现ingress的每个地址目标。该地址将设置为ingress的spec配置中指定的host。 可使用的元数据标签如下 __meta_kubernetes_namespace: ingress 对外的命名空间。__meta_kubernetes_ingress_name: ingress 对象的名称。_meta_kubernetes_ingress_label: ingress 对象的各个标签。_meta_kubernetes_ingress_labelpresent: ingress 对象的各个标签value为true或false。_meta_kubernetes_ingress_annotation: ingress 对象的各个注释。_meta_kubernetes_ingress_annotationpresent: ingress 对象的各个注释value为true或false。__meta_kubernetes_ingress_class_name: ingress的spec配置中的Class名称如果存在的话。__meta_kubernetes_ingress_scheme: ingress使用的协议 http或https。__meta_kubernetes_ingress_path: ingress的spec配置中指定的路径默认为 / 小结 本篇我们主要介绍了Prometheus实例在Kubernetes中的部署方式以及监控集群所需要的服务发现功能。下篇我们将讲解如何通过这些功能来实现对Kubernetes集群的监控。 上一篇Prometheus监控实战系列十八基于Consul的服务发现 下一篇Prometheus监控实战系列二十监控Kubernetes集群下
http://www.hkea.cn/news/14537263/

相关文章:

  • 学习php网站建设平面设计网站编辑招聘
  • 精品资源共享课程网站建设电商网站建设实训步骤
  • 专业建站分销商城德州做网站哪家好
  • 晋江wap站是什么意思seowhy友链
  • wap网站还有能打开的吗互助县公司网站建设
  • 咸宁手机网站建设长安网站建设制作
  • 做网站流量点击分析的软件移动网站开发课程设计
  • 招聘网站的建设托福培训一对一
  • 临沂手机网站信息推广技术公司电话号码wordpress链家
  • 嘉兴企业网站推广大力推广建设电子商务网站技术
  • 网站排名张家港网站建设制作好评语
  • 南昌网站建设维护电商网站 技术
  • 电子商务网站规划的原则是什么苏州本地网站
  • 网站建设黄页怎么制作公众号长图
  • 吴江区建设银行招聘网站.net简单网站开发视频教程
  • 专业郑州企业网站建设网站可以做什么
  • 获取网站缩略图网站建设需要注意问题
  • 做防伪查询网站wordpress怎么部署到虚拟linux服务器
  • 国外html5网站认可服务好的装修公司
  • 山东省济宁市建设厅官方网站做淘宝券网站
  • 平面广告设计网站深圳高端网站建设模版
  • 北京电商平台网站建设广州站有高铁吗
  • 柳南网站建设灯具设计网站推荐
  • 深圳市建设工程造价管理站曲阳网站建设在哪
  • 武威市凉州区建设局网站苏州网信信息科技股份有限公司
  • 做网站时用插件需要注明吗外贸建站深圳
  • 公司网站设计与制作美食 wordpress
  • 营销型 展示类网站模板靖宇东兴自助建站
  • 快云服务器怎么做网站wordpress mu
  • wordpress 全站通知个人网站注册平台要多少钱