Talos
Что такое Talos?
Talos Linux — это Linux, разработанный для Kubernetes: безопасный, неизменяемый и минималистичный.
- Поддерживает облачные платформы, «голое железо» и платформы виртуализации
- Все управление системой осуществляется через API. Нет SSH, оболочки или консоли
- Готовность к работе: поддерживает одни из крупнейших Kubernetes-кластеров в мире
- Проект с открытым исходным кодом от команды Sidero Labs
ISO-образы для архитектур amd64 и arm64 доступны на странице релизов Talos.
руководству по началу работы фабрика по сборке iso
Генерация и установка
эту часть делает ренератор generator.sh
talosctl gen secrets -o config/secrets.yaml
talosctl gen config --kubernetes-version 1.33.2 --with-secrets config/secrets.yaml talos-demo https://192.168.23.57:6443 --config-patch @patch.yaml
talosctl machineconfig patch config/controlplane.yaml --patch @cp1.patch --output config/cp1.yaml
talosctl machineconfig patch config/controlplane.yaml --patch @cp2.patch --output config/cp2.yaml
talosctl machineconfig patch config/controlplane.yaml --patch @cp3.patch --output config/cp3.yaml
talosctl machineconfig patch config/worker.yaml --patch @worker1.patch --output config/worker1.yaml
talosctl machineconfig patch config/worker.yaml --patch @worker2.patch --output config/worker2.yaml
эту часть делаем мы
talosctl apply-config --insecure -n 192.168.23.57 --file config/cp1.yaml
talosctl bootstrap --nodes 192.168.23.57 --endpoints 192.168.23.57 --talosconfig=config/talosconfig
# talosctl apply-config --insecure -n 192.168.23.52 --file config/cp2.yaml
# talosctl apply-config --insecure -n 192.168.23.53 --file config/cp3.yaml
talosctl apply-config --insecure -n 192.168.23.59 --file config/worker1.yaml
talosctl apply-config --insecure -n 192.168.23.58 --file config/worker2.yaml
talosctl kubeconfig ~/.kube/talos-demo.yaml --nodes 192.168.23.57 --endpoints 192.168.23.57 --talosconfig config/talosconfig
Cilium
правим api-адрес t8s в cilium/values.yaml
helm repo add cilium https://helm.cilium.io/
helm repo update
helm upgrade \
--install \
cilium \
cilium/cilium \
--version 1.17.5 \
--namespace kube-system \
--values cilium/values.yaml \
--set cluster.name=talos-demo \
--set cluster.id=1
kubectl apply -f cilium/ippool.yaml
kubectl apply -f cilium/l2-announcement-policy.yaml
Re-Apply configs
talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.57 --file config/cp1.yaml
# talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.52 --file config/cp2.yaml
# talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.53 --file config/cp3.yaml
talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.58 --file config/worker1.yaml
talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.59 --file config/worker2.yaml
Re-Apply configs and reboot
talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.57 --file config/cp1.yaml --mode=reboot
# talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.52 --file config/cp2.yaml --mode=reboot
# talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.53 --file config/cp3.yaml --mode=reboot
talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.59 --file config/worker1.yaml --mode=reboot
talosctl --talosconfig config/talosconfig apply-config -n 192.168.23.58 --file config/worker2.yaml --mode=reboot
Upgrade
IMAGE=factory.talos.dev/metal-installer/956b9107edd250304169d2e7a765cdd4e0c31f9097036e2e113b042e6c01bb98:v1.10.4
talosctl --talosconfig config/talosconfig upgrade --nodes 192.168.23.54 --image ${IMAGE}
# talosctl --talosconfig config/talosconfig upgrade --nodes 192.168.23.52 --image ${IMAGE}
# talosctl --talosconfig config/talosconfig upgrade --nodes 192.168.23.53 --image ${IMAGE}
talosctl --talosconfig config/talosconfig upgrade --nodes 192.168.23.55 --image ${IMAGE}
talosctl --talosconfig config/talosconfig upgrade --nodes 192.168.23.56 --image ${IMAGE}
Upgrade k8s
talosctl --nodes 192.168.23.100 --talosconfig config/talosconfig upgrade-k8s --to 1.33.2