-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcp.sh
More file actions
97 lines (82 loc) · 4 KB
/
Copy pathcp.sh
File metadata and controls
97 lines (82 loc) · 4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
# host setup
apt update
apt upgrade
timedatectl set-timezone America/Edmonton
# terminal setup
apt-get update
apt-get upgrade
apt-get install -y bash-completion binutils jq yq
echo 'colorscheme ron' >> ~/.vimrc
echo 'set tabstop=2' >> ~/.vimrc
echo 'set shiftwidth=2' >> ~/.vimrc
echo 'set expandtab' >> ~/.vimrc
echo 'source <(kubectl completion bash)' >> ~/.bashrc
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -F __start_kubectl k' >> ~/.bashrc
sed -i '1s/^/force_color_prompt=yes\n/' ~/.bashrc
# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.forwarding = 1
net.ipv6.conf.all.forwarding = 1
EOF
# Apply sysctl params without reboot
sudo sysctl --system
# Installing container.d
curl -OL https://github.com/containerd/containerd/releases/download/v2.0.0/containerd-2.0.0-linux-amd64.tar.gz
tar Cxzvf /usr/local containerd-2.0.0-linux-amd64.tar.gz
curl -OL https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
mkdir -p /usr/local/lib/systemd/system/
cp containerd.service /usr/local/lib/systemd/system/containerd.service
systemctl daemon-reload
systemctl enable --now containerd
# Installing runc
curl -OL https://github.com/opencontainers/runc/releases/download/v1.2.2/runc.amd64
install -m 755 runc.amd64 /usr/local/sbin/runc
# Download and install CNI plugins
curl -OL https://github.com/containernetworking/plugins/releases/download/v1.6.1/cni-plugins-linux-amd64-v1.6.1.tgz
mkdir -p /opt/cni/bin
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.6.1.tgz
# Configuring systemdcgroup=true on containerd
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i '/BinaryName/i\ SystemdCgroup = true' /etc/containerd/config.toml
sudo systemctl restart containerd
sudo systemctl status containerd
# Installing Kubernetes
apt update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
apt-get install -y kubelet=1.30.7-1.1 kubeadm=1.30.7-1.1 kubectl=1.30.7-1.1
sudo apt-mark hold kubelet kubeadm kubectl
# initialize the control plane node
kubeadm init --service-cidr 10.96.0.0/12,fd00:db8:10:96::/112 --pod-network-cidr 192.168.0.0/16,fd00:db8:0:192::/64 --kubernetes-version 1.30.7 --cri-socket unix:///var/run/containerd/containerd.sock --skip-token-print
cat <<EOF | sudo tee /etc/crictl.yaml
runtime-endpoint: unix:///run/containerd/containerd.sock
EOF
sudo mkdir -p /root/.kube
sudo cp -i /etc/kubernetes/admin.conf /root/.kube/config
sudo chown $(id -u):$(id -g) /root/.kube/config
# Install docker.io
sudo apt-get install -y docker.io
# Remove the taint from controlplane
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
# Add the IPv6 node address on kubelet configuration
sed -i 's|KUBELET_KUBEADM_ARGS="\(.*\)"|KUBELET_KUBEADM_ARGS="\1 --node-ip=10.0.0.4,fd00:db8::4"|' /var/lib/kubelet/kubeadm-flags.env
systemctl daemon-reload && systemctl restart kubelet
# Installing k9s
echo "source <(kubectl completion bash)" >> ~/.bashrc
curl -OL https://github.com/derailed/k9s/releases/download/v0.32.7/k9s_Linux_amd64.tar.gz
tar Cxzvf /usr/local/bin k9s_Linux_amd64.tar.gz
# Install HELM
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources. list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install -y helm
echo "### COMMAND TO ADD A WORKER NODE ###"
kubeadm token create --print-join-command --ttl 0
echo "####################################"