Описание нативного разворачивания talos в среде Virtual Machine Manager ALTLinux
Разворачиание
В HOST-системе наберите команды:
apt-get install curl wget jq yq
curl -sL https://talos.dev/install | sh
# curl -sL https://talos.dev/install | sh
Downloading talosctl-linux-amd64...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 81.1M 100 81.1M 0 0 1311k 0 0:01:03 0:01:03 --:--:-- 2576k
Download complete!
Validating checksum...
Checksum valid.
talosctl was successfully installed 🎉
Installed version:
Client:
Tag: v1.8.1
SHA: 477752fe
Built:
Go version: go1.22.8
OS/Arch: linux/amd64
Server:
Now run:
talosctl cluster create # install a local test cluster
talosctl dashboard # If you have created a cluster, launch the dashboard
Looking for more? Visit https://talos.dev/latest
Скачайте ISO-образ:
wget https://github.com/siderolabs/talos/releases/download/v1.8.0/metal-amd64.iso -O /var/lib/libvirt/images/talos-metal-amd64.iso
...
/var/lib/libvirt/images/tal 100%[==========================================>] 101,58M 4,56MB/s за 18s
2024-10-09 13:47:12 (5,65 MB/s) - «/var/lib/libvirt/images/talos-metal-amd64.iso» сохранён [106514432/106514432]
Содайте в Virtual Machine Manager
две виртуальные машины с именами TALOSMASTER1
и TALOSWORKER1
указав в качестве ISO скачанный образ talos-metal-amd64.iso
.
тип OS Generic Linux 2022
.
После загрузки VM на них запускается talosctl
в режиме dashboard
:
Определите IP-адреса запушенных VM:
Допустим это будут адреса:
TALOSMASTER1
-192.168.122.173
;TALOSWORKER1
-192.168.122.38
.
talosctl gen config taloscluster https://192.168.122.173:6443
generating PKI and tokens
Created .../controlplane.yaml
Created .../worker.yaml
Created .../talosconfig
Виртуальные машины в Virtual Machine Manager ALTLinux
создаются с дисками /dev/vda
.
Исправьте в файлах controlplane.yaml
, worker.yaml
именв дисков c dev/sda
на /dev/vda
.
sed -i 's|/dev/sda|/dev/vda|' controlplane.yaml
sed -i 's|/dev/sda|/dev/vda|' worker.yaml
Запишите исправленную конфигурацию в VMs:
talosctl apply-config --insecure -n 192.168.122.173 --file controlplane.yaml
talosctl apply-config --insecure -n 192.168.122.38 --file worker.yaml
После данных команд узлы кластера на какое то время (до нескольких минут) отключают порт 50000
по которому работет talosctl
. Поэтому следующую команду окончательного формирования кластера надо выполнять в цикле до успешного завершения:
until talosctl -e 192.168.122.173 -n 192.168.122.173 --talosconfig=./talosconfig bootstrap
do
sleep 5
done
После успешеого завершения команды сформируйте ~/.kube/config
командой:
talosctl -e 192.168.122.173 -n 192.168.122.173 kubeconfig --talosconfig=./talosconfig
Посмотрите наличие файла ~/.kube/config
:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ...
server: https://192.168.122.173:6443
name: taloscluster
...
...
Дождитесь подъема всех сервисов кластера:
kubectl get all -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/coredns-68d75fd545-hp8gn 1/1 Running 0 31m
kube-system pod/coredns-68d75fd545-qwpl6 1/1 Running 0 31m
kube-system pod/kube-apiserver-talos-nv1-2gp 1/1 Running 0 31m
kube-system pod/kube-controller-manager-talos-nv1-2gp 1/1 Running 2 (32m ago) 30m
kube-system pod/kube-flannel-4xsvb 1/1 Running 0 31m
kube-system pod/kube-flannel-pmrkc 1/1 Running 0 31m
kube-system pod/kube-proxy-qp6cb 1/1 Running 0 31m
kube-system pod/kube-proxy-rtqtp 1/1 Running 0 31m
kube-system pod/kube-scheduler-talos-nv1-2gp 1/1 Running 2 (32m ago) 30m
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 32m
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 32m
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/kube-flannel 2 2 2 2 2 <none> 32m
kube-system daemonset.apps/kube-proxy 2 2 2 2 2 <none> 32m
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/coredns 2/2 2 2 32m
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/coredns-68d75fd545 2 2 2 31m
Проверьте список поднятых узлов.
kubectl get nodes
NAME STATUS ROLES AGE VERSION
talos-nv1-2gp Ready control-plane 32m v1.31.1
talos-slo-uz2 Ready <none> 32m v1.31.1