kubernetes single node cluster

Здравствуйте товарищи очень давно блог не обновлялся, исправляем это 😉

Сегодня речь пойдет о такой технологии как k8s она набирает популярности в мире и это не просто потому что это тренд но и потому что она действительно решает ряд проблем связанных с конкретным приложением, но об этом позже сейчас же речь пойдет о создании «тестового» кластера так как из 1й ноды не может получиться полноценный кубернетс кластер, а вот для разработки и тестирования самое то итого дано виртуальная машина OS Centos  2 cpu и 4gb ram hdd 50gb.

Приступим к установке пререквизитов которыми является docker

yum install -y yum-utils device-mapper-persistent-data lvm2

подтягиваем сам докер репозитарий которого по умолчанию нету:

yum-config-manager — add-repo https://download.docker.com/linux/centos/docker-ce.repo

и ставим :

yum install docker-ce docker-ce-cli containerd.io

systemctl enable docker && systemctl start docker

проверим что докер поднялся:

systemctl status docker

теперь нам нужно добавить гугловый репозитарий с kubernetes:

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

теперь ставим сам кубернетс:

yum install -y kubelet kubeadm kubectl

для того что бы успешно создать кластер нужно выключить selinux:

setenforce 0

так же нужно сделать это в файле :

/etc/selinux/config

SELINUX=disabled

нужно выключить swap иначе кубернетс будет ругатся хотя можно засетапать и с ним но:

swapoff /dev/mapper/centos-swap

swapoff -a

включим сервис кублета:

systemctl enable kubelet

инициализируем кластер :

 kubeadm init —podnetworkcidr=10.244.0.0/16

так же добавляем себе конфиг кластера :

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

теперь нужно добавить flannel в качестве драйвера:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

и последнее нужно поднять CoreDns и разрешить скедулинг подов на мастер ноде:

kubectl edit deployment coredns -n kube-system

убираем толерейшыны :

  tolerations:
  - key: CriticalAddonsOnly
    operator: Exists
  - effect: NoSchedule
    key: node-role.kubernetes.io/master

и теперь для самой ноды:
kubectl taint nodes --all node-role.kubernetes.io/master-

Все теперь наш кластер должен быть полностью готов к работе 😉