Hi Fengwei,
If you're just running Knative and not other applications on your cluster, Kourier is the lowest-overhead way to get started.
Kourier: purpose-built for running Knative, no additional features
Ambassador: an API gateway with ability to perform rate-limiting, etc
Contour: a Kubernetes Ingress implementation with cross-namespace delegation
Istio: a service mesh with various API and authorization controls
There's not a single "right" answer here, which is why we support multiple HTTP reverse proxies. You should install whichever one works best for your cluster.