Kubernetes EndpointSlice 和Endpoint 对象的区别
admin
2024-02-05 11:44:38

EndpointSlice 是由社区提交的0752-endpointslices 引入的。

EndpointSlice是Endpoint对象的集合。kubernetes会给任何带选择器的Service对象创建EndpointSlice. EndpintSlice对象包含Service 选择器匹配到的所有Pod 的网络地址。EndpointSlice通过<协议,端口,Service名字> 对Endpoint进行分组。

原来的Endpoint类似:

Subsets:Addresses:          192.168.238.108,192.168.238.109,192.168.238.110

Endpoint 包含Service所有的Pod IP, 因此当一个Pod发生重启时,Pod IP发生改变,需要对整个Endpoint对象重新计算并存储。
当Pod数量较少的情况下,这个不是大问题。但是当数量很多时,需要的大量的网络IO.

当一个Pod发生重启时,EndpointSlice引入的话,只需要更新发生改变的数组元素就可以了。核心点在于在etcd里存储过程中不把整块数据一块存放(像原来Endpoint那样),而是分成几块分开存储

下面一个场景来直观感受下EndpointSlice引入带来的好处:

场景1: 20,000 endpoints, 5,000 nodes

Service Creation/Deletion

Endpoints100 Endpoints per EndpointSlice1 Endpoint per EndpointSlice
# of writesO(1)O(P/B)
120020000
Size of API objectO(B)O(1)
20k * const = ~2.0 MB100 * const = ~10 KB< ~1KB
# of watchers per objectO(N)O(N)O(N)
500050005000
# of total watch eventO(N)O(NP/B)O(NP)
50005000 * 200 = 1,000,0005000 * 20000 = 100,000,000
Total Bytes TransmittedO(PN)O(PN)O(PN)
2.0MB * 5000 = 10GB10KB * 5000 * 200 = 10GB~10GB

Single Endpoint Update

Endpoints100 Endpoints per EndpointSlice1 Endpoint per EndpointSlice
# of writesO(1)O(1)O(1)
111
Size of API objectO(B)O(1)
20k * const = ~2.0 MB100 * const = ~10 KB< ~1KB
# of watchers per objectO(N)O(N)O(N)
500050005000
# of total watch eventO(N)O(N)O(N)
500050005000
Total Bytes TransmittedO(PN)O(BN)O(N)
~2.0MB * 5000 = 10GB~10k * 5000 = 50MB~1KB * 5000 = ~5MB

Rolling Update

Endpoints100 Endpoints per EndpointSlice1 Endpoint per EndpointSlice
# of writes
20k20k20k
Size of API objectO(B)O(1)
20k * const = ~2.0 MB100 * const = ~10 KB< ~1KB
# of watchers per objectO(N)O(N)O(N)
500050005000
# of total watch eventO(NP)O(NP)O(NP)
5000 * 20k5000 * 20k5000 * 20k
Total Bytes TransmittedO(P^2N)O(NPB)O(NP)
2.0MB * 5000 * 20k = 200 TB10KB * 5000 * 20k = 1 TB~1KB * 5000 * 20k = ~100 GB

可以发现当副本数量增多,网络IO是相当多的。尤其是一个Pod重启这样非常简单频繁出现的场景竟然要传输10TB的数据,而EndpointSlice方式只需要50MB.

因为更

上一篇:数字开头的成语

下一篇:新篇章同义词

相关内容

热门资讯

海博思创股价涨5.05%,易米... 12月26日,海博思创涨5.05%,截至发稿,报278.15元/股,成交6.53亿元,换手率6.32...
焦作万方股价涨5.37%,明亚... 12月26日,焦作万方涨5.37%,截至发稿,报10.79元/股,成交3.96亿元,换手率3.17%...
焦作万方股价涨5.37%,南方... 12月26日,焦作万方涨5.37%,截至发稿,报10.79元/股,成交3.98亿元,换手率3.19%...
鸿远电子涨2.01%,成交额3... 12月26日,鸿远电子盘中上涨2.01%,截至11:09,报52.82元/股,成交3.39亿元,换手...
祥龙电业涨2.05%,成交额4... 12月26日,祥龙电业盘中上涨2.05%,截至11:09,报12.46元/股,成交4177.87万元...