In simpler terms, both these open-source orchestration platforms have similar functionalities but there are some fundamental differences in their operation as well.
Kubernetes is much more than docker swarm is designed to be. Kubernetes is more of a state engine, where docker swarm should be considered something more akin to distributed docker.
Kubernetes is like docker swarm with a management system built on top of it.
It should also be noted that Kubernetes does not necessarily need Docker to run. Lots of Kubernetes deployments use docker as the container runtime, but it’s designed so you can use any container runtime that exposes the right functionality as defined in the Container Runtime Interface