pod限额
Knative介绍
etcd raft协议
etcd raft选举机制
etcd 是一个分布式的k/V存储系统。核心使用了RAFT分布式一致性协议。一致性这个概念,它是指多个服务器在状态达成一致,但是在一个分布式系统中,因为各种意外可能,有的服务器可能会崩溃或变得不可靠,它就不能和其他服务器达成一致状态。这样就需要一种Consensus协议,一致性协议是为了确保容错性,也就是即使系统中有一两个服务器当机,也不会影响其处理过程。
为了以容错方式达成一致,我们不可能要求所有服务器100%都达成一致状态,只要超过半数的大多数服务器达成一致就可以了,假设有N台服务器,N/2 +1 就超过半数,代表大多数了。
raft协议核心要点:
- Leader选举(Leader Election)
- 日志同步 (Log Replication)
- leader收到client的更新请求后,会讲更新的内容同步给所有follower。
- 集群状态的正确性 (Safety)
- 保证日志的一致性
- 保证选举的正确性
k8s联邦集群
Federation 概述
Federation(集群联邦)是kubernetes社区中的多云管理项目,可以方便地跨地区跨服务商管理多个Kubernetes集群。其最初在1.3版本中被引入,后从主库迁移到独立repo(v1版本),由于v1版本存在的若干问题,现已切换到v2版本。v1、v2版本虽然架构有较大差异,但共同目标都是使管理多个集群更为简单,主要实现了以下俩个模型:
跨集群的资源同步与伸缩(Sync and Scale resources across clusters):提供在多个集群中保持资源同步与伸缩的功能,例如确保一个Deployment可以运行在多个集群中,并根据负载情况在集群间合理伸缩。
跨级群的服务发现(Cross cluster discovery):提供自动配置DNS服务的功能,实现应用跨集群服务发现的能力,例如在某一集群中可以访问另一集群的应用。
大规模集群配置优化
节点配额和内核参数调整
对于公有云上的 Kubernetes 集群,规模大了之后很容器碰到配额问题,需要提前在云平台上增大配额。这些需要增大的配额包括
- 虚拟机个数
- vCPU 个数
- 内网 IP 地址个数
- 公网 IP 地址个数
- 安全组条数
- 路由表条数
- 持久化存储大小
参考gce随着node节点的增加master节点的配置:
- 1-5 nodes: n1-standard-1
- 6-10 nodes: n1-standard-2
- 11-100 nodes: n1-standard-4
- 101-250 nodes: n1-standard-8
- 251-500 nodes: n1-standard-16
- more than 500 nodes: n1-standard-32