diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index d8e1587369..f7c5ca638d 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -409,9 +409,22 @@ function assemble-docker-flags { fi echo "DOCKER_OPTS=\"${docker_opts} ${EXTRA_DOCKER_OPTS:-}\"" > /etc/default/docker - # If using a network plugin, we need to explicitly restart docker daemon, because - # kubelet will not do it. + if [[ "${use_net_plugin}" == "true" ]]; then + # If using a network plugin, extend the docker configuration to always remove + # the network checkpoint to avoid corrupt checkpoints. + # (https://github.com/docker/docker/issues/18283). + echo "Extend the default docker.service configuration" + mkdir -p /etc/systemd/system/docker.service.d + cat </etc/systemd/system/docker.service.d/01network.conf +[Service] +ExecStartPre=/bin/sh -x -c "rm -rf /var/lib/docker/network" +EOF + + systemctl daemon-reload + + # If using a network plugin, we need to explicitly restart docker daemon, because + # kubelet will not do it. echo "Docker command line is updated. Restart docker to pick it up" systemctl restart docker fi