85 lines
2.4 KiB
Bash
85 lines
2.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
echo ""
|
||
|
echo "... ] INIT METAL \\m/ [ ..."
|
||
|
|
||
|
HOME=$( cd "$(dirname "$0")" && pwd )
|
||
|
source $HOME/../config
|
||
|
|
||
|
echo "] prepare system repositories"
|
||
|
apt update -q
|
||
|
apt upgrade -y
|
||
|
|
||
|
echo "] installing common tools"
|
||
|
apt install -y sudo software-properties-common apt-transport-https daemonize htop iotop strace mc vim-nox openssl ca-certificates gnupg2 vim-nox attr jq tree apache2-utils
|
||
|
|
||
|
echo "] install network tools"
|
||
|
apt install -y iptables arptables ebtables conntrack ipset bridge-utils socat ipip rsync iftop nmap dnsutils wget curl
|
||
|
|
||
|
echo "] installing network storage clients"
|
||
|
apt install -y open-iscsi nfs-common lvm2 thin-provisioning-tools ceph-common
|
||
|
|
||
|
echo "] remove swap because kubernetes doesnt like it"
|
||
|
swapoff -a
|
||
|
sed -i '/ swap / s/^/#/' /etc/fstab
|
||
|
|
||
|
echo "] execute modprobe on node - workaround for heketi gluster"
|
||
|
modprobe dm_snapshot
|
||
|
modprobe dm_thin_pool
|
||
|
modprobe dm_mirror
|
||
|
|
||
|
echo "] prepare iptables"
|
||
|
modprobe ipip
|
||
|
modprobe xt_set
|
||
|
|
||
|
cat <<EOF > /etc/sysctl.d/k8s.conf
|
||
|
net.ipv4.ip_forward=1
|
||
|
net.ipv4.conf.all.forwarding=1
|
||
|
net.ipv4.ip_nonlocal_bind=1
|
||
|
net.bridge.bridge-nf-call-iptables=1
|
||
|
net.bridge.bridge-nf-call-ip6tables=1
|
||
|
net.netfilter.nf_conntrack_max=1000000
|
||
|
|
||
|
net.ipv6.conf.all.forwarding=1
|
||
|
|
||
|
# Disable IPv6
|
||
|
net.ipv6.conf.all.disable_ipv6=1
|
||
|
net.ipv6.conf.default.disable_ipv6=1
|
||
|
net.ipv6.conf.lo.disable_ipv6=1
|
||
|
|
||
|
# Increase the inotify limits
|
||
|
fs.inotify.max_user_instances=1024
|
||
|
fs.inotify.max_user_watches=65536
|
||
|
EOF
|
||
|
sysctl --system
|
||
|
|
||
|
echo "] unpacking kubectl"
|
||
|
gzip -v -c -d $HOME/../blobs/kubectl.gz > /usr/local/bin/kubectl
|
||
|
chmod +x /usr/local/bin/kubectl
|
||
|
|
||
|
echo "] unpacking etcdctl"
|
||
|
gzip -v -c -d $HOME/../blobs/etcdctl.gz > /usr/local/bin/etcdctl
|
||
|
chmod +x /usr/local/bin/etcdctl
|
||
|
|
||
|
echo "] unpacking calicoctl"
|
||
|
gzip -v -c -d $HOME/../blobs/calicoctl.gz > /usr/local/bin/calicoctl
|
||
|
chmod +x /usr/local/bin/calicoctl
|
||
|
|
||
|
echo "] unpacking helm chart manager"
|
||
|
gzip -v -c -d $HOME/../blobs/helm.gz > /usr/local/bin/helm
|
||
|
chmod +x /usr/local/bin/helm
|
||
|
|
||
|
echo "] unpacking k9s cli tool"
|
||
|
gzip -v -c -d $HOME/../blobs/k9s.gz > /usr/local/bin/k9s
|
||
|
chmod +x /usr/local/bin/k9s
|
||
|
|
||
|
echo "] copy some additional scripts"
|
||
|
cp -v $HOME/../tools/k /usr/local/bin
|
||
|
cp -v $HOME/../tools/logs-proxy /usr/local/bin
|
||
|
cp -v $HOME/../tools/tcp-proxy /usr/local/bin
|
||
|
|
||
|
echo "] create k8s service dirs"
|
||
|
mkdir -p ${CONF_DIR}/{kube-controller-manager,kubelet,kube-proxy,kube-scheduler}
|
||
|
mkdir -p ${CONF_DIR}
|
||
|
mkdir -p ${CONF_DIR}/manifests
|