How to Deploy to Kubernetes with Gitlab?

I'm a Backend Software Engineer studying Gitlab and Kubernetes. I don't know Kubernetes or Gitlab CI/CD well. To get better, I created a simple project. Its build consists of:

  1. compile code + make a fat JAR
  2. create docker image (that runs it) and push it up to my Gitlab Container Registry

That works. I'm working on the next step, adding a stage for deploying the app to an a Kubernetes cluster. I'm planning to use AWS EKS.

Conceptually, how can Gitlab CI/CD perform a Kubernetes deployment? A Gitlab Kubernetes Runner will, via kubectl or helm, install or upgrade an existing service by changing the container image?

Please say more/correct me, as well as provide any helpful links on this topic. Despite reading a few articles on Gitlab Kubernetes Runner, I'm a bit lost on how it all works conceptually.