How can I expose the container registry securely on internet

On 2 remote servers, I want to setup 2 nodes, (control plane + node). For the application images, I want to host the images in the registry hosted inside microk8s instead of hosting them on docker hub. My question is about how secure that internal registry is? or if it isn’t, which seems to be the case, what are the steps I can take to expose it securely on internet?

Is it possible to have some other registry and point microK8s to use that? I could not find enough documentation about this. If anyone can help me in this regard?