Kubernetes vs. Docker: What Does It Really Mean?

前端 未结 3 638
天涯浪人
天涯浪人 2021-02-02 00:01

I know that Docker and Kubernetes aren’t direct competitors. Docker is the container platform and containers are coordinated and scheduled by Kubernetes, which is a tool.

3条回答
  •  忘掉有多难
    2021-02-02 00:21

    Short answer:

    • Docker (and containers in general) solve the problem of packaging an application and its dependencies. This makes it easy to ship and run everywhere.

    • Kubernetes is one layer of abstraction above containers. It is a distributed system that controls/manages containers.

    My advice: because the landscape is huge... start learning and putting the pieces of the puzzle together by following a course. Below I have added some information from the:

    • Introduction to Kubernetes, free online course from The Linux Foundation.

    Why do we need Kubernetes (and other orchestrators) above containers?

    In the quality assurance (QA) environments, we can get away with running containers on a single host to develop and test applications. However, when we go to production, we do not have the same liberty, as we need to ensure that our applications:

    • Are fault-tolerant
    • Can scale, and do this on-demand
    • Use resources optimally
    • Can discover other applications automatically, and communicate with each other
    • Are accessible from the external world
    • Can update/rollback without any downtime.

    Container orchestrators are the tools which group hosts together to form a cluster, and help us fulfill the requirements mentioned above.


    Nowadays, there are many container orchestrators available, such as:

    • Docker Swarm: Docker Swarm is a container orchestrator provided by Docker, Inc. It is part of Docker Engine.
    • Kubernetes: Kubernetes was started by Google, but now, it is a part of the Cloud Native Computing Foundation project.
    • Mesos Marathon: Marathon is one of the frameworks to run containers at scale on Apache Mesos.
    • Amazon ECS: Amazon EC2 Container Service (ECS) is a hosted service provided by AWS to run Docker containers at scale on its infrastructrue.
    • Hashicorp Nomad: Nomad is the container orchestrator provided by HashiCorp.

提交回复
热议问题