Travis CI and CircleCI
I prefer to separate the CI solution from the CD solution. Conceptually, the role of the CI process is to generate a container image and push it to a registry. It doesn't need to be aware of Kubernetes at all. The CD solution, on the other hand, must be Kubernetes-aware, and it ideally runs inside the cluster.
For CI, I considered Travis CI and CircleCI. Both provide free CI services for open source projects. I settled on CircleCI because it is more feature-complete and has a nicer UI, which is important. I'm sure Travis CI would work well too. I use Travis CI in some of my other open source projects. It's important to note that the CI part of the pipeline is completely Kubernetes-agnostic. The end result is a Docker image in an image registry. This Docker image can be used for other purposes and not necessarily deployed in a Kubernetes cluster.