Created
February 15, 2018 22:53
-
-
Save azlyth/82fb0aee24f01e634145581a80dd5054 to your computer and use it in GitHub Desktop.
Bootstrap the Kubernetes worker node
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo apt-get -y install socat | |
wget -q --show-progress --https-only --timestamping \ | |
https://github.com/containernetworking/plugins/releases/download/v0.6.0/cni-plugins-amd64-v0.6.0.tgz \ | |
https://github.com/containerd/cri-containerd/releases/download/v1.0.0-beta.1/cri-containerd-1.0.0-beta.1.linux-amd64.tar.gz \ | |
https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubectl \ | |
https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kube-proxy \ | |
https://storage.googleapis.com/kubernetes-release/release/v1.9.0/bin/linux/amd64/kubelet | |
sudo mkdir -p \ | |
/etc/cni/net.d \ | |
/opt/cni/bin \ | |
/var/lib/kubelet \ | |
/var/lib/kube-proxy \ | |
/var/lib/kubernetes \ | |
/var/run/kubernetes | |
sudo tar -xvf cni-plugins-amd64-v0.6.0.tgz -C /opt/cni/bin/ | |
sudo tar -xvf cri-containerd-1.0.0-beta.1.linux-amd64.tar.gz -C / | |
chmod +x kubectl kube-proxy kubelet | |
sudo mv kubectl kube-proxy kubelet /usr/local/bin/ | |
POD_CIDR=$(curl -s -H "Metadata-Flavor: Google" \ | |
http://metadata.google.internal/computeMetadata/v1/instance/attributes/pod-cidr) | |
cat > 10-bridge.conf <<EOF | |
{ | |
"cniVersion": "0.3.1", | |
"name": "bridge", | |
"type": "bridge", | |
"bridge": "cnio0", | |
"isGateway": true, | |
"ipMasq": true, | |
"ipam": { | |
"type": "host-local", | |
"ranges": [ | |
[{"subnet": "${POD_CIDR}"}] | |
], | |
"routes": [{"dst": "0.0.0.0/0"}] | |
} | |
} | |
EOF | |
cat > 99-loopback.conf <<EOF | |
{ | |
"cniVersion": "0.3.1", | |
"type": "loopback" | |
} | |
EOF | |
sudo mv 10-bridge.conf 99-loopback.conf /etc/cni/net.d/ | |
sudo mv ${HOSTNAME}-key.pem ${HOSTNAME}.pem /var/lib/kubelet/ | |
sudo mv ${HOSTNAME}.kubeconfig /var/lib/kubelet/kubeconfig | |
sudo mv ca.pem /var/lib/kubernetes/ | |
cat > kubelet.service <<EOF | |
[Unit] | |
Description=Kubernetes Kubelet | |
Documentation=https://github.com/kubernetes/kubernetes | |
After=cri-containerd.service | |
Requires=cri-containerd.service | |
[Service] | |
ExecStart=/usr/local/bin/kubelet \\ | |
--allow-privileged=true \\ | |
--anonymous-auth=false \\ | |
--authorization-mode=Webhook \\ | |
--client-ca-file=/var/lib/kubernetes/ca.pem \\ | |
--cloud-provider= \\ | |
--cluster-dns=10.32.0.10 \\ | |
--cluster-domain=cluster.local \\ | |
--container-runtime=remote \\ | |
--container-runtime-endpoint=unix:///var/run/cri-containerd.sock \\ | |
--image-pull-progress-deadline=2m \\ | |
--kubeconfig=/var/lib/kubelet/kubeconfig \\ | |
--network-plugin=cni \\ | |
--pod-cidr=${POD_CIDR} \\ | |
--register-node=true \\ | |
--runtime-request-timeout=15m \\ | |
--tls-cert-file=/var/lib/kubelet/${HOSTNAME}.pem \\ | |
--tls-private-key-file=/var/lib/kubelet/${HOSTNAME}-key.pem \\ | |
--v=2 | |
Restart=on-failure | |
RestartSec=5 | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
sudo mv kube-proxy.kubeconfig /var/lib/kube-proxy/kubeconfig | |
cat > kube-proxy.service <<EOF | |
[Unit] | |
Description=Kubernetes Kube Proxy | |
Documentation=https://github.com/kubernetes/kubernetes | |
[Service] | |
ExecStart=/usr/local/bin/kube-proxy \\ | |
--cluster-cidr=10.200.0.0/16 \\ | |
--kubeconfig=/var/lib/kube-proxy/kubeconfig \\ | |
--proxy-mode=iptables \\ | |
--v=2 | |
Restart=on-failure | |
RestartSec=5 | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
sudo mv kubelet.service kube-proxy.service /etc/systemd/system/ | |
sudo systemctl daemon-reload | |
sudo systemctl enable containerd cri-containerd kubelet kube-proxy | |
sudo systemctl start containerd cri-containerd kubelet kube-proxy |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment