1
1
#! /bin/bash
2
2
3
3
install_ubuntu () {
4
- which docker
5
- if [ $? -eq 0 ]; then
6
- # ### Remove any pre installed docker packages
7
- sudo systemctl stop docker.service
8
- sudo apt-mark unhold docker-ce
9
- sudo apt-get remove -y docker docker-ce docker-ce-cli docker.io containerd runc kubeadm kubectl kubelet
10
- cd /var/lib
11
- sudo rm -r docker
12
- else
13
- echo " docker not installed.. continue to install"
14
- fi
15
-
16
- # ### Install Specific Docker version
17
- sudo apt-get update
18
- sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
19
-
20
- # # Add Dockers official GPG key
21
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
22
- sudo add-apt-repository " deb [arch=amd64] https://download.docker.com/linux/ubuntu $( lsb_release -cs) stable"
23
- sudo apt-get update ; clear
24
- sudo apt-get install -y docker-ce --allow-downgrades --allow-change-held-packages
25
-
26
- if [ $? -eq 0 ]; then
27
- if [ -f /etc/docker/daemon.json ]; then
28
- echo " cgroup config is already configured skipping.."
29
- else
30
- echo " docker-ce is successfully installed"
31
- yum install -y wget
32
- sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/kubernetes/0-install/daemon.json -P /etc/docker
33
- sudo systemctl restart docker.service ; clear
34
- fi
35
- else
36
- echo " issue with docker-ce installation - process abort"
37
- exit 1
38
- fi
39
- echo " "
40
4
41
5
# ### Install Kubernetes latest components
6
+ sudo apt-get update
7
+ sudo apt-get install -y apt-transport-https ca-certificates curl
42
8
echo " starting the installation of k8s components (kubeadm,kubelet,kubectl) ...."
43
- echo " deb http://apt.kubernetes.io/ kubernetes-xenial main " | sudo tee /etc/apt/sources.list.d/kubernetes.list
44
- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
45
- sudo apt-get update ; clear
46
- sudo apt-get install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00 --allow-downgrades --allow-change-held-packages
9
+ sudo curl -fsSLo /usr/share/keyrings/ kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
10
+ echo " deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main " | sudo tee /etc/apt/sources.list.d/kubernetes.list
11
+ sudo apt-get update
12
+ sudo apt-get install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00
47
13
48
14
if [ $? -eq 0 ]; then
49
15
echo " kubelet, kubeadm & kubectl are successfully installed"
50
- sudo apt-mark hold kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00 docker-ce docker-ce-cli
16
+ sudo apt-mark hold kubelet kubeadm kubectl
51
17
else
52
18
echo " issue in installing kubelet, kubeadm & kubectl - process abort"
53
19
exit 2
@@ -56,54 +22,40 @@ install_ubuntu() {
56
22
57
23
install_centos () {
58
24
59
- which docker
60
- if [ $? -eq 0 ]; then
61
- sudo yum remove docker-client-latest docker-latest docker-latest-logrotate docker-logrotate docker-engine
62
- cd /var/lib
63
- rm -rf docker
64
- yum clean
65
- else
66
- echo " docker is not installed... continue to install"
67
- fi
25
+ cat << EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
26
+ [kubernetes]
27
+ name=Kubernetes
28
+ baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$ basearch
29
+ enabled=1
30
+ gpgcheck=1
31
+ gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
32
+ exclude=kubelet kubeadm kubectl
33
+ EOF
34
+
35
+ sudo setenforce 0
36
+ sudo sed -i ' s/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
37
+ sudo yum install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00 --disableexcludes=kubernetes
38
+ sudo systemctl enable --now kubelet
68
39
69
- sudo yum install -y yum-utils # # device-mapper-persistent-data lvm2
70
- sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
71
- sudo yum install -y docker-ce docker-ce-cli containerd.io
72
- sudo systemctl enable docker.service
73
-
74
- if [ $? -eq 0 ]; then
75
- if [ -f /etc/docker/daemon.json ]; then
76
- echo " cgroup config is already configured skipping.."
77
- else
78
- echo " docker-ce is successfully installed"
79
- yum install -y wget
80
- sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/kubernetes/0-install/daemon.json -P /etc/docker
81
- sudo service docker restart ; clear
82
- fi
83
- else
84
- echo " issue with docker-ce installation - process abort"
85
- exit 1
86
- fi
87
- echo " "
40
+ }
88
41
89
- # Install kubeadm, kubelet, kubectl
42
+ install_amzn () {
90
43
91
44
cat << EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
92
45
[kubernetes]
93
46
name=Kubernetes
94
47
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$ basearch
95
48
enabled=1
96
49
gpgcheck=1
97
- repo_gpgcheck=1
98
50
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
99
51
exclude=kubelet kubeadm kubectl
100
52
EOF
101
53
102
- # Set SELinux in permissive mode (effectively disabling it)
103
- sudo setenforce 0
104
- sudo sed -i ' s/^SELINUX=enforcing$/SELINUX=permissive/ ' /etc/selinux/config
105
- sudo yum install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00 --disableexcludes=kubernetes
106
- sudo systemctl enable --now kubelet
54
+ sudo setenforce 0
55
+ sudo sed -i ' s/^SELINUX=enforcing$/SELINUX=permissive/ ' /etc/selinux/config
56
+ sudo yum install -y kubelet=1.23.6-00 kubeadm=1.23.6-00 kubectl=1.23.6-00 --disableexcludes=kubernetes
57
+ sudo systemctl enable --now kubelet
58
+
107
59
}
108
60
# ############### MAIN ###################
109
61
@@ -113,7 +65,7 @@ if [ -f /etc/os-release ];then
113
65
if [ $osname == " ubuntu" ]; then
114
66
install_ubuntu
115
67
elif [ $osname == " amzn" ]; then
116
- install_centos
68
+ install_amzn
117
69
elif [ $osname == " centos" ]; then
118
70
install_centos
119
71
fi
0 commit comments