Образ: Orchestra 11.0 Шаги для воспроизведения: 1) Развернуть кластер состоящий из трех ControlPlane узлов по документации Альт Оркестрация 25.3. Проверка работы VIP; 2) На рабочем месте администратора настроен дополнительный интерфейс в том же VLAN, что и ControlPlane. Настроена статика: # mkdir /etc/net/ifaces/ens20 # cat >> /etc/net/ifaces/ens20/options <<EOF TYPE=eth BOOTPROTO=static CONFIG_WIRELESS=no SYSTEMD_BOOTPROTO=static CONFIG_IPV4=yes DISABLED=no NM_CONTROLLED=no SYSTEMD_CONTROLLED=no EOF # cat >> /etc/net/ifaces/ens20/ipv4address <<EOF 192.168.0.200/24 EOF # systemctl restart network 3) Выполнить патч создания VIP (192.168.0.100) на всех узлах: $ talosctl -n 192.168.0.140 patch machineconfig \ -p '[{"op":"add","path":"/machine/network/interfaces","value":[{"deviceSelector":{"physical":true},"dhcp":true,"vip":{"ip":"192.168.0.100"}}]}]' $ talosctl -n 192.168.0.141 patch machineconfig \ -p '[{"op":"add","path":"/machine/network/interfaces","value":[{"deviceSelector":{"physical":true},"dhcp":true,"vip":{"ip":"192.168.0.100"}}]}]' $ talosctl -n 192.168.0.142 patch machineconfig \ -p '[{"op":"add","path":"/machine/network/interfaces","value":[{"deviceSelector":{"physical":true},"dhcp":true,"vip":{"ip":"192.168.0.100"}}]}]' 4) Убедиться, что виртуальный IP-адрес назначен: $ talosctl get addresses 2>/dev/null | grep 192.168.0.100 5) Скопировать конфигурацию k8s: $ cp ~/kubeconfig ~/vipk8sconfig 6) Заменить IP-адрес на виртуальный: $ sed -i 's|192.168.1.2|192.168.1.100|g' ~/vipk8sconfig 7) Создать скрипт для отслеживания виртуального IP-адреса: $ echo 'talosctl get addresses -e <Адреса Control Plane, кроме узла с VIP> | grep 192.168.0.100' > get.sh 8) Выполнить удаление VIP и убедиться, что виртуальный IP-адрес отсутствует: $ talosctl get addresses 2>/dev/null | grep 192.168.0.100 Фактический результат: 1) Команда $ talosctl get addresses 2>/dev/null | grep 192.168.0.100 при проверке назначения виртуального IP-адреса ничего не возвращает: $ talosctl get addresses nodes are not set for the command: please use `--nodes` flag or configuration file to set the nodes to run the command against Usage: talosctl get <type> [<id>] [flags] Aliases: get, g Flags: -c, --cluster string Cluster to connect to if a proxy endpoint is used. --context string Context to be used in command -e, --endpoints strings override default endpoints in Talos configuration -h, --help help for get -i, --insecure get resources using the insecure (encrypted with no auth) maintenance service --namespace string resource namespace (default is to use default namespace per resource) -n, --nodes strings target the specified nodes -o, --output string output mode (json, table, yaml, jsonpath) (default "table") --siderov1-keys-dir string The path to the SideroV1 auth PGP keys directory. Defaults to 'SIDEROV1_KEYS_DIR' env variable if set, otherwise '$HOME/.talos/keys'. Only valid for Contexts that use SideroV1 auth. --talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order. -w, --watch watch resource changes 2) IP в команде замены IP-адреса на виртуальный указан неверно: 192.168.1.100 3) Команда в скрипте для отслеживания виртуального IP-адреса (talosctl get addresses -e <Адреса Control Plane, кроме узла с VIP> | grep 192.168.0.100) указана неверно: $ talosctl --talosconfig test-vip/talosconfig get addresses -e <IP address>,<IP address> nodes are not set for the command: please use `--nodes` flag or configuration file to set the nodes to run the command against Usage: talosctl get <type> [<id>] [flags] Aliases: get, g Flags: -c, --cluster string Cluster to connect to if a proxy endpoint is used. --context string Context to be used in command -e, --endpoints strings override default endpoints in Talos configuration -h, --help help for get -i, --insecure get resources using the insecure (encrypted with no auth) maintenance service --namespace string resource namespace (default is to use default namespace per resource) -n, --nodes strings target the specified nodes -o, --output string output mode (json, table, yaml, jsonpath) (default "table") --siderov1-keys-dir string The path to the SideroV1 auth PGP keys directory. Defaults to 'SIDEROV1_KEYS_DIR' env variable if set, otherwise '$HOME/.talos/keys'. Only valid for Contexts that use SideroV1 auth. --talosconfig string The path to the Talos configuration file. Defaults to 'TALOSCONFIG' env variable if set, otherwise '$HOME/.talos/config' and '/var/run/secrets/talos.dev/config' in order. -w, --watch watch resource changes 4) Команда $ talosctl get addresses 2>/dev/null | grep 192.168.0.100 при проверке удаления виртуального IP-адреса ничего не возвращает. Ожидаемый результат: 1) Команда проверки назначения виртуального IP-адреса указана верно: $ talosctl -n <ip_cp1>,<ip_cp2>,<ip_cp3> get addresses | grep 192.168.0.100 2) IP в команде замены IP-адреса на виртуальный указан верно: 192.168.0.100 3) Команда в скрипте для отслеживания виртуального IP-адреса указана верно: *@talosctl get addresses -n <ip_cp2>,<ip_cp3> | grep 192.168.0.100 4) Команда проверки удаления виртуального IP-адреса указана верно: $ talosctl -n <ip_cp1>,<ip_cp2>,<ip_cp3> get addresses | grep 192.168.0.100