Is CNI ( e.g. Flannel, Calico) is still needed once I start using a service mesh ( e.g. Istio) at Kubernetes clusters?
CNI is a mandatory requirement for having a working Kubernetes cluster but service mesh is not. CNI primarily works at L4 layer whereas service mesh works at L7 layer. Although there might be some bits of overlapping in functionality between a CNI plugin and service mesh they don't completely replace each other.