node.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #cloud-config
  2. write_files:
  3. - path: /etc/systemd/system/kube-node-installation.service
  4. permissions: 0644
  5. owner: root
  6. content: |
  7. [Unit]
  8. Description=Download and install k8s binaries and configurations
  9. After=network-online.target
  10. [Service]
  11. Type=oneshot
  12. RemainAfterExit=yes
  13. ExecStartPre=/bin/mkdir -p /home/kubernetes/bin
  14. ExecStartPre=/bin/mount --bind /home/kubernetes/bin /home/kubernetes/bin
  15. ExecStartPre=/bin/mount -o remount,exec /home/kubernetes/bin
  16. # Use --retry-connrefused opt only if it's supported by curl.
  17. ExecStartPre=/bin/bash -c 'OPT=""; if curl --help | grep -q -- "--retry-connrefused"; then OPT="--retry-connrefused"; fi; /usr/bin/curl --fail --retry 5 --retry-delay 3 $OPT --silent --show-error -H "X-Google-Metadata-Request: True" -o /home/kubernetes/bin/configure.sh http://metadata.google.internal/computeMetadata/v1/instance/attributes/configure-sh'
  18. ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/configure.sh
  19. ExecStart=/home/kubernetes/bin/configure.sh
  20. [Install]
  21. WantedBy=kubernetes.target
  22. - path: /etc/systemd/system/kube-node-configuration.service
  23. permissions: 0644
  24. owner: root
  25. content: |
  26. [Unit]
  27. Description=Configure kubernetes node
  28. After=kube-node-installation.service
  29. [Service]
  30. Type=oneshot
  31. RemainAfterExit=yes
  32. ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/configure-helper.sh
  33. ExecStart=/home/kubernetes/bin/configure-helper.sh
  34. [Install]
  35. WantedBy=kubernetes.target
  36. - path: /etc/systemd/system/kube-container-runtime-monitor.service
  37. permissions: 0644
  38. owner: root
  39. content: |
  40. [Unit]
  41. Description=Kubernetes health monitoring for container runtime
  42. After=kube-node-configuration.service
  43. [Service]
  44. Restart=always
  45. RestartSec=10
  46. RemainAfterExit=yes
  47. RemainAfterExit=yes
  48. ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/health-monitor.sh
  49. ExecStart=/home/kubernetes/bin/health-monitor.sh container-runtime
  50. [Install]
  51. WantedBy=kubernetes.target
  52. - path: /etc/systemd/system/kubelet-monitor.service
  53. permissions: 0644
  54. owner: root
  55. content: |
  56. [Unit]
  57. Description=Kubernetes health monitoring for kubelet
  58. After=kube-node-configuration.service
  59. [Service]
  60. Restart=always
  61. RestartSec=10
  62. RemainAfterExit=yes
  63. RemainAfterExit=yes
  64. ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/health-monitor.sh
  65. ExecStart=/home/kubernetes/bin/health-monitor.sh kubelet
  66. [Install]
  67. WantedBy=kubernetes.target
  68. - path: /etc/systemd/system/kube-logrotate.timer
  69. permissions: 0644
  70. owner: root
  71. content: |
  72. [Unit]
  73. Description=Hourly kube-logrotate invocation
  74. [Timer]
  75. OnCalendar=hourly
  76. [Install]
  77. WantedBy=kubernetes.target
  78. - path: /etc/systemd/system/kube-logrotate.service
  79. permissions: 0644
  80. owner: root
  81. content: |
  82. [Unit]
  83. Description=Kubernetes log rotation
  84. After=kube-node-configuration.service
  85. [Service]
  86. Type=oneshot
  87. ExecStart=-/usr/sbin/logrotate /etc/logrotate.conf
  88. [Install]
  89. WantedBy=kubernetes.target
  90. - path: /etc/systemd/system/kubernetes.target
  91. permissions: 0644
  92. owner: root
  93. content: |
  94. [Unit]
  95. Description=Kubernetes
  96. [Install]
  97. WantedBy=multi-user.target
  98. runcmd:
  99. - systemctl daemon-reload
  100. - systemctl enable kube-node-installation.service
  101. - systemctl enable kube-node-configuration.service
  102. - systemctl enable kube-container-runtime-monitor.service
  103. - systemctl enable kubelet-monitor.service
  104. - systemctl enable kube-logrotate.timer
  105. - systemctl enable kube-logrotate.service
  106. - systemctl enable kubernetes.target
  107. - systemctl start kubernetes.target