Здравствуйте товарищи очень давно блог не обновлялся, исправляем это 😉
Сегодня речь пойдет о такой технологии как 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 —pod—network—cidr=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-
Все теперь наш кластер должен быть полностью готов к работе 😉