As far as I know, Kubernetes is an orchestration framework to deploy and manage containers. On the other hand, Kubernetes Engine is responsible for scaling clusters up and down, and also to manage container images.
From looking at the above, they both seem to be the same thing or very similar. From the above definitions, they seem to be practically the same thing. What are there differences?
Kubernetes: The container orchestration tool that can be run on a Linux and now a Windows server too.
Kubernetes Engine: Name given by cloud providers like GCP (GKE), AWS (EKS), and Azure (AKS) to their fully manager Kubernetes service.
The main difference here is that the cloud providers manage the main aspects of your Kubernetes clusters, such as installing it, scaling the nodes, displaying pods running on their cloud console, provide monitoring, etc.
According to Google documentation here. Kubernetes Engine is managed (control plane/master and not the data plane/worker) by the Cloud Vendor, Google in this case. Managed means automatically provisioning server, installing & upgrading K8S, HA etc. Along, the same lines Azure Kubernetes Service, AWS EKS.
Kubernetes Engine is a managed, production-ready environment for deploying containerized applications. It brings our latest innovations in developer productivity, resource efficiency, automated operations, and open source flexibility to accelerate your time to market.
Kubernetes is a software for container orchestration. It's free and open source, can be installed on your personal laptop, on-prem data center or in the public Cloud.