在前几期,我们知道,通过Service机制,可以为具有同一个标签的容器集群,分配一个软件负载均衡器,使之能步调一致地对外提供服务,就像列宁组织具有共青团员标签的青年们,齐心协力保卫苏维埃,为人类解放斗争那样。
然而,大部分人并不知道,列宁还有一句名言——“共产主义,就是苏维埃政权加全国电气化!”
在列宁时代,电气化的出现,使得人类利用能源的效率大大提升,以更强大的生产力促进社会上层建筑的进步。
类似地,在容器网络中,如果有专用硬件实现的应用交付引擎(ADE,Application Deliver Engine),代替软件负载均衡器,也会极大地提升容器对外提供服务的性能,降低时延,取得更好的用户体验。
事实上,在ADE的市场上,主流的厂商都已经对容器网络实现了充分的支持。
让我们举一个栗子。
ADE的代表厂商是F厂。F厂的ADE产品B,为Kubernetes提供了用自身取代软件负载均衡的方案。
这种方案叫做Kubernetes BIG-IP Controller。
让我们看这张熟悉的图——
我们期望使用F厂的Big-IP取代service中的软LB。F厂的方案是将service配置为nodeport方式,以下面的yaml为例:
代码语言:javascript复制apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
selector:
app: MyApp
ports:
# By default and for convenience, the `targetPort` is set to the same value as the `port` field.
- port: 9376
targetPort: 9376
# Optional field
# By default and for convenience, the Kubernetes control plane will allocate a port from a range (default: 30000-32767)
nodePort: 30007
实际上kubernetes会为这个service自动分配IP地址,如10.154.132.107.
这样,数据的流向就是:
F厂提供的插件,实现了用硬件SLB的虚拟化实例代替图中的SLB。它的安装步骤需要参照F厂的文档:
https://clouddocs.f5.com/products/connectors/k8s-bigip-ctlr/v1.0/#guides
https://clouddocs.f5.com/containers/latest/userguide/kubernetes/#example
另一种硬件ADE替代Service,典型的实现,是利用SDN控制器。
让我们回忆一下,SDN控制器对接Kubernetes的实质——
SDN控制器为Kubernetes提供CNI插件,容器在入网时调用CNI插件,CNI插件会配置OVS和硬件交换机,实现类似层次化端口绑定的VXLAN Overlay。
我们还知道,SDN控制器可以纳管OpenStack的FWaaS和LBaaS,向网络中的硬件防火墙和负载均衡下发配置。类似地,SDN控制器在对接Kubernetes时,也可以在虚拟网络中创建vLB,并用ADE设备的实例来实现这个vLB,并取代Kubernetes Service中的软件SLB——
这样一来,电气化取代了蒸汽机,大大提升了容器网络对外提供服务的生产力。
让我们重温列宁的名言:
共产主义,就是苏维埃政权加全国电气化!
实现共产主义的前提,是物质极大丰富,生产力高度发达。但更重要的是“苏维埃”。
苏维埃是俄语中“革命委员会”的音译。网络中的苏维埃,就是SDN控制器。
在容器网络中,SDN控制器下的硬件VXLAN Overlay 硬件ADE引擎的组合,才能让业务规模和业务迭代摆脱物理服务器的锁链,实现真正的自由与解放!