├── helm3.sh ├── eksctl.sh ├── trivy.sh ├── kubectl.sh ├── efs-ubuntu.sh ├── azure-cli-terraform.sh ├── jenkins.sh ├── docker.sh ├── k8s-nodes.sh ├── grafana.sh ├── k8s-master.sh ├── readme-k8s └── k8s-latest-updates /helm3.sh: -------------------------------------------------------------------------------- 1 | curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 2 | helm version 3 | -------------------------------------------------------------------------------- /eksctl.sh: -------------------------------------------------------------------------------- 1 | curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_Linux_amd64.tar.gz" | tar xz -C /tmp 2 | sudo mv /tmp/eksctl /usr/local/bin/ 3 | eksctl version 4 | -------------------------------------------------------------------------------- /trivy.sh: -------------------------------------------------------------------------------- 1 | sudo apt-get install wget apt-transport-https gnupg lsb-release 2 | wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add - 3 | echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list 4 | sudo apt-get update 5 | sudo apt-get install trivy -y 6 | -------------------------------------------------------------------------------- /kubectl.sh: -------------------------------------------------------------------------------- 1 | curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl 2 | 3 | sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl 4 | 5 | chmod +x kubectl 6 | mkdir -p ~/.local/bin 7 | mv ./kubectl ~/.local/bin/kubectl 8 | # and then append (or prepend) ~/.local/bin to $PATH 9 | 10 | kubectl version --client 11 | -------------------------------------------------------------------------------- /efs-ubuntu.sh: -------------------------------------------------------------------------------- 1 | # Step 1: Update Packages 2 | 3 | 4 | sudo apt update -y 5 | sudo apt install -y nfs-common 6 | #NFS Common is required for mounting EFS. 7 | 8 | # Step 2: Install EFS Mount Helper 9 | sudo apt-get update 10 | sudo apt-get -y install git binutils rustc cargo pkg-config libssl-dev gettext 11 | git clone https://github.com/aws/efs-utils 12 | cd efs-utils 13 | ./build-deb.sh 14 | sudo apt-get -y install ./build/amazon-efs-utils*deb 15 | 16 | -------------------------------------------------------------------------------- /azure-cli-terraform.sh: -------------------------------------------------------------------------------- 1 | wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg 2 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list 3 | sudo apt update && sudo apt install terraform 4 | #install azure cli 5 | curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash 6 | #create directory 7 | mkdir myterraformdir 8 | cd myterraformdir 9 | #### 10 | 11 | az login 12 | -------------------------------------------------------------------------------- /jenkins.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # USE UBUNTU20.04 - INSTANCE: 2GB RAM + 2VCPU MIN - WILL ONLY WORK 3 | sudo apt update -y 4 | sudo apt install openjdk-17-jdk -y 5 | sudo apt update -y 6 | sudo apt install maven -y 7 | curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \ 8 | /usr/share/keyrings/jenkins-keyring.asc > /dev/null 9 | echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ 10 | https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ 11 | /etc/apt/sources.list.d/jenkins.list > /dev/null 12 | sudo apt update -y 13 | sudo apt install jenkins -y 14 | service jenkins start 15 | cat /var/lib/jenkins/secrets/initialAdminPassword 16 | #chmod 777 jenkins.sh 17 | #./jenkins.sh 18 | -------------------------------------------------------------------------------- /docker.sh: -------------------------------------------------------------------------------- 1 | # Add Docker's official GPG key: 2 | sudo apt-get update 3 | sudo apt-get install ca-certificates curl 4 | sudo install -m 0755 -d /etc/apt/keyrings 5 | sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc 6 | sudo chmod a+r /etc/apt/keyrings/docker.asc 7 | # Add the repository to Apt sources: 8 | echo \ 9 | "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ 10 | $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ 11 | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 12 | sudo apt-get update 13 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y 14 | -------------------------------------------------------------------------------- /k8s-nodes.sh: -------------------------------------------------------------------------------- 1 | ## Install Docker 2 | 3 | 4 | sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/scripts/installDocker.sh -P /tmp 5 | sudo chmod 755 /tmp/installDocker.sh 6 | sudo bash /tmp/installDocker.sh 7 | sudo systemctl restart docker.service 8 | 9 | 10 | ## Install CRI-Docker 11 | 12 | 13 | sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/scripts/installCRIDockerd.sh -P /tmp 14 | 15 | 16 | sudo chmod 755 /tmp/installCRIDockerd.sh 17 | sudo bash /tmp/installCRIDockerd.sh 18 | sudo systemctl restart cri-docker.service 19 | 20 | 21 | ## Install kuubernetes 22 | 23 | ## Install kubeadm,kubelet,kubectl 24 | sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/scripts/installK8S.sh -P /tmp 25 | sudo chmod 755 /tmp/installK8S.sh 26 | sudo bash /tmp/installK8S.sh 27 | 28 | -------------------------------------------------------------------------------- /grafana.sh: -------------------------------------------------------------------------------- 1 | 2 | sudo apt-get install -y apt-transport-https software-properties-common wget 3 | sudo mkdir -p /etc/apt/keyrings/ 4 | wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null 5 | echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list 6 | echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list 7 | # Updates the list of available packages 8 | sudo apt-get update 9 | # Installs the latest OSS release: 10 | sudo apt-get install grafana 11 | # Installs the latest Enterprise release: 12 | sudo apt-get install grafana-enterprise 13 | sudo service grafana-server start 14 | 15 | # now check publicip:3000 16 | -------------------------------------------------------------------------------- /k8s-master.sh: -------------------------------------------------------------------------------- 1 | ## Install Docker 2 | sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/scripts/installDocker.sh -P /tmp 3 | sudo chmod 755 /tmp/installDocker.sh 4 | sudo bash /tmp/installDocker.sh 5 | sudo systemctl restart docker.service 6 | 7 | 8 | ## Install CRI-Docker 9 | sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/scripts/installCRIDockerd.sh -P /tmp 10 | sudo chmod 755 /tmp/installCRIDockerd.sh 11 | sudo bash /tmp/installCRIDockerd.sh 12 | sudo systemctl restart cri-docker.service 13 | 14 | 15 | ## Install kubernetes 16 | 17 | 18 | sudo wget https://raw.githubusercontent.com/lerndevops/labs/master/scripts/installK8S.sh -P /tmp 19 | sudo chmod 755 /tmp/installK8S.sh 20 | sudo bash /tmp/installK8S.sh 21 | 22 | 23 | ## Initialize kubernetes Master Node 24 | 25 | sudo kubeadm init --cri-socket unix:///var/run/cri-dockerd.sock --ignore-preflight-errors=all 26 | 27 | 28 | sudo mkdir -p $HOME/.kube 29 | sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 30 | sudo chown $(id -u):$(id -g) $HOME/.kube/config 31 | 32 | 33 | ## install networking driver -- Weave/flannel/canal/calico etc... 34 | 35 | 36 | ## below installs calico networking driver 37 | 38 | kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/calico.yaml 39 | -------------------------------------------------------------------------------- /readme-k8s: -------------------------------------------------------------------------------- 1 | CREATE 3 ec2 t3.medium machine with all traffic enabled 2 | 3 | In Master machine: 4 | sudo su 5 | wget https://raw.githubusercontent.com/akshu20791/Deployment-script/main/k8s-master.sh 6 | ls -l 7 | ls 8 | chmod 777 k8s-master.sh 9 | ls -l 10 | ./k8s-master.sh 11 | 12 | 13 | ################# IN the nodes ############################### 14 | sudo su (if not done) 15 | wget https://raw.githubusercontent.com/akshu20791/Deployment-script/main/k8s-nodes.sh 16 | ls 17 | ls -l 18 | chmod 777 k8s-nodes.sh 19 | ls -l 20 | ./k8s-nodes.sh 21 | 22 | 23 | ########################################################################### 24 | 25 | RUN THE COMMAND IN NODES: (run all the three lines together its a single command) 26 | 27 | modprobe br_netfilter 28 | echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables 29 | echo 1 > /proc/sys/net/ipv4/ip_forward 30 | 31 | ### 32 | 33 | After k8s installation is done . we need to connect nodes with the master via tokens 34 | 35 | ### generate token in master: (run below command in k8s master) 36 | 37 | kubeadm token create --print-join-command 38 | 39 | ## whatever token comes up ...copy the token and paste it in notepad and after that in the command you will see 6443 written ...after that paste --cri-socket unix:///var/run/cri-dockerd.sock 40 | 41 | 42 | EXAMPLE: YOUR TOKEN SHOULD LOOK LIKE THIS (REMEMBER NOT TO COPY BELOW TOKEN ITS NOT YOURS) 43 | 44 | kubeadm join 172.31.17.126:6443 --cri-socket unix:///var/run/cri-dockerd.sock --token 5fh9ia.7dqyttb7tvzzarg6 --discovery-token-ca-cert-hash sha256:47a2d8b3157d6cee55109aa3a37887d031a24128de05732b0c168fe9da62733e 45 | 46 | 47 | ################ 48 | 49 | Now paste the tokens in the nodes one by one 50 | 51 | ################# 52 | 53 | To validate : 54 | 55 | kubectl get nodes #run this command in kubernetes master machine (controller machine) 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /k8s-latest-updates: -------------------------------------------------------------------------------- 1 | ## CREATE 3 T3.medium machine with all traffic enabled 2 | 3 | #In master machine: 4 | 5 | #Step 1 : Update and Upgrade Ubuntu 6 | sudo apt-get update 7 | sudo apt-get upgrade 8 | 9 | sudo swapoff -a 10 | sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 11 | 12 | ## 13 | 14 | sudo tee /etc/modules-load.d/containerd.conf </dev/null 2>&1 45 | sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml 46 | 47 | sudo systemctl restart containerd 48 | sudo systemctl enable containerd 49 | 50 | ## 51 | 52 | sudo apt-get update 53 | # apt-transport-https may be a dummy package; if so, you can skip that package 54 | sudo apt-get install -y apt-transport-https ca-certificates curl gpg 55 | 56 | curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg 57 | 58 | # This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list 59 | echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list 60 | 61 | ## 62 | 63 | sudo apt-get update 64 | sudo apt-get install -y kubelet kubeadm kubectl 65 | sudo apt-mark hold kubelet kubeadm kubectl 66 | 67 | ## 68 | 69 | modprobe br_netfilter 70 | echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables 71 | echo 1 > /proc/sys/net/ipv4/ip_forward 72 | 73 | ## 74 | 75 | sudo kubeadm init 76 | 77 | mkdir -p $HOME/.kube 78 | sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 79 | sudo chown $(id -u):$(id -g) $HOME/.kube/config 80 | 81 | kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml 82 | 83 | 84 | ################## 85 | ################## 86 | ################### 87 | 88 | ## NOW RUN THE BELOW COMMANDS IN THE NODES ###### 89 | 90 | 91 | sudo apt-get update 92 | sudo apt-get upgrade 93 | 94 | sudo swapoff -a 95 | sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab 96 | 97 | ## 98 | 99 | sudo tee /etc/modules-load.d/containerd.conf </dev/null 2>&1 130 | sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml 131 | 132 | sudo systemctl restart containerd 133 | sudo systemctl enable containerd 134 | 135 | ## 136 | 137 | sudo apt-get update 138 | # apt-transport-https may be a dummy package; if so, you can skip that package 139 | sudo apt-get install -y apt-transport-https ca-certificates curl gpg 140 | 141 | curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg 142 | 143 | # This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list 144 | echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list 145 | 146 | ## 147 | 148 | sudo apt-get update 149 | sudo apt-get install -y kubelet kubeadm kubectl 150 | sudo apt-mark hold kubelet kubeadm kubectl 151 | 152 | ### NOW COPY THE JOIN COMMAND WHICH APPEARED IN MASTER MACHINE and paste it THE NODE 153 | 154 | e,g kubeadm join 172.31.72.250:6443 --token qyq7z7.5augt56vin856fj --discovery-token-ca-cert-hash sha256:09a1fc88c9fc8cab5171333546456455dd54cf3d8cb3400362586185308c3 155 | (do not use above this is just example) 156 | 157 | 158 | 159 | 160 | kubectl get nodes 161 | 162 | 163 | 164 | ## https://medium.com/@kvihanga/how-to-set-up-a-kubernetes-cluster-on-ubuntu-22-04-lts-433548d9a7d0 165 | 166 | 167 | 168 | --------------------------------------------------------------------------------