DEV Community 👩‍💻👨‍💻

Fatih ASLAN
Fatih ASLAN

Posted on

Kubernetes Install (5Node=3Master+2Worker) With Kubespray on Ubuntu20LTS

Image description

fatlan@kube-master01:~$ kubectl get nodes -o wide
NAME            STATUS   ROLES                  AGE     VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
kube-master01   Ready    control-plane,master   5h51m   v1.22.2   10.10.10.191  <none>        Ubuntu 20.04.3 LTS   5.4.0-89-generic   docker://20.10.9
kube-master02   Ready    control-plane,master   5h51m   v1.22.2   10.10.10.192  <none>        Ubuntu 20.04.3 LTS   5.4.0-89-generic   docker://20.10.9
kube-master03   Ready    control-plane,master   5h51m   v1.22.2   10.10.10.193  <none>        Ubuntu 20.04.3 LTS   5.4.0-89-generic   docker://20.10.9
kube-worker01   Ready    <none>                 5h50m   v1.22.2   10.10.10.194  <none>        Ubuntu 20.04.3 LTS   5.4.0-89-generic   docker://20.10.9
kube-worker02   Ready    <none>                 5h50m   v1.22.2   10.10.10.195  <none>        Ubuntu 20.04.3 LTS   5.4.0-89-generic   docker://20.10.9
Enter fullscreen mode Exit fullscreen mode

Tüm hostlarda çalıştırılır
$USER aktif kullanıcı ile değiştirilir

sudo echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$USER
Enter fullscreen mode Exit fullscreen mode

Ansible client makinesinde çalıştırılmalı(10.10.10.191)

ssh-keygen
ssh-copy-id $USER@10.10.10.191
ssh-copy-id $USER@10.10.10.192
ssh-copy-id $USER@10.10.10.193
ssh-copy-id $USER@10.10.10.194
ssh-copy-id $USER@10.10.10.195
Enter fullscreen mode Exit fullscreen mode
git clone https://github.com/kubernetes-sigs/kubespray.git
Enter fullscreen mode Exit fullscreen mode
cd kubespray/

sudo apt install python3-pip

cat requirements.txt

sudo pip3 install -r requirements.txt

cp -rfp inventory/sample inventory/mycluster

declare -a IPS=(10.10.10.191 10.10.10.192 10.10.10.193 10.10.10.194 10.10.10.195)

CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
Enter fullscreen mode Exit fullscreen mode

Aşağıdaki hostname'leri kendi yapınıza göre değiştirebilirsiniz

vi kubespray/inventory/mycluster/hosts.yaml
Enter fullscreen mode Exit fullscreen mode
all:
  hosts:
    kube-master01:
      ansible_host: 10.10.10.191
      ip: 10.10.10.191
      access_ip: 10.10.10.191
    kube-master02:
      ansible_host: 10.10.10.192
      ip: 10.10.10.192
      access_ip: 10.10.10.192
    kube-master03:
      ansible_host: 10.10.10.193
      ip: 10.10.10.193
      access_ip: 10.10.10.193
    kube-worker01:
      ansible_host: 10.10.10.194
      ip: 10.10.10.194
      access_ip: 10.10.10.194
    kube-worker02:
      ansible_host: 10.10.10.195
      ip: 10.10.10.195
      access_ip: 10.10.10.195
  children:
    kube-master:
      hosts:
        kube-master01:
        kube-master02:
        kube-master03:
    kube-node:
      hosts:
        kube-master01:
        kube-master02:
        kube-master03:
        kube-worker01:
        kube-worker02:
    etcd:
      hosts:
        kube-master01:
        kube-master02:
        kube-master03:
    k8s-cluster:
      children:
        kube-master:
        kube-node:
    calico-rr:
      hosts: {}
Enter fullscreen mode Exit fullscreen mode
cat kubespray/inventory/mycluster/group_vars/all/all.yml

cat kubespray/cluster.yml

cat kubespray/inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
Enter fullscreen mode Exit fullscreen mode
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml

#Sadece tek makinede çalıştırmak için parametreyi kullanabilirsiniz, --limit <hostname or ip>
Enter fullscreen mode Exit fullscreen mode

$USER aktif kullanıcı ile değiştirilir

mkdir -p .kube

sudo cp /etc/kubernetes/admin.conf .kube/

sudo chown $USER:$USER .kube/admin.conf

export KUBECONFIG=$PWD/.kube/admin.conf

kubectl get nodes -o wide
Enter fullscreen mode Exit fullscreen mode

Node'ler reboot olduktan sonra eğer swap alanı kullanılıyorsa, .profile ya da .bashrc düzenleyebilirsiniz
ve node'ler reboot olunca cron ya da rc.local ya da systemd servis script dosyası oluşturabilirsiniz

Tüm NODE

swapoff -a
export LC_ALL=C
Enter fullscreen mode Exit fullscreen mode

Sadece MASTER/S NODE

swapoff -a
export KUBECONFIG=$PWD/.kube/admin.conf
export LC_ALL=C
Enter fullscreen mode Exit fullscreen mode

ref: 1

Top comments (0)

🌚 Friends don't let friends browse without dark mode.

Sorry, it's true.