我们一般一个 pod 一个服务,但是有时候需要同一服务的不同版本共存,k8s 能做到这点吗?谢谢!
1
sniperking1234 2020-10-09 11:45:36 +08:00
使用 istio
|
2
tomy0608 2020-10-09 11:55:08 +08:00
这个情况用两个 deployment 实现吧
|
3
wxsm 2020-10-09 14:00:54 +08:00
A/B 版本用相同的 label 就可以了,用同一个 service 作为入口。
|
4
ManjusakaL 2020-10-09 14:05:02 +08:00
|
5
sniperking1234 2020-10-09 14:13:05 +08:00
@ManjusakaL 那只能是 50%-50%的流量吧,感觉很不灵活。不知道楼主场景是什么,想要一步到位还是用 istio 省事
|
6
zhenjiachen 2020-10-09 14:23:07 +08:00 via iPhone
我也在找,应该就只能用两个 deployment 了,没有其它的办法
|
7
wxsm 2020-10-09 14:37:14 +08:00 via iPhone
@sniperking1234 你确定?只能 50%-50%? A 部署 10 个 pod,B 部署 5 个,还是 50%?
|
8
sniperking1234 2020-10-09 14:47:42 +08:00
|
9
wxsm 2020-10-09 14:52:00 +08:00
@sniperking1234 乖乖,谁跟你说 pod 只能起两个。。人家楼上都一大堆说两个 deployment 的了,一个 deployment 里面想起几个 pod 不是随你?
|
10
ManjusakaL 2020-10-09 14:52:33 +08:00
@sniperking1234 只是举个例啊,你要是整数比例就用两个 deployment 控制不同的 replica
你要是细粒度的控制流量,用个 APISIX 这种 Ingress 都比直接 istio 轻量啊 也没多大还起个 istio,可能最后 envoy 耗的资源都比业务多。Mesh 不是这么玩的 |
11
sniperking1234 2020-10-09 14:59:01 +08:00
@wxsm 我一开始就是回复这句话,"起两个不同的 Pod,然后 Service 走同一个 label 关联就行",在这个场景下,只能是 50%-50%的流量,貌似我这个回复 @的也不是你,你想杠就杠吧。
|
12
sniperking1234 2020-10-09 15:00:18 +08:00
@ManjusakaL APISIX 不了解,貌似只能是当网关使用吧,集群内调用应该就不行了。所以不知道 lz 的业务场景,我这也只是提个解决的方案。
|
13
ManjusakaL 2020-10-09 15:01:34 +08:00
@sniperking1234 嗯,实际上 istio 坑也挺多的,,一般不建议轻易上(可能 lz 基础的服务都还没收口)
|
14
LanLiang 2021-03-16 14:24:34 +08:00
OpenKruise 可以达到效果
|