k8s.io/kubernetes@v1.31.0-alpha.0.0.20240520171757-56147500dadc/cluster/gce/gci/node.yaml (about) 1 #cloud-config 2 3 write_files: 4 - path: /etc/systemd/system/kube-node-installation.service 5 permissions: 0644 6 owner: root 7 content: | 8 [Unit] 9 Description=Download and install k8s binaries and configurations 10 After=network-online.target 11 12 [Service] 13 Type=oneshot 14 RemainAfterExit=yes 15 ExecStartPre=/bin/mkdir -p /home/kubernetes/bin 16 ExecStartPre=/bin/mount --bind /home/kubernetes/bin /home/kubernetes/bin 17 ExecStartPre=/bin/mount -o remount,exec /home/kubernetes/bin 18 ExecStartPre=/usr/bin/curl --fail --retry 5 --retry-delay 3 --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 19 ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/configure.sh 20 ExecStart=/home/kubernetes/bin/configure.sh 21 StandardOutput=journal+console 22 23 [Install] 24 WantedBy=kubernetes.target 25 26 - path: /etc/systemd/system/kube-node-configuration.service 27 permissions: 0644 28 owner: root 29 content: | 30 [Unit] 31 Description=Configure kubernetes node 32 After=kube-node-installation.service 33 34 [Service] 35 Type=oneshot 36 RemainAfterExit=yes 37 ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/configure-helper.sh 38 ExecStart=/home/kubernetes/bin/configure-helper.sh 39 StandardOutput=journal+console 40 41 [Install] 42 WantedBy=kubernetes.target 43 44 - path: /etc/systemd/system/kube-container-runtime-monitor.service 45 permissions: 0644 46 owner: root 47 content: | 48 [Unit] 49 Description=Kubernetes health monitoring for container runtime 50 After=kube-node-configuration.service 51 52 [Service] 53 Restart=always 54 RestartSec=10 55 RemainAfterExit=yes 56 RemainAfterExit=yes 57 ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/health-monitor.sh 58 ExecStart=/home/kubernetes/bin/health-monitor.sh container-runtime 59 60 [Install] 61 WantedBy=kubernetes.target 62 63 - path: /etc/systemd/system/kubelet-monitor.service 64 permissions: 0644 65 owner: root 66 content: | 67 [Unit] 68 Description=Kubernetes health monitoring for kubelet 69 After=kube-node-configuration.service 70 71 [Service] 72 Restart=always 73 RestartSec=10 74 RemainAfterExit=yes 75 RemainAfterExit=yes 76 ExecStartPre=/bin/chmod 544 /home/kubernetes/bin/health-monitor.sh 77 ExecStart=/home/kubernetes/bin/health-monitor.sh kubelet 78 79 [Install] 80 WantedBy=kubernetes.target 81 82 - path: /etc/systemd/system/kube-logrotate.timer 83 permissions: 0644 84 owner: root 85 content: | 86 [Unit] 87 Description=Hourly kube-logrotate invocation 88 89 [Timer] 90 OnCalendar=hourly 91 92 [Install] 93 WantedBy=kubernetes.target 94 95 - path: /etc/systemd/system/kube-logrotate.service 96 permissions: 0644 97 owner: root 98 content: | 99 [Unit] 100 Description=Kubernetes log rotation 101 After=kube-node-configuration.service 102 103 [Service] 104 Type=oneshot 105 ExecStart=-/usr/sbin/logrotate /etc/logrotate.conf 106 107 [Install] 108 WantedBy=kubernetes.target 109 110 - path: /etc/systemd/system/kubernetes.target 111 permissions: 0644 112 owner: root 113 content: | 114 [Unit] 115 Description=Kubernetes 116 117 [Install] 118 WantedBy=multi-user.target 119 120 - path: /etc/modprobe.d/sunrpc.conf 121 permissions: 0644 122 owner: root 123 # The GKE metadata server uses ports 987-989, so the sunrpc range should be restricted to be below. 124 content: | 125 options sunrpc max_resvport=986 126 127 runcmd: 128 - systemctl daemon-reload 129 - systemctl enable kube-node-installation.service 130 - systemctl enable kube-node-configuration.service 131 - systemctl enable kube-container-runtime-monitor.service 132 - systemctl enable kubelet-monitor.service 133 - systemctl enable kube-logrotate.timer 134 - systemctl enable kube-logrotate.service 135 - systemctl enable kubernetes.target 136 - systemctl start kubernetes.target