Merge pull request #398 from mattymo/rework_systemd_wait_master
Improve systemd handling and stabilize docker
This commit is contained in:
commit
15aec7cd87
18 changed files with 77 additions and 128 deletions
|
@ -4,6 +4,8 @@
|
||||||
notify:
|
notify:
|
||||||
- Docker | reload systemd
|
- Docker | reload systemd
|
||||||
- Docker | reload docker
|
- Docker | reload docker
|
||||||
|
- Docker | pause while Docker restarts
|
||||||
|
- Docker | wait for docker
|
||||||
|
|
||||||
- name : Docker | reload systemd
|
- name : Docker | reload systemd
|
||||||
shell: systemctl daemon-reload
|
shell: systemctl daemon-reload
|
||||||
|
@ -13,3 +15,13 @@
|
||||||
service:
|
service:
|
||||||
name: docker
|
name: docker
|
||||||
state: restarted
|
state: restarted
|
||||||
|
|
||||||
|
- name: Docker | pause while Docker restarts
|
||||||
|
pause: seconds=10 prompt="Waiting for docker restart"
|
||||||
|
|
||||||
|
- name: Docker | wait for docker
|
||||||
|
command: /usr/bin/docker images
|
||||||
|
register: docker_ready
|
||||||
|
retries: 10
|
||||||
|
delay: 5
|
||||||
|
until: docker_ready.rc == 0
|
||||||
|
|
|
@ -59,6 +59,14 @@
|
||||||
when: ansible_service_mgr == "systemd" and
|
when: ansible_service_mgr == "systemd" and
|
||||||
(http_proxy is defined or https_proxy is defined or no_proxy is defined)
|
(http_proxy is defined or https_proxy is defined or no_proxy is defined)
|
||||||
|
|
||||||
|
- name: Write docker.service systemd file
|
||||||
|
template:
|
||||||
|
src: systemd-docker.service.j2
|
||||||
|
dest: /etc/systemd/system/docker.service
|
||||||
|
register: docker_service_file
|
||||||
|
notify: restart docker
|
||||||
|
when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS"
|
||||||
|
|
||||||
- meta: flush_handlers
|
- meta: flush_handlers
|
||||||
|
|
||||||
- name: ensure docker service is started and enabled
|
- name: ensure docker service is started and enabled
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
Description=Docker Application Container Engine
|
Description=Docker Application Container Engine
|
||||||
Documentation=http://docs.docker.com
|
Documentation=http://docs.docker.com
|
||||||
{% if ansible_os_family == "RedHat" %}
|
{% if ansible_os_family == "RedHat" %}
|
||||||
After=network.target
|
After=network.target docker-storage-setup.service
|
||||||
Wants=docker-storage-setup.service
|
Wants=docker-storage-setup.service
|
||||||
{% elif ansible_os_family == "Debian" %}
|
{% elif ansible_os_family == "Debian" %}
|
||||||
After=network.target docker.socket
|
After=network.target docker.socket
|
||||||
Requires=docker.socket
|
Wants=docker.socket
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
@ -20,17 +20,21 @@ EnvironmentFile=-/etc/sysconfig/docker-storage
|
||||||
EnvironmentFile=-/etc/default/docker
|
EnvironmentFile=-/etc/default/docker
|
||||||
{% endif %}
|
{% endif %}
|
||||||
Environment=GOTRACEBACK=crash
|
Environment=GOTRACEBACK=crash
|
||||||
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
|
Delegate=yes
|
||||||
|
KillMode=process
|
||||||
ExecStart=/usr/bin/docker daemon \
|
ExecStart=/usr/bin/docker daemon \
|
||||||
$OPTIONS \
|
$OPTIONS \
|
||||||
$DOCKER_STORAGE_OPTIONS \
|
$DOCKER_STORAGE_OPTIONS \
|
||||||
$DOCKER_NETWORK_OPTIONS \
|
$DOCKER_NETWORK_OPTIONS \
|
||||||
$INSECURE_REGISTRY \
|
$INSECURE_REGISTRY \
|
||||||
$DOCKER_OPTS
|
$DOCKER_OPTS
|
||||||
|
TasksMax=infinity
|
||||||
LimitNOFILE=1048576
|
LimitNOFILE=1048576
|
||||||
LimitNPROC=1048576
|
LimitNPROC=1048576
|
||||||
LimitCORE=infinity
|
LimitCORE=infinity
|
||||||
MountFlags=slave
|
|
||||||
TimeoutStartSec=1min
|
TimeoutStartSec=1min
|
||||||
|
Restart=on-abnormal
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
|
@ -1,4 +1,35 @@
|
||||||
---
|
---
|
||||||
- name: restart kube-apiserver
|
- name: Master | restart kubelet
|
||||||
set_fact:
|
command: /bin/true
|
||||||
restart_apimaster: True
|
notify:
|
||||||
|
- Kubelet | reload systemd
|
||||||
|
- Kubelet | reload kubelet
|
||||||
|
|
||||||
|
- name: wait for master static pods
|
||||||
|
command: /bin/true
|
||||||
|
notify:
|
||||||
|
- wait for kube-scheduler
|
||||||
|
- wait for kube-controller-manager
|
||||||
|
|
||||||
|
- name: Master | reload systemd
|
||||||
|
command: systemctl daemon-reload
|
||||||
|
when: ansible_service_mgr == "systemd"
|
||||||
|
|
||||||
|
- name: Master | reload kubelet
|
||||||
|
service:
|
||||||
|
name: kubelet
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: wait for kube-scheduler
|
||||||
|
uri: url=http://localhost:10251/healthz
|
||||||
|
register: scheduler_result
|
||||||
|
until: scheduler_result.status == 200
|
||||||
|
retries: 15
|
||||||
|
delay: 5
|
||||||
|
|
||||||
|
- name: wait for kube-controller-manager
|
||||||
|
uri: url=http://localhost:10252/healthz
|
||||||
|
register: controller_manager_result
|
||||||
|
until: controller_manager_result.status == 200
|
||||||
|
retries: 15
|
||||||
|
delay: 5
|
||||||
|
|
|
@ -19,12 +19,7 @@
|
||||||
src: manifests/kube-apiserver.manifest.j2
|
src: manifests/kube-apiserver.manifest.j2
|
||||||
dest: "{{ kube_manifest_dir }}/kube-apiserver.manifest"
|
dest: "{{ kube_manifest_dir }}/kube-apiserver.manifest"
|
||||||
register: apiserver_manifest
|
register: apiserver_manifest
|
||||||
|
notify: Master | restart kubelet
|
||||||
- name: restart kubelet
|
|
||||||
service:
|
|
||||||
name: kubelet
|
|
||||||
state: restarted
|
|
||||||
when: apiserver_manifest.changed
|
|
||||||
|
|
||||||
- name: wait for the apiserver to be running
|
- name: wait for the apiserver to be running
|
||||||
uri: url=http://localhost:8080/healthz
|
uri: url=http://localhost:8080/healthz
|
||||||
|
@ -58,8 +53,10 @@
|
||||||
template:
|
template:
|
||||||
src: manifests/kube-controller-manager.manifest.j2
|
src: manifests/kube-controller-manager.manifest.j2
|
||||||
dest: "{{ kube_manifest_dir }}/kube-controller-manager.manifest"
|
dest: "{{ kube_manifest_dir }}/kube-controller-manager.manifest"
|
||||||
|
notify: wait for kube-controller-manager
|
||||||
|
|
||||||
- name: Write kube-scheduler manifest
|
- name: Write kube-scheduler manifest
|
||||||
template:
|
template:
|
||||||
src: manifests/kube-scheduler.manifest.j2
|
src: manifests/kube-scheduler.manifest.j2
|
||||||
dest: "{{ kube_manifest_dir }}/kube-scheduler.manifest"
|
dest: "{{ kube_manifest_dir }}/kube-scheduler.manifest"
|
||||||
|
notify: wait for kube-scheduler
|
||||||
|
|
|
@ -2,9 +2,11 @@
|
||||||
Description=Kubernetes Kubelet Server
|
Description=Kubernetes Kubelet Server
|
||||||
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
|
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
|
||||||
{% if kube_network_plugin is defined and kube_network_plugin == "calico" %}
|
{% if kube_network_plugin is defined and kube_network_plugin == "calico" %}
|
||||||
After=docker.service calico-node.service
|
After=docker.service docker.socket calico-node.service
|
||||||
|
Wants=docker.socket calico-node.service
|
||||||
{% else %}
|
{% else %}
|
||||||
After=docker.service
|
After=docker.service
|
||||||
|
Wants=docker.socket
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
|
|
|
@ -10,13 +10,6 @@
|
||||||
- restart docker
|
- restart docker
|
||||||
when: ansible_os_family != "CoreOS"
|
when: ansible_os_family != "CoreOS"
|
||||||
|
|
||||||
- name: Calico | Write docker.service systemd file
|
|
||||||
template:
|
|
||||||
src: systemd-docker.service
|
|
||||||
dest: /lib/systemd/system/docker.service
|
|
||||||
notify: restart docker
|
|
||||||
when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS"
|
|
||||||
|
|
||||||
- meta: flush_handlers
|
- meta: flush_handlers
|
||||||
|
|
||||||
- name: Calico | Install calicoctl container script
|
- name: Calico | Install calicoctl container script
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Calico per-node agent
|
Description=Calico per-node agent
|
||||||
Documentation=https://github.com/projectcalico/calico-docker
|
Documentation=https://github.com/projectcalico/calico-docker
|
||||||
After=docker.service etcd-proxy.service
|
After=docker.service docker.socket etcd-proxy.service
|
||||||
Wants=docker.socket
|
Wants=docker.socket etcd-proxy.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=root
|
User=root
|
||||||
|
|
|
@ -4,22 +4,6 @@
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
notify: restart docker
|
notify: restart docker
|
||||||
|
|
||||||
- name: restart docker
|
|
||||||
command: /bin/true
|
|
||||||
notify:
|
|
||||||
- Flannel | reload systemd
|
|
||||||
- Flannel | reload docker
|
|
||||||
- Flannel | reload kubelet
|
|
||||||
|
|
||||||
- name : Flannel | reload systemd
|
|
||||||
shell: systemctl daemon-reload
|
|
||||||
when: ansible_service_mgr == "systemd"
|
|
||||||
|
|
||||||
- name: Flannel | reload docker
|
|
||||||
service:
|
|
||||||
name: docker
|
|
||||||
state: restarted
|
|
||||||
|
|
||||||
- name: Flannel | reload kubelet
|
- name: Flannel | reload kubelet
|
||||||
service:
|
service:
|
||||||
name: kubelet
|
name: kubelet
|
||||||
|
|
|
@ -50,11 +50,4 @@
|
||||||
state: link
|
state: link
|
||||||
when: ansible_os_family == "CoreOS"
|
when: ansible_os_family == "CoreOS"
|
||||||
|
|
||||||
- name: Flannel | Write docker.service systemd file
|
|
||||||
template:
|
|
||||||
src: systemd-docker.service
|
|
||||||
dest: /lib/systemd/system/docker.service
|
|
||||||
notify: restart docker
|
|
||||||
when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS"
|
|
||||||
|
|
||||||
- meta: flush_handlers
|
- meta: flush_handlers
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Docker Application Container Engine
|
|
||||||
Documentation=http://docs.docker.com
|
|
||||||
{% if ansible_os_family == "RedHat" %}
|
|
||||||
After=network.target
|
|
||||||
Wants=docker-storage-setup.service
|
|
||||||
{% elif ansible_os_family == "Debian" %}
|
|
||||||
After=network.target docker.socket
|
|
||||||
Requires=docker.socket
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=notify
|
|
||||||
EnvironmentFile=-/etc/default/docker
|
|
||||||
Environment=GOTRACEBACK=crash
|
|
||||||
ExecStart=/usr/bin/docker daemon \
|
|
||||||
$OPTIONS \
|
|
||||||
$DOCKER_STORAGE_OPTIONS \
|
|
||||||
$DOCKER_NETWORK_OPTIONS \
|
|
||||||
$INSECURE_REGISTRY
|
|
||||||
LimitNOFILE=1048576
|
|
||||||
LimitNPROC=1048576
|
|
||||||
LimitCORE=infinity
|
|
||||||
MountFlags=slave
|
|
||||||
TimeoutStartSec=1min
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -6,3 +6,4 @@ dependencies:
|
||||||
when: kube_network_plugin == 'flannel'
|
when: kube_network_plugin == 'flannel'
|
||||||
- role: network_plugin/weave
|
- role: network_plugin/weave
|
||||||
when: kube_network_plugin == 'weave'
|
when: kube_network_plugin == 'weave'
|
||||||
|
- role: docker
|
||||||
|
|
|
@ -1,10 +1,4 @@
|
||||||
---
|
---
|
||||||
- name: Weave | restart docker
|
|
||||||
command: /bin/true
|
|
||||||
notify:
|
|
||||||
- Weave | reload systemd
|
|
||||||
- Weave | reload docker
|
|
||||||
|
|
||||||
- name: restart weave
|
- name: restart weave
|
||||||
command: /bin/true
|
command: /bin/true
|
||||||
notify:
|
notify:
|
||||||
|
@ -27,11 +21,6 @@
|
||||||
- Weave | reload systemd
|
- Weave | reload systemd
|
||||||
- reload weaveexpose
|
- reload weaveexpose
|
||||||
|
|
||||||
- name: Weave | reload docker
|
|
||||||
service:
|
|
||||||
name: docker
|
|
||||||
state: restarted
|
|
||||||
|
|
||||||
- name: reload weave
|
- name: reload weave
|
||||||
service:
|
service:
|
||||||
name: weave
|
name: weave
|
||||||
|
|
|
@ -7,14 +7,7 @@
|
||||||
group: root
|
group: root
|
||||||
mode: 0644
|
mode: 0644
|
||||||
notify:
|
notify:
|
||||||
- Weave | restart docker
|
- restart docker
|
||||||
|
|
||||||
- name: Write docker.service systemd file
|
|
||||||
template:
|
|
||||||
src: systemd-docker.service
|
|
||||||
dest: /lib/systemd/system/docker.service
|
|
||||||
notify: Weave | restart docker
|
|
||||||
when: ansible_service_mgr == "systemd" and ansible_os_family != "CoreOS"
|
|
||||||
|
|
||||||
- name: Weave | Install weave
|
- name: Weave | Install weave
|
||||||
command: rsync -piu "{{ local_release_dir }}/weave/bin/weave" "{{ bin_dir }}/weave"
|
command: rsync -piu "{{ local_release_dir }}/weave/bin/weave" "{{ bin_dir }}/weave"
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Docker Application Container Engine
|
|
||||||
Documentation=http://docs.docker.com
|
|
||||||
{% if ansible_os_family == "RedHat" %}
|
|
||||||
After=network.target
|
|
||||||
Wants=docker-storage-setup.service
|
|
||||||
{% elif ansible_os_family == "Debian" %}
|
|
||||||
After=network.target docker.socket
|
|
||||||
Requires=docker.socket
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=notify
|
|
||||||
EnvironmentFile=-/etc/default/docker
|
|
||||||
Environment=GOTRACEBACK=crash
|
|
||||||
ExecStart=/usr/bin/docker daemon \
|
|
||||||
$OPTIONS \
|
|
||||||
$DOCKER_STORAGE_OPTIONS \
|
|
||||||
$DOCKER_NETWORK_OPTIONS \
|
|
||||||
$INSECURE_REGISTRY
|
|
||||||
LimitNOFILE=1048576
|
|
||||||
LimitNPROC=1048576
|
|
||||||
LimitCORE=infinity
|
|
||||||
MountFlags=slave
|
|
||||||
TimeoutStartSec=1min
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,8 +1,8 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Weave Network
|
Description=Weave Network
|
||||||
Documentation=http://docs.weave.works/weave/latest_release/
|
Documentation=http://docs.weave.works/weave/latest_release/
|
||||||
Requires=docker.service
|
Wants=docker.socket
|
||||||
After=docker.service
|
After=docker.service docker.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
EnvironmentFile=-/etc/weave.env
|
EnvironmentFile=-/etc/weave.env
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Documentation=http://docs.weave.works/
|
Documentation=http://docs.weave.works/
|
||||||
Requires=docker.service
|
Wants=docker.socket weave.service
|
||||||
Requires=weave.service
|
After=docker.service docker.socket weave.service
|
||||||
After=weave.service
|
|
||||||
After=docker.service
|
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Weave proxy for Docker API
|
Description=Weave proxy for Docker API
|
||||||
Documentation=http://docs.weave.works/
|
Documentation=http://docs.weave.works/
|
||||||
Requires=docker.service
|
Wants=docker.socket
|
||||||
After=docker.service
|
After=docker.service docker.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
EnvironmentFile=-/etc/weave.%H.env
|
EnvironmentFile=-/etc/weave.%H.env
|
||||||
|
|
Loading…
Reference in a new issue