首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏腾讯云 CDN 专家服务

    DNS转发导致CDN调度异常

    问题描述: 客户反馈广东电信IDC访问至腾讯云CDN节点,出现丢包现象。 image.png 原因分析: 问题相关信息梳理: 1、查看广东电信的调度,发现客户通过PING返回的IP并不在调度节点ip列表里; 2、按理PING返回的IP应该为广东电信,但实际是腾讯网络,与预期不符 同时也引导客户配合在测试环境CURL测试,通过CDN侧查询日志发现记录的客户端来源信息与反馈的吻合。结合获取的信息,以及智能DNS解析的原理,请求应该调度至广东电信节点,但实际并不是。 客户测试环境运行dig @119.29.29.29 xxx,返回的为广东电信的CDN节点IP。再运行如下2个命令,发现返回的DNSIP归属为腾讯云网络。 8.8.8.8虽然可以做到全球任播来尽量将自己的出口IP靠近真实访客,但是一个个地区部署节点成本还是非常惊人,而且调度效果并不好。

    7.8K131发布于 2021-07-06
  • 来自专栏CDN技术漫谈

    CDN技术漫谈之调度系统

    目录 这里指的调度系统是什么? 如果将请求迁移到CDN? 一般有哪些调度形式? 基于DNS的调度介绍 基于302跳转的调度介绍 基于Anycast BGP路由的调度介绍 腾讯云CDN交付客户的CNAME 这里指的调度系统是什么? CNAME方式的背后,又分几种:   a) 一种是CDN厂家提供基于DNS的调度,就最终客户的域名经CDN调度域名解析出CDN节点的IP。 b) 一种是CDN厂家给的CNAME实际不是真正CDN节点,而是一个调度集群,真正的CDN IP地址是通过在调度集群上向请求响应302跳转实现的。 对应前面的调度方式2。   CDN调度服务器本身就是调度域名的NS权威服务器,调度域名的TTL被故意设置成很短(比如3分钟),这样所有请求都会较频繁地触发客户端的local DNS重新到CDN调度服务器解析新的IP地址。

    16.5K102发布于 2019-02-23
  • 来自专栏开元说说

    CDN系列学习文章(三)——302调度

    本文主要聊聊302调度,咱们不妨先思考一下, 传统DNS调度有哪些不足呢? 1.调度精准度。传统的DNS调度中,用户是如何获取CDN接入节点加速呢?回想上篇文章,是不是依赖于LDNS出口IP。 CDN是什么呢?当然是加速啊,理想条件下,用户位置与CDN节点之间距离越近,理论上加速效果越好,所以基于用户IP地址来获取CDN节点,这样调度方式会更合理,进而后续EDNS对此进行优化。 2.调度灵活性。试想一种场景,某个地区CDN机房带宽满负载,如果不能及时扩容,影响用户访问。 3.调度大局观。试想一下,DNS获取的广东电信CDN接入节点IP,DNS仅仅这个地域节点IP,对全局CDN接入节点情况毫不知情,限制调度想想空间。 既然DNS调度有这么不足,为啥还会用的。 image.png 从上图中发现,与传统DNS调度几点不同: 1.用户DNS解析域名时候,获得IP地址并不是CDN接入节点,而是CDN服务厂家调度机IP地址 2.用户向调度机发送请求时,会带有准确的用户端

    9.9K130发布于 2019-06-14
  • 来自专栏音视频技术

    移动端视频缓存保障与CDN调度优化

    1.3 卡顿优化-CDN质量 我们服务端有调度服务器来控制CDN的选择。 ? 服务端选择CDN的流程。 播放器发起调度请求的时候,调度服务器会对所有的CDN进行一个可用NGB调度:把所有的CDN节点都返回进行简单测速,以及根据统一上报的信息来进行权重,把这些信息返回再做相应处理。 因为有CDN节点,第一个步骤是跟调度服务器进行HTTP交互。第二步在拿到节点之后Socket建连的过程。第三步从流解析到解码最后渲染。 另外CDN调度,本身即时有效,比如说用户在某一时间、某一网络状态、在某一地点,此时服务端返回的大数据就是这一时刻最有效、质量最高的节点。有预调度了,用户如果发生位置或者网络的切换,就不再是最佳节点。 第二个方面根据播放器上报的卡顿率来评判,实时向调度服务器汇报CDN情况,根据汇报结果综合计算来评判当前CDN到底是不是可靠。 客户端的灾备。

    3.4K20发布于 2019-08-16
  • 来自专栏全栈程序员必看

    k8s pod调度_调度方式

    k8s 概述 定向调度 亲和性调度 污点和容忍 Pod的调度 概述 在默认情况下,一个Pod在哪个Node节点上运行,是由Scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。 # 指定调度到k8s-node1节点上 强制性的 无论存不存在 • 创建Pod: kubectl create -f pod-nodename.yaml • 查看Pod: kubectl get pod # 将目标pod定向调度到k8s-node1 # 创建参照Pod: kubectl create -f pod-podaffinity-target.yaml # 查看参照Pod: kubectl (为了演示效果更加明显,暂时停止k8s-node2节点)。 为k8s-node1设置污点(PreferNoSchedule): kubectl taint node k8s-node1 tag=xudaxian:PreferNoSchedule 创建Pod1:

    1.1K20编辑于 2022-09-22
  • 来自专栏开元说说

    CDN系列学习文章(二)——DNS调度

    本文主要介绍一下CDN调度,主要是DNS调度。介绍之前,咱们先聊聊CDN为啥要调度CDN为啥要调度呢? 对于CDN一样的,调度就是为了找到离用户最近的CDN节点,提供最优质的加速效果。 下面我们讲讲CDN是如何调度的?在正式介绍之前,咱们先了解几个知识点: 什么是调度? 不少同学可能会问,通过httpdns也可以获取CDN节点ip地址。是的,关于httpdns和劫持后续单独介绍,这篇文章主要介绍传统DNS调度,针对传统DNS和EDNS介绍。 传统DNS调度原理 在LDNS没有缓存A记录或者TTL时间过期,需要重新递归拉取。同时CDN接入节点没有缓存1.txt这个文件,需要回源拉取。下面这张图是DNS解析和CDN访问全部流程。 流程如下: image.png 上面了解到DNS解析以及CDN访问原理,接下来我们分别针对不同LDNS类型,看看CDN服务厂家如何提供CDN节点IP。

    7.1K191发布于 2019-06-12
  • 来自专栏院长运维开发

    K8s调度器---调度过程

    调度分为几个部分:首先是过滤掉不满足条件的节点,这个过程称为 predicate ;然后对通过的节点按照优先级排序,这个是 priority ;最后从中选择优先级最高的节点。 NoDiskConflict:已经mount的volume和pod指定的volume不冲突,除非它们都是只读 如果在predicate过程中没有合适的节点,pod会一直在pending状态,不断重试调度

    63020发布于 2020-12-16
  • 来自专栏程序猿 Damon 带你进阶全栈

    k8s 调度

    k8s 调度 1、 k8s 架构 k8s的架构如图: ? 注释: 红色部分表示资源分配 浅蓝色表示采用的调度器 灰色表示普通调度策略 荧光色表示高级调度策略 2.5 k8s 调度器资源分配机制 基于Pod 中容器 request 资源“总和” BalancedResourceAllocation,平衡cpu/mem的消耗比例 3、k8s 调度策略 3.1 普通调度策略 nodeSelector【将来会被废弃】:将 Pod 调度到特定的 Node 欢迎大家关注个站哟:damon8.cn。 最后介绍新公号:天山六路折梅手,欢迎关注。 往期回顾 微服务自动化部署CI/CD 如何利用k8s拉取私有仓库镜像 个站建设基础教程 ArrayList、LinkedList 你真的了解吗?

    1.2K51发布于 2020-08-28
  • 来自专栏谢公子学安全

    K8s调度策略

    1 调度 在K8s中,调度是指将Pod放置到合适的节点上。调度器通过 K8s 的监测机制来发现集群中新创建且尚未被调度到节点上的Pod。 kube-scheduler调度器 kube-scheduler组件是K8s集群的默认调度器,并且是集群控制面的一部分。 K8s 也会为集群中所有节点添加一些标准的标签。 给节点添加标签 ” 执行如下命令给指定的k8s-node1节点添加标签 key1=value1。 #给指定的节点打标签 kubectl label nodes k8s-node1 key1=value1 #移除标签 kubectl label nodes k8s-node1 key1- 创建一个将被调度到你选择的节点的 #查询k8s-master节点的Taints kubectl describe node k8s-master | grep Taints #取消污点 kubectl taint nodes k8s-master

    1.4K80编辑于 2023-02-27
  • 来自专栏k8s_t

    K8S Pod调度策略

    Kubernetes Scheduler K8S调度器,负责监听新创建、尚未分配到计算节点的Pod;K8S调度器最重要的职责就是为每一个Pod找到最适合其运行的计算节点。 kube-scheduler kube-scheduler是K8S集群默认的调度器,如果你愿意,也可以自己写一个调度组件来替代kube-scheduler,在实际应用中,kube-scheduler也有许多不尽如人意的地方 最后,调度器要将“调度结果”上报给API Server(这个过程叫做“绑定”)。 99%A8%E8%B0%83%E5%BA%A6.png? raw=true] K8S集群内的资源隔离 [85-%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB.png?

    3.8K60发布于 2019-08-27
  • 来自专栏院长运维开发

    K8s调度器---简介

    Scheduler是Kubernetes 的调度器,主要的任务是把定义的Pod分配到集群的节点上。 听起来非常简单,但有很多要考虑的问题: 公平:如何保证每个节点都能被分配资源 资源高效利用:集群所有资源最大化被使用 效率:调度的性能要好,能够尽快地对大批量的Pod完成调度工作 灵活:允许用户根据自己的需求控制调度的逻辑

    61920发布于 2020-12-16
  • 来自专栏院长运维开发

    K8s设置Master可调度与不可调度

    查看master节点,默认是不可调度 [root@k8s-master ~]# kubectl describe nodes k8s-master Name: k8s-master ~]# kubectl taint node k8s-master node-role.kubernetes.io/master- node/k8s-master untainted 查看节点信息-- -发现污点已被去掉,可以被调度 [root@k8s-master ~]# kubectl describe nodes k8s-master Name: k8s-master ~]# kubectl taint node k8s-master node-role.kubernetes.io/master="":NoSchedule node/k8s-master tainted 查看节点信息---发现已经不能被调度了 [root@k8s-master ~]# kubectl describe nodes k8s-master Name: k8s-master

    8.5K20发布于 2021-04-19
  • 来自专栏Tensorbytes

    带你畅游k8s调度器(上):k8s调度器原理解读

    你是否了解过她是怎么从众多的 node 节点中筛选出符合 pod 的调度节点,这里会从 k8s 的调度原理和流程开始结合源码内容带你了解整个调度过程,并配合一个小的调度实验,让你亲手实现一个简单的k8s PS:本文有些长,有兴趣的同学可以先收藏再阅读 k8s 调度器实现原理 k8s 中一个任务的创建流程 k8s 的 scheduler 和 controller manager,kubelet 这些是一样的 这里面的kube-scheduler调度器就是我们今天带大家了解的k8s基础组件之一 —— k8s的调度器。 pod 通过 pod 的 SchedulerName 判断是否属于这个调度器处理,kube-scheduler 的名字是 default-scheduler,因此 pod 没有专门指定调度器的都会被k8s 参考文献 配置多个调度器 k8s心跳 624调度框架提案

    2K20编辑于 2022-03-14
  • 来自专栏pythonista的日常

    Kubernetes(k8s)的调度器 - 调度亲和性实践

    Kubernetes(简称K8s)是一个用于管理容器化应用程序的开源平台。 在K8s中,节点亲和度设置是一种调度分配策略,用于定义 Pod(一个或者多个容器的集合) 可以调度到哪些节点上以及基于怎样的规则分配 Pod 到各个节点。 前段时间在我们的 K8s 集群运行一些计算任务,但是发现好多 Pod 都会集中分配到一个节点上,这些计算任务比较依赖网速,同一个节点上执行非常影响任务的执行效率。 集群的默认调度方式是优先分配到到空闲资源比较多的节点上,但是我希望任务尽可能分配到不同的节点上,充分发挥多个节点的优势。 通过简单搜索发现可以配置调度器的调度亲和性来实现我的需求。 我在 K8s 的 Config Maps 中设置如下: affinity:是节点亲和性的声明 podAntiAffinity:表示Pod反亲和性,反亲和性是将 Pod 运行在不同区域、不同机器上 preferredDuringSchedulingIgnoredDuringExecution

    86110编辑于 2024-02-17
  • 来自专栏架构师成长之路

    k8s实践(14)--scheduler调度器和pod调度策略

    一、scheduler调度器 1、kube-scheduler简介 k8s实践(10) -- Kubernetes集群运行原理详解 介绍过kube-scheduler。 2、Scheduler原理分析 k8s Scheduler的作用是将待调度的Pod(API新创建的Pod、Controller Manager为补足副本而创建的Pod等)按照特定的调度算法和调度策略绑定到集群中的某个合适的 完整的流程如下所示: k8s Scheduler当前提供的默认调度流程分为以下两步: 1)预选调度过程,即遍历所有目标Node,筛选出符合要求的候选节点,kubernetes内置了多种预选策略(xxx k8s Scheduler的调度流程是通过插件方式加载的“调度算法提供者”(AlgorithmProvider)具体实现的。 k8s提供了常用的4大调度规则,如下: 自动调度:运行在哪个节点上完全由Scheduler经过一系列的算法计算得出; 定向调度:NodeName、NodeSelector; 亲和性调度:NodeAffinity

    4.7K32编辑于 2024-01-08
  • 来自专栏DNS调度

    基于DNS权重扩展协议实现CDN比例调度的探索与研究

    摘 要:CDN服务商普遍面临着各边缘节点承载能力不均难以最优调度的棘手问题,中国移动充分发挥掌握Local DNS的优势,首创了DNS权重扩展协议,可将CDN节点的容量比例由GSLB调度中心传递到LocalDNS 关键词:EDNS;权重调度;比例调度CDN调度;ECS0 引言(研究背景及意义)内容分发网络(Content Delivery Network,CDN)的作用是将数字内容智能分发到离用户最近的节点,从而减少网络延迟 ”的困境,这对CDN服务商的调度能力提出了巨大挑战。 如果整个解析流程的LDNS、权威DNS或CDN 调度系统(GSLB)均支持权重扩展,则可以实现按照不同解析地址权重准确调度流量。 3 试点应用与测试结论中国移动集团CDN部门牵头,联合移动杭研GSLB、江苏移动、南京信风于2022年6月至2022年8月期间对江苏宽带业务进行现网测试。

    1.4K20编辑于 2023-09-11
  • 来自专栏让技术和时代并行

    详解 K8S Pod 高级调度

    这对于希望实施高级应用程序部署模式的应用程序工程师和 K8s 管理员特别有帮助,这些模式涉及数据本地化、Pod 共存、高可用性和 K8s 集群的资源高效利用。 因此,任何资源感知型 K8s 集群管理的最佳实践是将 pod 分配给具有正确硬件的节点。 我还将向您介绍一些示例,并向您展示如何在您的 K8s 集群中实现它们。 使用 nodeSelector 手动调度 Pod 在早期的 K8s 版本中,用户可以使用 PodSpec 的 nodeSelector 字段来实现手动 Pod 调度。 为了控制集群中的资源利用率,K8s 管理员可以将某些节点分配给特定的 pod 类型或应用程序。

    1.3K50编辑于 2023-03-18
  • 来自专栏【腾讯云开发者】

    带你畅游k8s调度器!

    一、调度队列 同一时刻会有多个pod等待调度,会把等待调度的pod放到activeQ中(PriorityQueue),然后周期性(1s)的进行调度,对于调度超时( DefaultPodMaxInUnschedulablePodsDuration 二、单次调度 用下图来说明单个调度的流转逻辑。 注意:一个集群中可以有多个调度器,所以首先需要根据pod中的spec参数获取调度器名称 跳过pod:skipPodSchedule, 过滤调不需要调度的pod,比如正在删除中的pod,上个调度周期正在处理中的 实现自定义调度器。部署自定义的调度器deployment。 在新版本1.19之后建议扩展自定义调度框架,如下例: import ( scheduler "k8s.io/kubernetes/cmd/kube-scheduler/app

    1K10编辑于 2022-08-26
  • 来自专栏SY小站的专栏

    k8s二次调度

    介绍 在之前文章中,kube-schedule原理,当中我们说到了k8s原始的调度,有一些不合理性,当时也介绍了一些优先级调度以及自定义调度,下面主要说下这个开源的二次调度工具Descheduler。 例如,在nodeA上调度了podA,该podA满足了调度时的节点亲缘性规则requiredDuringSchedulingIgnoredDuringExecution。 创建角色与账户 [root@master01 kubernetes]# cat rbac.yaml --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io ServiceAccount metadata: name: descheduler-sa namespace: kube-system --- apiVersion: rbac.authorization.k8s.io descehduler-cluster-role-binding namespace: kube-system roleRef: apiGroup: rbac.authorization.k8s.io

    1.1K10发布于 2020-07-03
  • 来自专栏运维小路

    Kubernetes(k8s)-调度(Scheduler)介绍

    我们前面的一个章节Kubernetes(k8s)-Request&Limit介绍,介绍过Request参数是决定Pod调度的一个很重要的指标,实际上在Kubernetes里面有非常多的调度算法来决定某一个 Pod的调度 Pod 的调度是 Kubernetes 中将 Pod 放置在合适节点上运行的过程。调度器是 Kubernetes 控制平面的一部分,它负责根据调度算法和当前集群的状态选择最佳节点。 以下是 Pod 调度的主要步骤和考虑因素: 调度需求:首先,定义你的 Pod 需要什么样的资源和条件。这可以通过资源请求、限制和 Pod 亲和性规则来指定。 绑定(Binding):一旦选择了最佳节点,调度器会创建一个绑定操作,将 Pod 和选定的节点关联起来。 Pod 调度是一个复杂的过程,它涉及到多种不同的策略和算法。 调度结果 得分对比:node02 总分 673 > node01 总分 660。 调度决策:调度器会将 Pod nginx-deployment-c5cbddb86-66ggl 绑定到 node02。

    47710编辑于 2025-02-06
领券