K8S多集群管理实践(一):Karmada架构解析与部署入门


1. 为什么需要多集群?

1.1 单集群管理规模有上限

etcd瓶颈

etcd对空间大小的要求很高,默认限制为2GB,但根据官方文档的建议最大值为8GB,这意味着集群能存储的对象数量和大小有限。

内存占用

API Server作为K8S集群的入口,为提高查询效率,API Server会对集群的所有对象做缓存,当集群越大,缓存需要的内存空间就越大。

K8S中其他控制器也需要对侦听的对象构建客户端缓存,也会导致占用系统内存,意味着内存需求对系统的规模也会有一定限制。

控制器复杂度

K8S的一个业务流程是由多个对象和控制器联动完成的,就算控制器遵循了设计原则,随着对象数量的增长,控制器的处理耗...

Read more

Kafka中一项配置有问题导致一个小时多消耗了50G公网流量费用


最近在看阿里云账单的时候发现公网流量资源包成本飙升,经过查询账单明细发现指向的是一台Kafka服务器。当时感觉很奇怪最近也没修改什么,为什么会消耗这么多呢?业务后端服务配置的也是Kafka的内网地址,应该不至于会消耗公网带宽吧?于是查看了几个Kafka的配置文件,最终在server.properties配置文件中发现了一个可疑的配置:

advertised.listeners=PLAINTEXT://公网IP:9191

由于这个地方并不是我配置的,因此第一次看到这个配置我就想这里为什么不直接配置内网IP呢?后面问了一下Leader,是因为我们是做SaaS平台的,有客户选择了私有部署需...

Read more

etcd备份脚本


在Kubernetes中,所有的资源对象都存储在etcd中,如果etcd数据丢失,将造成整个Kubernetes集群不可用,所以要定期进行数据的备份。

#!/bin/bash 

ETCDCTL_API=3
ENDPOINT='https://192.168.3.203:2379'
BACKUP_PATH=/data/backup/etcd
BACKUP_TIME=`date +%Y%m%d_%H%M%S`
CA_PATH=/etc/kubernetes/pki/etcd/ca.crt
CERT_PATH=/etc/kubernetes/pki/etcd/server.crt
KEY_P...

Read more