At VIX Digital we use cloud hosted gitlab for certain functions and one of those is as a container registry, it is free, takes a second to setup and performs well for most things. It isn't our only place for storing container images, but the same applies.
Kubernetes will pull images from wherever you specify but will need to know any access credentials required if not in the public domain. Here is how it is done:
This secret will be stored in the kubernetes etcd cluster and accessible by worker nodes.
Be sure to add imagePullSecrets to your deployment yaml file.