Page MenuHomePhabricator

Docker installation for production kubernetes
Closed, ResolvedPublic

Description

Docker should be installable in production so that our kubernetes cluster can work.

We already have a docker::engine class that is used in toollabs, but it has several issues for production use:

  • It uses directly the dockerproject.org apt repository
  • It uses a labs-specific script to configure docker to use a non-loopback devicemapper
  • In production, partitioning is done differently and probably we will have to take that into account when partitioning a system on startup.

We will need to address all of these issues before we can use the same puppet code in production.

Related Objects

Event Timeline

Yeah, I think it should be refactored into multiple classes based on their functionality. Also if we use devicemapper graphdriver in prod, the script *could* be adapted to work on it - I'm not entirely sure if partman allows direct configuration of lvs.

Another option would be to use overlayfs2 driver available in Docker 1.12, with a recent (4.5+) kernel.

Joe triaged this task as High priority.
Joe moved this task from Backlog to Doing on the User-Joe board.
Joe moved this task from Blocked on others to Doing on the User-Joe board.

Change 315717 had a related patch set uploaded (by Giuseppe Lavagetto):
kubernetes: introduce 1st-stage worker role

https://gerrit.wikimedia.org/r/315717

Change 315717 merged by Giuseppe Lavagetto:
kubernetes: introduce 1st-stage worker role

https://gerrit.wikimedia.org/r/315717

Change 317130 had a related patch set uploaded (by Giuseppe Lavagetto):
nrpe: use main_ipaddress, not the ipaddress fact

https://gerrit.wikimedia.org/r/317130

Change 317131 had a related patch set uploaded (by Giuseppe Lavagetto):
profile::docker::engine: fixups to lvm configuration

https://gerrit.wikimedia.org/r/317131

Change 317131 merged by Giuseppe Lavagetto:
profile::docker::engine: fixups to lvm configuration

https://gerrit.wikimedia.org/r/317131

The production installation of docker seemed to work well, until I rebooted the servers for a final test and stumbled upon this problem:

https://github.com/docker/docker/issues/15629

so at least for jessie, thick pools it is!

Change 317475 had a related patch set uploaded (by Giuseppe Lavagetto):
docker: refactor the storage setup, allow thick pools

https://gerrit.wikimedia.org/r/317475

Change 317475 merged by Giuseppe Lavagetto:
docker: refactor the storage setup, allow thick pools

https://gerrit.wikimedia.org/r/317475

Change 317478 had a related patch set uploaded (by Giuseppe Lavagetto):
docker::engine: add dependency of the service on the storage

https://gerrit.wikimedia.org/r/317478

Change 317478 merged by Giuseppe Lavagetto:
docker::engine: add dependency of the service on the storage

https://gerrit.wikimedia.org/r/317478

Change 317130 merged by Giuseppe Lavagetto:
nrpe: use main_ipaddress, not the ipaddress fact

https://gerrit.wikimedia.org/r/317130