云原生环境下Pulsar与Flink的部署及安全配置
1. Pulsar部署中的亲和性与副本控制
在Kubernetes中,亲和性(Affinity)是一种机制,用于创建规则,决定哪些Pod可以或不可以共同部署在同一个物理节点上。对于像Pulsar这样的分布式系统,为了实现最大的弹性,有特定的部署要求。例如,在部署多个代理(brokers)时,每个Pod应该运行在不同的物理节点上,以防止节点故障导致整个Pulsar集群不可用。如果所有代理Pod都集中在同一个节点上,当该节点出现故障时,Pulsar集群将无法正常工作。虽然Kubernetes可以恢复运行时状态并重新启动Pod,但在此期间会出现停机时间。启用反亲和性(anti - affinity)可以避免这种情况发生。如果在单节点系统(如桌面)上运行,可以禁用反亲和性,以便集群能够正常启动。配置示例如下:
affinity:
anti_affinity: true
同时,对Pulsar组件的副本数量进行细粒度控制,可以根据具体用例定制部署。每个副本Pod都会消耗资源,因此需要在应用程序的生命周期中进行考虑。例如,一开始使用较少数量的代理和簿记员(bookkeeper)Pod可以处理一定级别的流量,但随着流量的增加,可以通过Helm添加更多副本并更新配置。示例配置如下:
zookeeper:
replicaCount: 1
bookkeeper:
replicaCount: 1
broker:
replicaCount: 1
proxy:
rep