Kubernetes the hard way: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 11 промежуточных версий этого же участника)
Строка 7: Строка 7:
 
[[Категория:Dell]]
 
[[Категория:Dell]]
 
[[Категория:Etcd]]
 
[[Категория:Etcd]]
  +
=Что читать=
  +
MetalLB
  +
* https://metallb.universe.tf/installation/
  +
* https://devopstales.github.io/kubernetes/k8s-metallb-bgp-pfsense/
  +
* https://levelup.gitconnected.com/step-by-step-slow-guide-kubernetes-cluster-on-raspberry-pi-4b-part-3-899fc270600e
  +
  +
Прочее
  +
* https://kubernetes.io/docs/reference/_print/
  +
  +
  +
  +
https://habr.com/ru/company/southbridge/blog/443658/
  +
  +
https://jvns.ca
  +
  +
  +
https://getbetterdevops.io/replace-docker-on-your-raspberry-pi-with-containerd/
  +
  +
  +
https://www.kryukov.biz/kubernetes/set-kubernetes-teoriya/calico/
  +
https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727
  +
  +
  +
Инструменты
  +
* https://habr.com/ru/company/jugru/blog/575408/
  +
* https://habr.com/ru/company/flant/blog/551182/
  +
  +
  +
Volumes
  +
* https://serveradmin.ru/hranilishha-dannyh-persistent-volumes-v-kubernetes/
  +
  +
Affinity/AntiAffinity
  +
* https://prudnitskiy.pro/2021/01/15/k8s-pod-distribution/
  +
 
=Kubernetes the hard way=
 
=Kubernetes the hard way=
  +
 
Тут заметки о том как я пробую заставить себя изучить K8S
 
Тут заметки о том как я пробую заставить себя изучить K8S
   
Строка 23: Строка 58:
 
** node 2 AZ2 == VLAN 2001 == 10.240.2.2/24, GW (catalyst) 10.240.2.1
 
** node 2 AZ2 == VLAN 2001 == 10.240.2.2/24, GW (catalyst) 10.240.2.1
 
** node 3 AZ3 == VLAN 2001 == 10.240.3.2/24, GW (catalyst) 10.240.3.1
 
** node 3 AZ3 == VLAN 2001 == 10.240.3.2/24, GW (catalyst) 10.240.3.1
  +
  +
  +
POD CIDR
  +
* 10.241.1.0/24
  +
* 10.241.2.0/24
  +
* 10.241.3.0/24
  +
  +
  +
=Подготовка системы=
  +
==отключить swap==
  +
кублету нужны дополнительные настройки что бы работать со свапом
 
<PRE>
  +
dphys-swapfile uninstall
 
</PRE>
  +
==systemd-resolved==
  +
Я так и не выяснил почему нужен systemd-resolved - но тем не менее без него не работает
  +
<PRE>
  +
systemctl start systemd-resolved
  +
systemctl enable systemd-resolved
  +
</PRE>
   
 
=PKI=
 
=PKI=
Строка 35: Строка 90:
 
</PRE>
 
</PRE>
   
=Etcd=
 
* wget https://github.com/etcd-io/etcd/releases/download/v3.5.1/etcd-v3.5.1-linux-arm64.tar.gz
 
   
  +
=Распространить сертефикат=
 
<PRE>
 
<PRE>
  +
curl http://vault.home:8200/v1/pki_root_ca/ca/pem -o /usr/local/share/ca-certificates/rootCA.crt
/etc/systemd/system/etcd.service
 
  +
update-ca-certificates
 
</PRE>
 
</PRE>
<PRE>
 
[Unit]
 
Description=etcd
 
Documentation=https://github.com/coreos
 
   
 
=Etcd=
[Service]
 
  +
* Подготовка кластера etcd вынесена в отдельный докумет из-за размеров - https://noname.com.ua/mediawiki/index.php/Etcd
Type=notify
 
ExecStart=/usr/local/bin/etcd \\
 
--name ${ETCD_NAME} \\
 
--cert-file=/etc/etcd/kubernetes.pem \\
 
--key-file=/etc/etcd/kubernetes-key.pem \\
 
--peer-cert-file=/etc/etcd/kubernetes.pem \\
 
--peer-key-file=/etc/etcd/kubernetes-key.pem \\
 
--trusted-ca-file=/etc/etcd/ca.pem \\
 
--peer-trusted-ca-file=/etc/etcd/ca.pem \\
 
--peer-client-cert-auth \\
 
--client-cert-auth \\
 
--initial-advertise-peer-urls https://${INTERNAL_IP}:2380 \\
 
--listen-peer-urls https://${INTERNAL_IP}:2380 \\
 
--listen-client-urls https://${INTERNAL_IP}:2379,https://127.0.0.1:2379 \\
 
--advertise-client-urls https://${INTERNAL_IP}:2379 \\
 
--initial-cluster-token etcd-cluster-0 \\
 
--initial-cluster controller-0=https://10.240.0.10:2380,controller-1=https://10.240.0.11:2380,controller-2=https://10.240.0.12:2380 \\
 
--initial-cluster-state new \\
 
--data-dir=/var/lib/etcd
 
Restart=on-failure
 
RestartSec=5
 
 
[Install]
 
WantedBy=multi-user.target
 
</PRE>
 
   
 
=Связнные статьи=
 
=Связнные статьи=

Текущая версия на 07:08, 15 сентября 2022

Что читать

MetalLB

Прочее


https://habr.com/ru/company/southbridge/blog/443658/

https://jvns.ca


https://getbetterdevops.io/replace-docker-on-your-raspberry-pi-with-containerd/


https://www.kryukov.biz/kubernetes/set-kubernetes-teoriya/calico/ https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727


Инструменты


Volumes

Affinity/AntiAffinity

Kubernetes the hard way

Тут заметки о том как я пробую заставить себя изучить K8S

Я попробовал творчески переосмыслить это руководство и так же добавить свои пояснения что и нахрена я делаю и почему именно так. Настраиваю k8s я первый раз и тут возможны ошибки.

Описание "лаборатории"

  • Используется три ноды которые имитируют три раззных AZ в пределах одного региона
  • Для сервисов задаются ДНС-записи если это необходимо
  • Каждая нода находится в своем VLAN
    • node 1 AZ1 == VLAN 2001 == 10.240.1.2/24, GW (catalyst) 10.240.1.1
    • node 2 AZ2 == VLAN 2001 == 10.240.2.2/24, GW (catalyst) 10.240.2.1
    • node 3 AZ3 == VLAN 2001 == 10.240.3.2/24, GW (catalyst) 10.240.3.1


POD CIDR

  • 10.241.1.0/24
  • 10.241.2.0/24
  • 10.241.3.0/24


Подготовка системы

отключить swap

кублету нужны дополнительные настройки что бы работать со свапом

dphys-swapfile uninstall

systemd-resolved

Я так и не выяснил почему нужен systemd-resolved - но тем не менее без него не работает

systemctl start systemd-resolved
systemctl enable systemd-resolved

PKI

Абсолютно необходимый шаг это настройка - настройка инфраструктуры ключей и сертефикатов


Перед началом работы распределить CA по всем нодам

curl http://vault.home:8200/v1/pki_root_ca/ca/pem -o /usr/local/share/ca-certificates/rootCA.crt
update-ca-certificates


Распространить сертефикат

curl http://vault.home:8200/v1/pki_root_ca/ca/pem -o /usr/local/share/ca-certificates/rootCA.crt
update-ca-certificates

Etcd

Связнные статьи

При подготовке пришлось настроить некоторые сервисы или железки (которые не относятся непосредственно к K8S но тем не менее необходимы)