You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
3.4 KiB

  1. [Unit]
  2. Description=Kubernetes Kubelet Server
  3. Documentation=https://github.com/GoogleCloudPlatform/kubernetes
  4. Wants=network.target
  5. [Service]
  6. Restart=on-failure
  7. RestartSec=10s
  8. TimeoutStartSec=0
  9. LimitNOFILE=40000
  10. ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/run/kubelet.uuid
  11. ExecStartPre=-/bin/mkdir -p /var/lib/kubelet
  12. EnvironmentFile={{kube_config_dir}}/kubelet.env
  13. # stage1-fly mounts /proc /sys /dev so no need to duplicate the mounts
  14. ExecStart=/usr/bin/rkt run \
  15. --volume os-release,kind=host,source=/etc/os-release,readOnly=true \
  16. --volume hosts,kind=host,source=/etc/hosts,readOnly=true \
  17. --volume dns,kind=host,source=/etc/resolv.conf \
  18. --volume etc-kubernetes,kind=host,source={{ kube_config_dir }},readOnly=false \
  19. --volume etc-ssl-certs,kind=host,source=/etc/ssl/certs,readOnly=true \
  20. --volume etcd-ssl,kind=host,source={{ etcd_config_dir }},readOnly=true \
  21. --volume run,kind=host,source=/run,readOnly=false \
  22. {% for dir in ssl_ca_dirs -%}
  23. --volume {{ dir | regex_replace('^/(.*)$', '\\1' ) | regex_replace('/', '-') }},kind=host,source={{ dir }},readOnly=true \
  24. {% endfor -%}
  25. --volume var-lib-docker,kind=host,source={{ docker_daemon_graph }},readOnly=false \
  26. --volume var-lib-kubelet,kind=host,source=/var/lib/kubelet,readOnly=false,recursive=true \
  27. --volume var-log,kind=host,source=/var/log \
  28. {% if kube_network_plugin in ["calico", "weave", "canal", "flannel"] %}
  29. --volume etc-cni,kind=host,source=/etc/cni,readOnly=true \
  30. --volume opt-cni,kind=host,source=/opt/cni,readOnly=true \
  31. --volume var-lib-cni,kind=host,source=/var/lib/cni,readOnly=false \
  32. --mount volume=etc-cni,target=/etc/cni \
  33. --mount volume=opt-cni,target=/opt/cni \
  34. --mount volume=var-lib-cni,target=/var/lib/cni \
  35. {% endif %}
  36. --mount volume=os-release,target=/etc/os-release \
  37. --mount volume=dns,target=/etc/resolv.conf \
  38. --mount volume=etc-kubernetes,target={{ kube_config_dir }} \
  39. --mount volume=etc-ssl-certs,target=/etc/ssl/certs \
  40. --mount volume=etcd-ssl,target={{ etcd_config_dir }} \
  41. --mount volume=run,target=/run \
  42. {% for dir in ssl_ca_dirs -%}
  43. --mount volume={{ dir | regex_replace('^/(.*)$', '\\1' ) | regex_replace('/', '-') }},target={{ dir }} \
  44. {% endfor -%}
  45. --mount volume=var-lib-docker,target=/var/lib/docker \
  46. --mount volume=var-lib-kubelet,target=/var/lib/kubelet \
  47. --mount volume=var-log,target=/var/log \
  48. --mount volume=hosts,target=/etc/hosts \
  49. --stage1-from-dir=stage1-fly.aci \
  50. {% if kube_hyperkube_image_repo == "docker" %}
  51. --insecure-options=image \
  52. docker://{{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} \
  53. {% else %}
  54. {{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} \
  55. {% endif %}
  56. --uuid-file-save=/var/run/kubelet.uuid \
  57. --debug --exec=/kubelet -- \
  58. $KUBE_LOGTOSTDERR \
  59. $KUBE_LOG_LEVEL \
  60. $KUBELET_API_SERVER \
  61. $KUBELET_ADDRESS \
  62. $KUBELET_PORT \
  63. $KUBELET_HOSTNAME \
  64. $KUBE_ALLOW_PRIV \
  65. $KUBELET_ARGS \
  66. $DOCKER_SOCKET \
  67. $KUBELET_REGISTER_NODE \
  68. $KUBELET_NETWORK_PLUGIN \
  69. $KUBELET_CLOUDPROVIDER
  70. ExecStop=-/usr/bin/rkt stop --uuid-file=/var/run/kubelet.uuid
  71. [Install]
  72. WantedBy=multi-user.target