Airbnb的动态kubernetes集群扩缩容 本文介绍了Airbnb的集群扩缩容的演化历史,以及当前是如何通过Cluster Autoscaler 实现自定义扩展器的。...我们每天的流量波动都非常大,需要依靠动态扩缩容来保证服务的正常运行。 为了支持扩缩容,Airbnb使用了Kubernetes编排系统。...这些演进可以划分为如下几个阶段: 阶段1:异构集群,手动扩容 阶段2:多集群类型,独立扩缩容 阶段3:异构集群,自动扩缩容 阶段1:异构集群,手动扩缩容 在使用Kubernetes之前,每个服务实例都运行在其所在的机器上...阶段2:多集群类型,独立扩缩容 集群配置的第二个阶段是伴随多负载类型出现的,每个试图在Kubernetes上运行的负载都有着不同的需求。为了符合这些需求,我们创建了一个抽象的集群类型。"...阶段3:异构集群,自动扩缩容 当Airbnb的几乎所有在线计算都转移到Kubernetes时,集群的类型已经超过30,集群数目超过100。这种扩展使得Kubernetes集群管理相当乏味。
扩容deployment控制器下的nginx-app的Pod的副本数 kubectl scale deployment nginx-app --replicas=3 缩容deployment控制器下的nginx-app...kubectl scale deployment nginx-app --replicas=1 扩容执行资源清单的Pod的副本数 kubectl scale --replicas=6 -f rs.yaml 缩容执行资源清单的
图片来源: instagram.com/febin_raj Pod水平自动扩缩(Horizontal Pod Autoscaler, 简称HPA)可以基于 CPU/MEM 利用率自动扩缩Deployment...性能问题 单线程架构 默认的hpa-controller是单个Goroutine执行的,随着集群规模的增多,势必会成为性能瓶颈,目前默认hpa资源同步周期会15s,假设每个metric请求延时为100ms...Update更新计算出的副本数 尤其在获取metrics value时,需要先调用apiserver,apiserver调用metrics-server/custom-metrics-server,当集群内存在大量...另外,hpa核心的扩缩算法根据当前指标和期望指标来计算扩缩比例,并不适合所有场景,只使用线性增长的指标。...总结 Kubernetes提供原生的HPA只能满足一部分场景,如果要上生产环境,必须对其做一些优化,本文总结了当前HPA存在的不足,例如在性能、使用率计算方面,并提供了解决思路。
目录 HDFS-集群扩容及缩容 黑名单配置步骤 应用场景 服务器间数据均衡配置 开启数据均衡命 停止数据均衡命令 需求 环境准备 服役新节点具体步骤 问题1 服务器间数据均衡 问题2 105是怎么关联到集群的...配置白名单的步骤 二次配置白名单 添加白名单 增加新服务器 服务器间数据均衡 黑名单退役旧节点 HDFS-集群扩容及缩容 添加白名单 白名单:在白名单的主机IP地址可以访问集群,对集群进行数据的存储。...不在白名单的主机可以访问集群,但是不会在主机上存储数据 企业中:配置白名单,可以尽量防止黑客恶意访问攻击。...> # 分发给其他节点 [ranan@hadoop102 hadoop]$ xsync whitelist blacklist hdfs-site.xml 3.第一次添加白名单(黑名单)必须重启集群...SecondaryNameNode 5.在 hadoop104 上执行上传数据 [ranan@hadoop104 bin]$ hadoop fs -put myhadoop.sh / 客户端还可以访问集群
--- 一、环境说明: 集群扩容分为两种情况:一种是扩副本,一种是扩资源。 原集群部署模式:1-1-1。...二、白屏方式进行扩容: 扩容副本:进入OCP -> 找到要扩容的集群 -> 总览 -> 新增zone; 扩容资源:进入OCP -> 找到要扩容的集群 -> 总览 -> 新增OBServer; 如图: 图片...4)针对原集群名进行启动集群: obd cluster start ywob +------------------------------------------------+ |...说明:如果要缩容,步骤如下:收缩节点 -> 发起合并 -> 修改locality -> 收缩资源池 -> 下线zone。...all_rootservice_event_history 查看集群负载均衡任务的执行情况。
导语 在HDFS集群运维过程中,常会碰到因为实际业务增长低于集群创建时的预估规模;集群数据迁出,数据节点冗余较多;费用控制等原因,需要对集群进行缩容操作。...Decommission DataNode是该过程中关键的一步,就是把DataNode从集群中移除掉。...理论上可行的,不过在实际的集群中,如果某份数据只有一份副本而且它就在这个机器上,那么直接关掉并拔走机器就会造成数据丢失。...hdfsfile; done 延申 1、文件未关闭导致Decommission超时 当待Decommission DataNode节点中存在打开中的文件,表明此文件目前不是一个完整状态,此文件副本就无法复制到其它
一、运维需求 在 RocketMQ 集群的实践中,对集群扩容、缩容、节点下线等运维做到平滑、业务无感知、数据无丢失,这个对于集群运维的同学来说非常重要。...比如前些日子出现的问题,由于线上集群频繁出现 CPU 毛刺甚至直接挂掉并伴随着集群抖动,对内核参数的调整只能减缓毛刺却不能消除抖动。集群抖动业务使用会伴随着发送延迟告警,始终是个必须处理的隐患。...此时集群中变成8主,其中新增集群有从节点,即装有centor7内核的新机器构成了4主4从,接下来就只需要将内核为centos6的主节点的数据消费完成,并下线即可。...三、平滑缩容 接下来主要是将装有centos6内核的旧机器从集群中移除,具体操作如下。...通常线上集群的存储时间为2~3天;可以在过了存储时间后再安排下线。
Kubernetes 1.16 发布前夕,该功能增强还没有合入,所以最快也要到 1.17 版本发布。...:该类应用希望当大量数据到达时希望快速扩容,在数据减少时,希望快速的缩容,以节省成本; 常规流量/数据处理应用:该类应用不那么重要,可以缓慢的扩容和缩容,以避免快速扩缩容带来抖动; 而当前版本的实现(1.15...每次缩容减少一个pod) periodSeconds = 600 (每10分钟缩容一次) 假如pod最开始数量为1,那么扩容路径如下: 1 -> 10 -> 100 -> 1000 同时,缩容路径如下(...,但是不要自动缩容,可以使用如下配置: scaleDown: percent= 0 pods = 0 把缩容的百分比和pod都置为0,那么就永远不会缩容。...特性实现: https://github.com/kubernetes/kubernetes/pull/74525 文章转载自容器魔方。
目录 一、运维需求 二、平滑扩容 1.下线从节点 2.重组主从模式 三、平滑缩容 1.关闭broker写权限 2.验证broker流量情况 3.验证broker积压情况...4.节点下线 四、问题答疑 一、运维需求 在 RocketMQ 集群的实践中,对集群扩容、缩容、节点下线等运维做到平滑、业务无感知、数据无丢失,这个对于集群运维的同学来说非常重要。...比如前些日子出现的问题,由于线上集群频繁出现 CPU 毛刺甚至直接挂掉并伴随着集群抖动,对内核参数的调整只能减缓毛刺却不能消除抖动。集群抖动业务使用会伴随着发送延迟告警,始终是个必须处理的隐患。...此时集群中变成8主,其中新增集群有从节点,即装有centor7内核的新机器构成了4主4从,接下来就只需要将内核为centos6的主节点的数据消费完成,并下线即可。...三、平滑缩容 接下来主要是将装有centos6内核的旧机器从集群中移除,具体操作如下。
adapter需要与apiserver通信);创建名为cm-adapter-resource-lister的clusterrolebinding,使得prom:prom-cm-adapter有权限列出集群的资源信息...The address will be set to the Kubernetes DNS name of the service and respective service port) Prometheus...从配置中可以看到prometheus并没有配置认证,而prometheus adapter则配置了与kubernetes交互的认证信息 流程图如下,aggregator通过service名称连接到APIService...参考: prometheus relabel说明 How to build a Kubernetes Horizontal Pod Autoscaler using custom metrics Configure...Kubernetes Autoscaling With Custom Metrics Monitoring Kubernetes performance metrics Horizontal Pod
service 列出当前集群中的service kubectl get services 创建一个新的service并暴露给外部流量 kubectl expose deployment/kubernetes-bootcamp...kubernetes-bootcamp Namespace: default Labels: run=kubernetes-bootcamp...确认删除: kubectl get services 确认没有暴露给集群外部: curl $(minikube ip):$NODE_PORT 确认集群内部还可以访问: kubectl exec -ti...| Running on: kubernetes-bootcamp-6bf84cb898-zbmj4 | v=1 缩容 kubectl scale deployments/kubernetes-bootcamp...kubernetes-bootcamp Namespace: default Labels: run=kubernetes-bootcamp
本节我们将介绍如何根据服务压力进行自动的扩缩容。 部署 我们借用《研发工程师玩转Kubernetes——CPU配额》中的代码。它是一个Http服务,接受请求后执行一段消耗CPU的操作。...但是本节我们需要动态扩缩容,副本个数根据服务压力动态改变,而不会固定在一个固定的副本个数上,所以spec.replicas字段不需要指定。...HorizontalPodAutoscaler清单 HorizontalPodAutoscaler是用来设置动态扩缩容条件的组件。...simple-http-deployment 1%/80% 2 10 7 10m simple-http-hpa Deployment/simple-http-deployment 1%/80% 2 10 2(自动缩容...大概又过了5分钟,Pod自动缩容到最低的副本数2。
上一篇我们了解了 Pod 的手动扩容和缩容,本篇来看看自动的方式。 K8S 作为一个集群式的管理软件,自动化、智能化是免不了的功能。...HPA 的目标是希望通过追踪集群中所有 Pod 的负载变化情况,来自动化地调整 Pod 的副本数,以此来满足应用的需求和减少资源的浪费。...这个例子中扩容最高不能超过 10 个,缩容最低不能少于 1 个。...(3)targetAverageUtilization 指定 CPU 使用率,也就是自动扩容和缩容的触发条件,当 CPU 使用率超过 50% 时会触发自动动态扩容的行为,当回落到 50% 以下时,又会触发自动动态缩容的行为...命令行 这种方式就是通过 kubectl autoscale 命令来实现创建 HPA 对象,实现自动扩容和缩容行为。
根据对线上流量、存储以及系统资源的占用,发现我们的 Pulsar 集群有许多的冗余,所以考虑进行缩容从而减少资源浪费,最终也能省一些费用。...不过在缩容之前很有必要先聊聊扩容,Pulsar 一开始就是存算分离的架构(更多关于 Pulsar 架构的内容本文不做过多介绍,感兴趣的可以自行搜索),天然就非常适合 kubernetes 环境,也可以利用...缩容 其实本文的重点在于缩容,特别是 Bookkeeper 的缩容,这部分内容我在互联网上很少看到有人提及。...不然就无法满足之前提到的 Write quorum size (QW) 要求;因此缩容还有一个潜在条件需要满足: 缩容后的 Bookkeeper 节点数量需要大于broker 中的配置: managedLedgerDefaultEnsembleSize...比较适合于用虚拟机部署的集群。 迁移数据 第二种就是需要迁移数据的方案,更适用于 kubernetes 环境。
准备开始 metrics-server是一个集群范围内的资源数据集和工具,同样的,metrics-server也只是显示数据,并不提供数据存储服务,主要关注的是资源度量API的实现,比如CPU、文件描述符...、内存、请求延时等指标,metric-server收集数据给k8s集群内使用,如kubectl,hpa,scheduler等,请参考 metrics-server 文档 。.../ssl/ca.pem - --tls-private-key-file=/opt/kubernetes/ssl/pki/ca-key.pem 问题二: metrics server...19Mi kube-system traefik-ingress-controller-dv9rd 6m 17Mi 动态扩缩容...kind: Deployment name: php-apache targetCPUUtilizationPercentage: 50 # cpu使用超过50%就扩容,低于就缩容
using Kubernetes 可扩展的应用可能会采用水平或垂直扩缩容来动态调整云端资源。...为了帮助选择最佳策略,本文主要对比了kubernetes中的水平和垂直扩缩容。...Kubernetes的自动扩缩容策略 k8s是一个基于Borg的开源项目,聚焦容器编排,并允许在集群中运行容器应用,同时简化了不同环境(生产、开发等)的配置。...这种扩缩容方式围绕某些指标,如CPU、内存、自定义指标或外部指标(基于Kubernetes外部的应用负载)。...总结 本次工作通过测量实验分析了Kubernetes中水平和垂直自动扩缩容的性能。
00:00:00 redis-server 10.0.0.103:6380 [cluster] 新节点加入集群 在原有集群任意节点内执行以下命令 root@node01 opt]# redis-cli...,同时也实现了直接添加为slave的支持: # 新节点加入集群 redis-trib.rb add-node new_host:new_port old_host:old_port # 新节点加入集群并作为指定...,该命令会检查新节点的状态,如果新节点已经加入了其他集群或者已经包含数据,则会报错,而使用cluster meet命令则不会做这样的检查,假如新节点已经存在数据,则会合并到集群中,造成数据不一致 迁移...Redis Cluster集群缩容 2.1 缩容原理 ?...那么通知其他节点忘记下线的节点 如果下线的是master,那么将此master的slot迁移到其他master之后,通知其他节点忘记此master节点 其他节点都忘记了下线的节点之后,此节点就可以正常停止服务了 2.2 缩容过程
在Kubernetes中,StatefulSet是一种用于部署有状态应用程序的控制器。...接下来我们将介绍StatefulSet的扩容和缩容。...new-replica-count>例如,如果我们要将名为web的StatefulSet的副本数量增加到5个,可以运行以下命令:kubectl scale statefulset web --replicas=5Kubernetes...缩容当我们需要减少StatefulSet的Pod数量时,可以使用以下命令:kubectl scale statefulset --replicas=例如,如果我们要将名为web的StatefulSet的副本数量减少到2个,可以运行以下命令:kubectl scale statefulset web --replicas=2Kubernetes会按照以下顺序执行缩容的过程
要手动扩容此Deployment,请更改Replicas字段的值,然后使用kubectl apply命令将更改应用于Kubernetes集群:kubectl apply -f nginx-deployment.yaml...这将导致Kubernetes在集群中创建两个新的Pod,从而将Deployment的总副本数增加到5个。
3主3从Redis集群扩缩容 使用主从时需要避免主与从在同一物理机, 否则当一对主从挂机后, 对应数据不可使用 一. 构建 1....10.122.1.86:6381 (容器内执行) 4.连接至集群中 docker exec -it redis-node-1 /bin/bash redis-cli -p 6381 -c 5....将6387节点作为master加入集群 docker exec -it redis-node-7 /bin/bash redis-cli --cluster add-node 10.122.1.86...将6388作为6387的slave新增至集群 redis-cli --cluster add-node 10.122.1.86:6388 10.122.1.86:6387 --cluster-slave...缩容 需求: 删除主从6387和6388 1.
领取专属 10元无门槛券
手把手带您无忧上云