74 lines
2.0 KiB
Bash
74 lines
2.0 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
################
|
||
|
### Settings ###
|
||
|
################
|
||
|
|
||
|
set -x
|
||
|
DEBIAN_FRONTEND=noninteractive
|
||
|
KEYRING_PATH="/usr/share/keyrings/kubernetes-archive-keyring.gpg"
|
||
|
KEYRING_URL="https://packages.cloud.google.com/apt/doc/apt-key.gpg"
|
||
|
|
||
|
#########################################################
|
||
|
### Install containerd, kubeadm, kubelet, and kubectl ###
|
||
|
#########################################################
|
||
|
|
||
|
# Install prerequsite packages
|
||
|
apt-get install -y apt-transport-https ca-certificates curl
|
||
|
|
||
|
# Install Google Cloud public signing key
|
||
|
curl -fsSLo "$KEYRING_PATH" "$KEYRING_URL"
|
||
|
if [ ! -f /etc/sysctl.d/keepalived.conf ]; then
|
||
|
cat <<- EOF | tee /etc/apt/sources.list.d/kubernetes.list
|
||
|
deb [signed-by=${KEYRING_PATH}] https://apt.kubernetes.io/ kubernetes-xenial main
|
||
|
EOF
|
||
|
fi
|
||
|
|
||
|
# Update package index and install
|
||
|
apt-get update
|
||
|
apt-get install -y containerd kubelet kubeadm kubectl
|
||
|
apt-mark hold kubelet kubeadm kubectl
|
||
|
|
||
|
# Forwarding IPv4 and letting iptables see bridged traffic
|
||
|
if [ ! -f /etc/modules-load.d/k8s.conf ]; then
|
||
|
cat <<- EOF | tee /etc/modules-load.d/k8s.conf
|
||
|
overlay
|
||
|
br_netfilter
|
||
|
EOF
|
||
|
|
||
|
modprobe overlay
|
||
|
modprobe br_netfilter
|
||
|
fi
|
||
|
|
||
|
# sysctl params required by setup, params persist across reboots
|
||
|
if [ ! -f /etc/sysctl.d/k8s.conf ]; then
|
||
|
cat <<- EOF | tee /etc/sysctl.d/k8s.conf
|
||
|
net.bridge.bridge-nf-call-iptables = 1
|
||
|
net.bridge.bridge-nf-call-ip6tables = 1
|
||
|
net.ipv4.ip_forward = 1
|
||
|
EOF
|
||
|
|
||
|
sudo sysctl --system
|
||
|
fi
|
||
|
|
||
|
# Prevent further execution until floating IP is found (not a failure)
|
||
|
if [ ! -f /vagrant/.k8s-ips ]; then
|
||
|
echo "NOTICE: /vagrant/.k8s-ips not found"
|
||
|
echo "NOTICE: Rerun 'vagrant provision' after running vagrant-ips.sh"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
##########################################
|
||
|
### Install keepalived for floating IP ###
|
||
|
##########################################
|
||
|
|
||
|
apt-get update
|
||
|
apt-get install -y keepalived
|
||
|
|
||
|
if [ ! -f /etc/sysctl.d/keepalived.conf ]; then
|
||
|
cat <<- EOF | tee /etc/sysctl.d/keepalived.conf
|
||
|
net.ipv4.ip_nonlocal_bind = 1
|
||
|
EOF
|
||
|
sysctl -p
|
||
|
fi
|