首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏容器云实践

    prometheus k8s服务发现

    同样在Prometheus监控中存在一个叫 服务发现的机制,在k8s容器环境中由于集群内实例网络地址是动态的,我们不可能每次创建或修改实例都将实例IP写入Prometheus的target中,借助 服务发现我们可以快速的将集群内的资源注册到 : static_configs: 静态服务发现 dnssdconfigs: DNS 服务发现 filesdconfigs: 文件服务发现 kubernetessdconfigs: Kubernetes 服务发现 gcesdconfigs: GCE 服务发现 ec2sdconfigs: EC2 服务发现 openstacksdconfigs: OpenStack 服务发现 azuresdconfigs Prometheus中k8s服务发现的原理是通过 Kubernetes 的REST API 检索抓取目标,并始终与集群状态保持同步。 以上通过kubernetes-apiservers、kubernetes-nodes的实例简单介绍了Prometheus中如何实现k8s集群资源的服务发现以及相应的配置和操作。

    2.3K30编辑于 2022-03-14
  • 来自专栏知了一笑

    K8S | Service服务发现

    服务发现与负载均衡。 一、背景 在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问; 对于测试「Tes」环境或者生产「Pro」环境,出于安全或者环境隔离性来考虑 ,在正常情况下只会开放网关服务,而「注册、配置」中心并不会对外暴露; 对于架构中的其它业务服务一般不会对外开放,在K8S集群内部服务间是可以正常通信的,对于「Dev」环境来说,研发会使用「注册、配置」中心 ,网关是系统的访问入口; 在K8S集群中,通过Service组件,可以快速简单的实现服务发现和负载均衡; 二、Service组件 1、简介 在K8S集群中是通过Pod组件来部署应用服务,Deployment ,可以在不修改现有应用程序的情况下,使用服务发现机制访问到该应用; 基于Pod、Deployment、Service三个组件的协作,同一个应用的部署脚本可以在开发、测试、生产不同环境中复用; 2、基础语法

    49630编辑于 2023-09-01
  • 来自专栏日常笔记

    Spring cloud k8s 服务发现

    spring-cloud-kubernetes 在K8s集群中,没有必要拥有Eureka。K8s中的ETCD拥有所有必要的信息。 您的应用程序将通过指定的K8s服务名称联系K8s API服务器以获取端点信息。 然后可以通过Feign调用返回的服务。 要让DiscoveryClient正常运行,您需要做的 就是将Kubernetes服务名称与spring.application.name属性对齐。

    77550发布于 2020-06-02
  • 来自专栏DevOps持续集成

    K8s服务发现组件-CoreDNS简介

    CoreDNS是DNS服务器软件,通常用于在容器化环境(尤其是Kubernetes管理的环境)中支持服务发现功能。Miek Gieben在中编写了CoreDNS的原始版本2016年。 他之前曾编写过一个名为SkyDNS的DNS服务器和一个流行的使用Go语言的Go功能DNS库,称为Go DNS。与其后继产品CoreDNS一样,SkyDNS的主要目的是支持服务发现。 您可能会发现其中一种可以提供所需的功能。 Go语言是“内存安全”的语言,这意味着它可以防止“内存访问错误”,例如缓冲区溢出和指针悬空。 容器通常用于基于微服务架构的软件中。借助微服务,应用程序(通常是一个复杂的应用程序)被分解为许多微服务。每个微服务都负责提供少量但有用且明确定义的功能。 但是,在这样的环境中,跟踪特定服务的运行位置可能会很困难。说一个支持数据库服务的容器需要与授权服务进行通信,以确定是否应允许给定用户进行特定搜索。

    3K00发布于 2021-03-16
  • 来自专栏Kubernetes

    【K8s】Kubernetes 服务发现之 Service

    如果您有其他想要了解的,欢迎私信联系我~ 基本介绍 Service 是 Kubernetes 提供的一种服务发现机制,主要作用是通过 nodeSelector(标签选择器)关联 Pod 对象,以单一入口方式提供内部服务 Service 对象创建 DNS 条目 服务发现:集群内可以通过 Service 名称来发现并访问服务,而不需要知道 Pod 的 IP 地址 负载均衡:集群通过 kube-proxy 组件将访问请求负载均衡到 Endpoints 上 扩展性:如果 Pod 的数量发生变化,集群会自动更新 Service 和 kube-proxy 的配置 对象类型 ClusterIP:默认类型,通过集群内部 IP 暴露服务,实现服务间调用 ,服务只能在集群内部访问 NodePort:通过 Node 节点的 IP 和 静态端口暴露服务,路由到 ClusterIP 服务,通过 iptables 赋予了调用 Node 节点特定 Port 就能访问集群内部 路由到 ClusterIP 服务和 NodePort 服务 ExternalName:直接引用集群外部服务 资源清单(示例) # demo-servcie.yaml apiVersion: v1 kind

    68310编辑于 2024-09-11
  • 来自专栏架构驿站

    K8S生态之服务发现解析

    在微服务体系架构中,我们通常所说的“服务发现”,指的是广义层面的描述,其主要包含两个最核心的模块:服务注册与服务发现。那么什么是“服务注册”、“服务发现”呢? 而对于服务发现,其指的是新注册的这个服务模块能够及时的被其他调用者所发现。无论其操作状态为服务新增还是服务删减都能够实现自动发现服务发现 在真正发起服务调用前,调用方需要从注册中心拿到相应服务可用的 IP 和 Port 列表,即服务发现。 近几年,基于 DNS 的服务发现渐渐被业界提及并进一步推广与落地。 以上为站在微服务角度针对“服务发现”原理机制及场景进行解析,接下来,我们将基于容器生态并对其进行补充。 综上所述,基于容器 K8S 生态中“服务发现“机制的相关解析,本文到此为止,大家有任何问题或建议,可以随时留言、沟通。

    52030编辑于 2021-12-09
  • 来自专栏Kubernetes

    【K8s】Kubernetes 服务发现之 Ingress

    如果您有其他想要了解的,欢迎私信联系我~ 基本介绍 Ingress 是 Kubernetes 提供的一种服务发现机制,主要作用是为集群外部访问集群内部服务提供访问入口,通过制定 Ingress 策略管理 从而跳过 kube-proxy 组件的转发,kube-proxy 不再起作用 Ingress 对象与其反向代理的 Service 对象必须处于同一命名空间 Ingress 通过 path 路径访问不同服务 ,且 “ / ” 位于最后避免其他路径被拦截 工作原理 定义 Ingress 策略:用户在 Kubernetes 集群中创建 Ingress 资源,定义如何将外部请求路由到集群内的服务 策略监听:Ingress Ingress 资源被创建或现有资源被更新时,Ingress 控制器会读取这些规则 配置负载均衡器或反向代理:Ingress Controller 根据 Ingress 策略配置内部的负载均衡器或反向代理服务器 (如 Nginx、HAProxy 等),设置路由规则 路由转发:Ingress Controller 会根据配置的策略,将请求转发到正确的服务 服务响应:服务处理请求并返回响应,Ingress Controller

    64510编辑于 2024-09-02
  • 来自专栏希里安

    SpringBoot应用使用k8s的服务发现

    t=Vite‘ ## 关于springboot app使用k8s的服务发现 这里借用一张国外技术博主Bubu Tripathy(高级软件工程师,专注微服务、云计算、devops)的图片,更好的解释服务发现的流程 目前企业中会大量使用微服务架构,所以高效的服务发现的需求就变得很重要。所谓的服务发现,就是在集群网络中自动识别和定位服务的过程。 那么怎么在k8s中实现spingboot应用的服务发现。 创建: kubectl apply -f app.yaml 这里再说说什么是服务发现,在Kubernetes(K8s)中,服务发现是一种机制,用于在集群中自动地发现和定位正在运行的应用程序的网络服务。 K8s提供了服务发现的功能,使得应用程序能够通过服务名称来进行通信,而不必关心应用程序的实际IP地址或端口号。简单点说,就是传统的应用中,所有的服务是打包在一起的,相对容易找到他们并与之通信。 中,并使用了k8s的服务发现机制实现应用之间的通信。

    82110编辑于 2023-10-30
  • 来自专栏码匠的流水账

    聊聊k8s服务发现的优缺点

    序本文主要研究一下使用k8s服务发现的优缺点spring cloud vs kubernetes这里有张spring cloud与kubernetes的对比,如果将微服务部署到kubernetes上面, 这里主要是讲述一下如果不使用独立的服务发现,而是使用k8s的服务发现的优缺点k8s服务发现原理service与podservice通过selector将标签符合指定条件的pod关联在一起endpointsendpoints ,直接复用k8s的服务发现,省事缺点学习成本大使用k8s的服务发现其实是将服务发现的中间件下沉到了基础设施(使用了IPVS或者iptables模式),需要有人对此原理比较精通,不然出问题了需要忙活半天东西流量治理比较困难 ,需要套上service mesh,技术栈的复杂度更大,需要有这方面的人才,如果没有则相当于缺乏了服务治理;相较于nacos这类专业的服务发现的中间件来讲,它会配套ui界面,都是现成的,如果使用k8s的服务发现 ,相关的生态是缺失的小结使用K8S的服务发现看是挺好的,可以少维护一个服务发现的中间件,但是实际使用起来并不是那么美好。

    37510编辑于 2024-03-26
  • 来自专栏CSDN搜“看,未来”

    k8s 服务注册与发现(一)DNS

    DNS 解析器从根域名服务器查找到顶级域名服务器的 IP 地址,又从顶级域名服务器查找到权威域名服务器的 IP 地址,最终从权威域名服务器查出了对应服务的 IP 地址。 ---- 集群中的 DNS 使用 DNS 在集群中做服务发现其实是一件比较容易的事情,这主要是因为绝大多数的计算机上都会安装 DNS 服务,所以这其实就是一种内置的、默认的服务发现方式,不过使用 DNS 做服务发现也会有一些问题,因为在默认情况下 DNS 记录的失效时间是 600s,这对于集群来讲其实并不是一个可以接受的时间,在实践中我们往往会启动单独的 DNS 服务满足服务发现的需求。 CoreDNS 其实就是一个 DNS 服务,而 DNS 作为一种常见的服务发现手段,所以很多开源项目以及工程师都会使用 CoreDNS 为集群提供服务发现的功能,Kubernetes 就在集群中使用 CoreDNS 解决服务发现的问题。

    1.2K20编辑于 2022-09-27
  • 来自专栏Kubernetes

    【K8s】Kubernetes 服务发现之 Ingress 进阶

    limit-burst-multiplier: "5" # 单个 IP 地址每秒钟接受的请求数 nginx.ingress.kubernetes.io/limit-rps: "100" # 限制发送给后端服务的发送速率 host 字段,则只能配置并匹配域名 Ingress 对象的 apiVersion 必须与 Kubernetes 集群的版本兼容,即需要确定 Kubernetes 集群是否支持 networking.k8s.io /v1 或 extensions/v1beta1 若是 HTTPS 协议访问,建议将 SSL 证书配置在外部 F5 设备或者负载均衡设备上,完成 HTTPS 请求的拆包、解包,并将访问请求转发至后端服务器的

    42010编辑于 2024-09-02
  • 来自专栏CSDN搜“看,未来”

    k8s 服务注册与发现(三)CoreDNS

    cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile --- apiVersion: rbac.authorization.k8s.io list - watch - apiGroups: - "" resources: - nodes verbs: - get - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch --- apiVersion: rbac.authorization.k8s.io : kube-dns template: metadata: labels: k8s-app: kube-dns spec: securityContext addonmanager.kubernetes.io/mode: Reconcile kubernetes.io/name: "CoreDNS" spec: selector: k8s-app

    2.6K11编辑于 2022-09-27
  • 来自专栏Kubernetes

    【K8s】Kubernetes 服务发现之 Headless Service

    如果您有其他想要了解的,欢迎私信联系我~ 基本介绍 在 Kubernetes 中,Headless Service(无头服务)是一种特殊的服务发现机制,允许用户直接访问集群中的 Pod 实例,而不是通过单一的 {namespace}.svc.cluster.local) DNS 解析:当使用 Headless Service 的名称进行 DNS 查询时,Kubernetes 的 DNS 服务会返回所有 Pod 的 IP 地址列表,而不是单一的 ClusterIP 服务选择:Headless Service 使用选择器(Selector)来确定哪些 Pod 属于该 Service,与标准 Service 对象的工作方式相同

    1.1K10编辑于 2024-09-11
  • 来自专栏码匠的流水账

    聊聊k8s服务发现的优缺点

    序 本文主要研究一下使用k8s服务发现的优缺点 spring cloud vs kubernetes 这里有张spring cloud与kubernetes的对比,如果将微服务部署到kubernetes 这里主要是讲述一下如果不使用独立的服务发现,而是使用k8s的服务发现的优缺点 k8s服务发现原理 service与pod service通过selector将标签符合指定条件的pod关联在一起 endpoints ,直接复用k8s的服务发现,省事 缺点 学习成本大 使用k8s的服务发现其实是将服务发现的中间件下沉到了基础设施(使用了IPVS或者iptables模式),需要有人对此原理比较精通,不然出问题了需要忙活半天 东西流量治理比较困难 k8s的服务发现本质是类似服务端的负载均衡,默认是rr轮询的方式(其他的支持lc最小连接、dh目标地址哈希、sh源地址哈希、sed最短时延),如果需要定制的比如加权,比如根据服务上线时间动态权重等 ,都是现成的,如果使用k8s的服务发现,相关的生态是缺失的 小结 使用K8S的服务发现看是挺好的,可以少维护一个服务发现的中间件,但是实际使用起来并不是那么美好。

    50110编辑于 2024-03-27
  • 来自专栏SRE云原生实践之路

    k8s服务发现之配置Pod的hosts

    nginx 1/1 Running 0 79s 10.244.4.3 centos-automk8sworker hostaliases-pod.yaml 输出结果 pod/hostaliases-pod created 检查 Pod 详情,查看其 IPv4 地址和状态: [root@centos-AutomK8sMaster hostaliases-pod 0/1 Completed 0 3m37s 10.244.4.5 centos-automk8sworker

    62910编辑于 2024-09-06
  • 来自专栏程序猿 Damon 带你进阶全栈

    KiteX 基于 K8s 的服务注册与发现

    概览 在很久之前的文章中说过,K8s 作为云原生时代的创造者,下一代云原生的中间利器,从云原生 1.0 到 2.0,作为基石,成就无数服务畅游每一台机器。 实践 服务端 前面文章 KiteX 入门篇,我们介绍了如何创建一个服务端,那我们这次改造下,让其接入 K8s。 9000,但如果服务是以 K8s 部署的 Pod 形式,则代表的是 Pod 的端口,同时,由于 K8s 这种开源注册中心默认使用 TCP 协议,所以这里支持的是 TCP 协议。 这样简单的配置,即可让服务注册到 K8s,被 k8s-api 发现。 最后,我们看看拿全部数据大概耗时: 发现全部数据大小:1.2M,耗时 300 多毫秒,还是不错的。

    1.2K40编辑于 2022-12-05
  • 来自专栏Java架构师历程

    4、服务发现

    有两种主要的服务发现模式:客户端发现(client-side discovery)与服务发现(server-side discovery)。让我们先来看看客户端发现。 该模式的一个重要缺点是它将客户端与服务注册中心耦合在一起。您必须为服务客户端使用的每种编程语言和框架实现客户端服务发现逻辑。 现在我们已经了解了客户端发现,接下来让我们看看服务发现。 4.3、服务发现模式 服务发现的另一种方式是服务发现模式。图 4-3 展示了该模式的结构: ? 客户端通过负载均衡器向服务发出请求。负载均衡器查询服务注册中心并将每个请求路由到可用的服务实例。 系统组件使用查询 API 来发现可用的服务实例。 有两种主要的服务发现模式:客户端发现服务发现。在使用了客户端服务发现的系统中,客户端查询服务注册中心,选择一个可用实例并发出请求。 在 NGINX Plus Release 8 及更高版本中,您可以将对 API 所做的变更配置为在重新启动和配置重新加载时保持不变。

    2.6K30发布于 2018-09-26
  • 来自专栏AI.NET极客圈

    Kubernetes 服务发现

    目录 什么是服务发现? 环境变量 DNS 服务 Linux 中 DNS 查询原理 Kubernetes 中 DNS 查询原理 调试 DNS 服务 存根域及上游 DNS 什么是服务发现服务发现的关键在于服务元数据(metadata)的存储,包括服务名、服务 IP、服务端口等信息。 Kubernetes 支持两种服务发现方式,环境变量和 DNS。 kubectl exec -ti <pod-name> env --namespace=<my-namespace> 此种方式的服务发现缺点很明显: 先前的服务必须先运行起来,否则 Pod 无法发现; 如依赖的服务宕机或绑定新地址,Pod 无法发现,仍然持有旧的地址。 幸好,我们还有另一种服务发现机制。 DNS 服务 在讲述 Kubernetes 中使用 DNS 进行服务发现之前,我们不得不先了解下 Linux 中是如何进行 DNS 查询的。

    2.2K20发布于 2019-08-20
  • 来自专栏SRE运维实践

    服务发现--prometheus

    服务发现,好像用zk的比较多,不要问我为什么不用etcd,就是这么任性,就想用consul。 使用consul进行服务发现 1、运行consul容器 ? 服务注册,服务发现。。。傻傻分不清楚。 风言风语 推荐一首歌,感觉一般般。。。 这个城市风很大。。。看了没用,没用也看。。。 脑子漏风 配置中心与服务中心,配置中心主要是用来存储配置的,而服务中心,则主要是提供服务注册和服务发现的功能,所谓的ESB。。。企业级SB,呵呵哒。。。 配置中心用来存储所有实例的配置,在进行服务重启或者服务重建的时候,只要拉取相关的配置就OK了。 而服务中心,主要是用来进行解耦,其实无论是分层,还是拆分组件,模块,都是为了解耦。 站在应用的角度来说,又可以分为web服务,存储,大数据等,就看怎么去定义指标。

    83130发布于 2019-07-08
  • 来自专栏sktj

    Prometheus:服务发现

    1、基于文件的服务发现 ? image.png 2、基于API的服务发现 EC2的服务发现 ? ? ? 3、基于DNS的服务发现 ? 基于A记录 ?

    77120发布于 2020-01-15
领券