Olá, Roger. Tudo bem?
Tanto o Docker Swarm quanto o Kubernetes são orquestradores de containers, ou seja, permitem especificar o estado desejado para os containers em execução, definir como eles interagem entrem si, como se comportam em diferentes cenários, definir seu ciclo de vida etc.
O Docker Compose possui a vantagem de ser mais parecido com o que já é feito para manusear os containers com a CLI do próprio docker, o que diminui a curva de aprendizado. Isso porque os dois produtos são mantidos pela mesma empresa, então há uma integração natural entre os dois. Além disso, ele talvez seja mais simples para trabalhar, pois possui menos elementos para gerenciar e menos configurações para fazer.
No entanto, como geralmente acontece em outros cenários, ter menos configurações para fazer e menos elementos para gerenciar significa menos capacidade de se adaptar à diversos cenários e necessidades. E o Kubernetes, apesar de ser mais complexo, demandar um conhecimento maior de cada um componentes e possuir mais elementos para gerenciar, proporciona mais flexibilidade e adaptabilidade para os mais diversos cenários.
Outro ponto para se levar em consideração é o fato de que o Kubernetes possibilita o uso de outros runtimes, executores de containers, além do Docker, permitindo que você fique menos preso a uma tecnologia só.
Espero ter ajudado.