Новый раздел kubernetes на моем сайте

Последнее время снимал много видео, посвященных kubernetes. Практически перестал добавлять статьи на сайт. Решил исправиться и открыть раздел Кубернетес, в котором планирую писать свои заметки по этой теме.

Заметки будут появляться в произвольном порядке. В итоге, надеюсь, получится материал для обучения с нуля до как получится.

Многие материалы дублируют или дополняют мои видео на канале в youtube.

Начал с темы volumes. Скоро сниму видео на эту тему, с более подробным рассказом.

Kubernetes, ingress controller 3, установка второго контроллера, вариант HostNetwork

Продолжение темы ingress controller.Деплой второго ingress controller в варианте HostNetwork.В итоге получаем два разных контроллера в кластере. Деплоим Ingress, выбирая необходимый контроллер.

Файлы, используемые в видео: https://github.com/BigKAA/kubernetes-ingresscontroller

Kubernetes, Ingress controller, установка и настройка, вариант с NodePort

Установка и настройка Ingress controller, вариант NodePort с дополнениями и улучшениями. Подробно рассматриваем установку контроллера используя руки, мозги и yaml файлы. Никаких helm-чартов.

Файлы, используемые в видео: https://github.com/BigKAA/kubernetes-ingresscontroller

Следующее видео в серии Ingress controller:
3. Kubernetes, ingress controller [3], установка второго контроллера, вариант HostNetwork: https://youtu.be/k26hETfmRzc

Kebernetes, Ingress controller — теория

Первое видео в серии «Ingress controller». Теоретическое.

Полезные ссылки:
Ingress — https://kubernetes.io/docs/concepts/services-networking/ingress/
Ingress Controllers — https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
NGINX Ingress Controller — https://kubernetes.github.io/ingress-nginx/

В следующем видео будет показана установка и настройка ingress controller с использованием NodePort.

Kubernetes, flunetd — роутер логов

Использование fluentd в качестве роутера логов.
Сохранение логов kubernetes и приложений в файлах на NFS диске.

Немного об использовании PersistentVolumes & PersistentVolumesClaims

Файлы, используемые в видео: https://github.com/BigKAA/kubernetes-fluentd

Kubernetes logs and fluentbit

В видео подробно описано как собирать логи:

  • Kubernetes.
  • Приложений, развернутых в нем.
  • Логи хост компьютера, на котором развернут kubernetes.

Для сбора используется программа fluentbit.

Фалы манифестов можно получить тут: https://github.com/BigKAA/kubernetes-fluentbit

Установка kubernetes на CentOS 8

Файлы, используемые в видео.

Установка докера

cat > install-docker-ce8.sh << EOF2
#!/bin/bash

dnf install tc ipvsadm -y

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
dnf install network-scripts

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce --nobest -y

mkdir /etc/docker

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ],
  "iptables": false
 } 
EOF 
mkdir -p /etc/systemd/system/docker.service.d 
systemctl daemon-reload 
systemctl enable docker 
systemctl restart docker 
EOF2 

chmod +x install-docker-ce8.sh

Установка kubernetes

cat >  install-k8s-ce8.sh << EOF2
#!/bin/bash

iptables -P FORWARD ACCEPT

cat > /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter

cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
net.bridge.bridge-nf-call-iptables  = 1
net.ipv4.ip_forward                 = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

sysctl --system

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[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
EOF

dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable kubelet.service
EOF2

chmod +x install-k8s-ce8.sh

Инициализация кластера:

kubeadm init --pod-network-cidr=10.244.0.0/16

Создание токена на присоединения ноды:

kubeadm token create --print-join-command

Подготовка ноды к обслуживанию:

kubectl drain node2.kryukov.biz --ignore-daemonsets

Возврат ноды из обслуживания:

kubectl uncordon node2.kryukov.biz