Kubernetes the hard way: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 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== |
||
+ | кублету нужны дополнительные настройки что бы работать со свапом |
||
⚫ | |||
+ | dphys-swapfile uninstall |
||
⚫ | |||
+ | ==systemd-resolved== |
||
+ | Я так и не выяснил почему нужен systemd-resolved - но тем не менее без него не работает |
||
+ | <PRE> |
||
+ | systemctl start systemd-resolved |
||
+ | systemctl enable systemd-resolved |
||
+ | </PRE> |
||
=PKI= |
=PKI= |
||
Строка 35: | Строка 90: | ||
</PRE> |
</PRE> |
||
⚫ | |||
− | * 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> |
||
⚫ | |||
− | [Unit] |
||
− | Description=etcd |
||
− | Documentation=https://github.com/coreos |
||
⚫ | |||
− | [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 |
||
⚫ | |||
=Связнные статьи= |
=Связнные статьи= |
Текущая версия на 06:08, 15 сентября 2022
Что читать
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://habr.com/ru/company/southbridge/blog/443658/
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 я первый раз и тут возможны ошибки.
Описание "лаборатории"
- Натройка каталиста C3560 C3560_for_lab
- Используется три ноды которые имитируют три раззных 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
Абсолютно необходимый шаг это настройка - настройка инфраструктуры ключей и сертефикатов
- Предварительная настройка (Vault) - https://noname.com.ua/mediawiki/index.php/Vault_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
- Подготовка кластера etcd вынесена в отдельный докумет из-за размеров - https://noname.com.ua/mediawiki/index.php/Etcd
Связнные статьи
При подготовке пришлось настроить некоторые сервисы или железки (которые не относятся непосредственно к K8S но тем не менее необходимы)