首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏架构进阶

    容器 & 服务: k8s的扩容与自动扩容

    首发:https://mp.weixin.qq.com/s/eWwT1xBvnqvmHMXTVZ7KUA 公众号:程序员架构进阶 一 前言 直到现在,都还停留在动态扩容的门口,本篇将开始正式尝试动态扩容实现 kubectl 本身提供了 scale 和 autoscale 命令用于扩容和自动扩容,下面就重点介绍这两种方式。 二 扩容方法-kubectl scale  kubectl scale 命令可以支持动态扩容。 请求数;-c:并发数 本地压测命令: ab -n 200000 -c 20 "http://localhost:30029/" 执行过程中可以通过 kubectl logs web-569c7c8cb6 在压测过程中,通过 top 命令查看实时 cpu 和内存使用情况,以及 pod 扩容进度。至此,两种 kubectl 提供的扩容和自动扩容方法介绍完毕。

    7.7K01发布于 2021-04-28
  • 来自专栏东风微鸣技术博客

    有状态应用如何在k8s上快速扩容甚至自动扩容

    手动扩容的过程中花费了较长的时间. 但是在K8S上, 有状态应用的扩容就很简单, YAML里改一下replicas副本数, 等不到1min就扩容完毕. 那么, 还有哪些因素, 让有状态应用可以在k8s上快速扩容甚至自动扩容呢? , 一一梳理下: Eureka Nacos Redis RabbitMQ Kafka TiDB K8S上有状态应用扩容 在Kubernetes上, 有状态应用快速扩容甚至自动扩容很容易. Eureka 扩容 备注: 有状态扩容第一层: StatefulSet + Headless Service eureka的扩容在K8S有状态应用中是最简单的, 就是: headless service 总结 通过6个有状态软件, 我们见识到了层层递进的K8S上有状态应用的快速扩容甚至是自动扩容: 最简单实现: StatefulSet + Headless Service -- Eureka 脚本/Init

    2.2K40编辑于 2022-04-21
  • 来自专栏JavaEdge

    ArrayList源码解析(基于Java8)扩容删除

    overflow-conscious code if (minCapacity - elementData.length > 0) grow(minCapacity); } 扩容 // 用计算出来的数组长度,往下传继续处理 elementData = Arrays.copyOf(elementData, newCapacity); } 这就是数组的扩容 ,一般是oldCapacity + (oldCapacity >> 1),相当于扩容1.5倍 跟进到Arrays这个工具类,很简单 再看copyOf()方法 System.arraycopy()方法用了一个

    1.3K81发布于 2018-05-16
  • kubeadm快速扩容master节点(k8sV1.24.3)

    mqj5sb.yaohqcn37t88t02z --discovery-token-ca-cert-hash sha256:80982a370ef22ba5a8555f52e965733a6a4bc95f5b8c5ee291a56370ce98dddb2 mqj5sb.yaohqcn37t88t02z --discovery-token-ca-cert-hash sha256:80982a370ef22ba5a8555f52e965733a6a4bc95f5b8c5ee291a56370ce98dddb

    39920编辑于 2024-07-22
  • 来自专栏让技术和时代并行

    HPA|聊聊K8S的横向扩容能力

    因此,如果在正常情况下pod只需要2个CPU核,则requests参数可以设置为2,limits参数可以设置为8(或更多)。 在正常情况下,只使用2个核,但是如果有一个工作负载峰值,pod将被允许使用超过请求的2个核,直到配置的限制值,在本例中为8(或更多)。 在高水平上,用HPA自动缩放将经过3个步骤 检测-HPA检测到超过目标阈值 扩容-通过HPA发出扩容请求作出回应 容器就绪-新的副本开始接收流量 虽然这个过程的第3步——容器准备就绪——不是由HPA负责的

    1.6K10编辑于 2023-03-18
  • 来自专栏SY小站的专栏

    k8s对接云实现自动扩容pod

    介绍 在之前的文章我介绍了下 Custom Metric 怎么实现自动扩容的。 k8s基于自定义指标实现自动扩容 实际上Kubernetes定义了三种不同的监控数据接口,分别是Resource Metric,Custom Metric以及External Metric。 External Metric就是针对云场景的了,比方说通过获取slb最大连接数来实现自动扩容。 下面我来说下具体怎么实现的。 简单说下各个指标的含义,方便之后去选择哪个指标去自动扩容。 内存使用情况 k8s_workload_memory_rss rss ❞ 扩容例子 根据slb_l4_active_connection这个指标,实现自动扩容 apiVersion: apps/v1beta2

    1.5K20发布于 2020-06-29
  • 来自专栏全栈程序员必看

    ArrayList 扩容详解,扩容原理

    ArrayList 扩容详解,扩容原理 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长。 ArrayList不是线程安全的,只能用在单线程环境下。 看如果需要扩容,则扩容。 ②是将要添加的元素放置到相应的数组中。 下面具体看 ensureCapacityInternal(size + 1); // ① 是如何判断和扩容的。 newCapacity = minCapacity; //jdk1.7这里增加了对元素个数的最大个数判断,jdk1.7以前是没有最大值判断的,MAX_ARRAY_SIZE 为int最大值减去8( 也就是当添加第11个数据的时候,Arraylist继续扩容变为10*1.5=15(如下图二);当添加第16个数据时,继续扩容变为15 * 1.5 =22个(如下图四)。 在JKD1.6中实现是,如果通过无参构造的话,初始数组容量为10,每次通过copeOf的方式扩容后容量为原来的1.5倍,以上就是动态扩容的原理。

    5.7K11编辑于 2022-07-01
  • 来自专栏java知识点总结

    kali扩容遇到无法扩容问题

    pc_blog_bottom_relevance_base6&spm=1001.2101.3001.4242.1&utm_relevant_index=3 其实有些地方他也写的不是太清楚,这儿补充一下 这儿快照删掉之后就可以扩容

    48310编辑于 2025-02-24
  • 来自专栏全栈程序员必看

    hashmap扩容过程保证可用_HashMap扩容

    笔者在面试美团时曾被面试官问到HashMap扩容机制的原理。这个问题倒不难,但是有些细节仍需注意。 JDK1.8对HashMap进行的较大的改动,其中对HashMap的扩容机制进行了优化。 这是因为多次执行put操作会引发HashMap的扩容机制,HashMap的扩容机制采用头插法的方式移动元素,这样会造成链表闭环,形成死循环。 JDK1.8中HashMap使用高低位来平移元素,这样保证效率的同时避免了多线程情况下扩容造成死循环的问题。这篇博客重点介绍扩容时使用到的高地低平移算法。 在扩容机制下数组两倍扩容,数组的长度发生了变化,同时我们也必须要严格遵守计算数组下标index的算法,否则在新数组调用get()无法获取到相应的Node结点。 当数组扩容时,链表所有的结点必须根据新数组的长度重新计算下标位,此时即使链表中每个结点的Hash值不尽相同,但是由于&运算和数组两倍扩容的特殊性,可以根据高低位算法将链表分为高位链表和低位链表,并将这两个链表迁移到新数组不同的下标位

    2K20编辑于 2022-11-08
  • 来自专栏SY小站的专栏

    k8s基于自定义指标实现自动扩容

    resources:通过 seriesQuery 查询到的只是指标,如果需要查询某个 Pod 的指标,肯定要将它的名称和所在的命名空间作为指标的标签进行查询,resources 就是将指标的标签和 k8s overrides:它会将指标中的标签和 k8s 资源关联起来。 现在,让我们检查该指标的当前值: [root@prometheus]# kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces SuccessfulRescale 3m4s horizontal-pod-autoscaler New size: 2; reason: All metrics below target 发现触发扩容动作了 参考链接 https://github.com/directxman12/k8s-prometheus-adapter

    2.7K100发布于 2020-06-11
  • 来自专栏全栈程序员必看

    Linux磁盘扩容 之 LVM 扩容之路

    为了方便后人快速扩容,特此记录。 就是说假如我们有3块4T的硬盘,我们可以用LVM组成一个12T的硬盘来用,后期也可以非常安全的在线扩容。ps:现在Linux安装的时候其实默认就采用了LVM的形式。 开始扩容 那么了解了基本概念后,我们就要开始扩容了,我们先使用df -h看看我的服务器的可用空间: 太惨了吧! 这个时候再看我们的操作室LV就已经扩容啦! 咦~但我们的文件系统为啥还是这么小呢? 这个时候操作系统还没法识别到这个新的空间,所以我们要更新一下让操作系统知道我们已经扩容啦!不同格式的分区更新文件系统的方式也不一样。需要查看一下你的文件系统是ext4还是xfs。

    7K10编辑于 2022-08-28
  • 来自专栏院长运维开发

    K8s基于自定义指标实现自动扩容

    resources:通过 seriesQuery 查询到的只是指标,如果需要查询某个 Pod 的指标,肯定要将它的名称和所在的命名空间作为指标的标签进行查询,resources 就是将指标的标签和 k8s overrides:它会将指标中的标签和 k8s 资源关联起来。 现在,让我们检查该指标的当前值: [root@prometheus]# kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces SuccessfulRescale 3m4s horizontal-pod-autoscaler New size: 2; reason: All metrics below target 发现触发扩容动作了 参考链接: https://github.com/directxman12/k8s-prometheus-adapter

    93810发布于 2020-06-12
  • 来自专栏sktj

    docker 扩容

    image.png image.png DOCKER在线扩容 DOCKER搭建私有仓库

    2K20发布于 2019-09-20
  • 来自专栏IT运维技术圈

    k8s一键扩容node节点脚本

    继推出k8s集群一键升级脚本之后有不少小伙伴还有k8s在线扩容节点的需求,所以本次波哥就又写了一个扩充节点的脚本。 明天有时间我再整理一下k8s部署集群脚本,目前是固定版本的,转化成部署任意版本的脚本或许更灵活一些。这样我们部署,升级,扩容三套脚本基本就能搞定k8s日常基础需求了。波哥也可以安心的写小程序后台了。 同样只要是你使用波哥的脚本部署的k8s集群都支持一键扩容哦! 脚本介绍: 跟以往一下我们有个base.config文件,修改上面的参数。这里我写好了自己的例子还有相关注释。

    63920编辑于 2022-06-26
  • 来自专栏kinnylee钻研技术

    K8S-Node自动扩容项目CA源码分析(下)

    CloudProvider:前面介绍过,主要用于操作 IaaS 云资源Estimator:评估扩容节点Expander:从多个符合扩容条件的 NodeGroup 中选择最终 Node 的策略func initializeDefaultOptions (unschedulablePodsToHelp, currentTime) {// Node 扩容过程中,pod 新创建,等待一定冷却周期再尝试扩容} else { // 启动扩容ScaleUp a.processors.NodeInfoProcessor.Process(autoscalingContext, nodeInfosForGroups) // 获取未注册的 node(在 CA node group 中,但是未注册到 k8s computeScaleUpResourcesDelta(context, processors, nodeInfo, nodeGroup, resourceLimiter) // 校验是否超过限额,对比可扩容量和待扩容量 = nil && bestOption.NodeCount > 0 { // 得到需要扩容的节点数 newNodes := bestOption.NodeCount // 判断是否达到扩容上限

    1.7K10编辑于 2022-07-02
  • 来自专栏kinnylee钻研技术

    K8S-Node自动扩容项目CA源码分析(上)

    一、概述上一篇文章介绍了 k8s 自动扩缩容的三种方式:HPA、VPA、CA,以及各自的使用场景和架构。本文针对 CA 做源码分析。 1.1 CA架构回顾参考CA由一下几个模块组成:autoscaler:核心模块,负责整体扩缩容功能Estimator:负责评估计算扩容节点Simulator:负责模拟调度,计算缩容节点Cloud Provider 图片1.2 仓库代码结构源码地址CA 代码在 k8s 官方的 autoscaler 仓库下,该仓库存放自动扩缩容相关组件,包括前文介绍的 VPA、今天的主角CA、还有一个VPA修改pod资源的插件 Addon // 返回当前目标数量,必须实现该方法 // 有可能 k8s 节点数量和这个值不相等,但是一旦一切稳定(node完成启动和注册、节点彻底删除)就应该等于 Size()TargetSize() (int 的那些节点Nodes() ([]Instance, error)// 可选实现 // 返回包含空 node 新的的调度结构体,将被用于扩容仿真,以预测一个新的扩容节点是什么样的 // 返回的 NodeInfo

    1.4K10编辑于 2022-07-02
  • 来自专栏全栈程序员必看

    hashmap动态扩容死循环_HashMap扩容

    HashMap扩容死循环问题源码分析问题(jdk1.7) 一、首先hashmap单线程正常扩容 遍历每个数组,依次遍历每个数组的链表,根据头插法由原来的1,2,3 变为了3,2,1 二、hashmap 多线程扩容死循环问题 两个线程 e1 ,e2 此时 线程一先执行,但线程二的指向发生改变,改为线程变换后的具体存储;初始的e2指向0号位的1,但经过线程一的变换指向了2号位的1了,next也发生改变

    2K30编辑于 2022-11-08
  • 来自专栏运维开发故事

    K8s中明明配置了HPA,但是没扩容

    它在业务繁忙的时候可以有效的对 Pod 进行横线扩展,但是最近发现明明使用率已经超过了定义的目标值,但是为何没有扩容呢? 一、HPA 的整体架构与核心组件 HPA 的实现位于 Kubernetes 的 k8s.io/kubernetes/pkg/controller/podautoscaler 目录下,主要由以下几个组件构成 ) scaleUpLimitMinimum = 4.0 (最小扩容限制) 其计算逻辑是: 扩容限制 = max(当前副本数 × 2, 4) 例如:当前2个副本,扩容限制为max(2×2, 4) = 4 8 :返回8(在范围内),条件"DesiredWithinRange" 期望副本数为15 : 扩容限制 = max(5×2, 4) = 10 返回10(扩容限制),条件"ScaleUpLimit" 期望副本数为 25 : 扩容限制 = max(5×2, 4) = 10 返回10(扩容限制),条件"ScaleUpLimit" 这个函数是HPA安全扩缩容机制的重要组成部分,确保扩缩容操作既满足业务需求又不会造成系统不稳定

    19710编辑于 2025-11-17
  • 来自专栏全栈程序员必看

    hashmap和hashtable数组扩容_散列表扩容

    HashMap扩容机制分析 在说HashMap扩容机制之前,有必要简述下HashMap的基本结构。以便各位更加清除的理解HashMap的底层是如何扩容的。 HashMap自JDK1.8之后结构采用数组+单链表【单链表长度达到8后结构转化为红黑树】。所以从结构上进行分析,HashMap的最基本结构只有两种。 下面就着重叙述HashMap底层的扩容了。 了解HashMap的读者都知道HashMap的初始化大小是16,至于为什么是16,可以参看我之前的博客。 这里不在叙述。 HashMap如何扩容呢? 在这里扩容不是直接原来的结构上进行顺序性的增加,而是先计算扩容之后的容量。然后重新建一个容量大小数组,在将原数组的元素按照指定的方式加入到新的数组当中去! ArrayList扩容机制 和这个差不过。扩容的大体思想都是一样的,但是比HashMap简单的多。不过是ArrayList的初始容量为10.

    1.3K20编辑于 2022-09-27
  • 来自专栏c盘清理

    C盘能不能扩容?怎么扩容

    C盘能不能扩容?怎么扩容

    68510编辑于 2026-01-16
领券