У вас есть два варианта:
Запустите следующее на всех серверах
sudo iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports
sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 443 -j REDIRECT --to-ports
замените
портом, который вы выбрали для nodeport. Это требует, чтобы вы запускали команду на всех машинах, и это немного хаки. Лучшим решением было бы:
Это позволяет привязать любой порт к определенному узлу, который затем будет маршрутизироваться через кластер. Очевидно, что это обеспечивает единую точку отказа, которую можно исправить с помощью :
.
keepalived — очень простая программа. Он создает виртуальный IP-адрес, который перемещается, чтобы указывать на другой узел, когда мастер выходит из строя. Он эффективно создает псевдоним IP-адреса для главного сервера проверки активности. Хорошим началом будет keepalived -vip , который автоматически настраивает поддержку активности для предоставляемых вами услуг.
Я лично использую для этого keepalived -vip, так как он намного лучше подходит для моей сетевой модели, но если ваши клиенты могут получить доступ к любому из ваших серверов, то простая переадресация портов — единственный способ сделать это.
awk -F "," 'ORS=","{gsub(/.*_/,"",$1);print "The value of attribute "$1" is "$2}' filename| sed "s/,$//g"
выход
The value of attribute A is 2,The value of attribute B is 2,The value of attribute C is 2.5
awk -F'[,_]' '{ attrs[$2]=$3; };
END{ printf "INSERT INTO db.table (";
for(attr in attrs) { printf ("%s\047attribute_%s\047", sep, attr); sep=", "; };
printf ") VALUES ("; sep="";
for(attr in attrs) { printf ("%s\047%s\047", sep, attrs[attr]); sep=", "; };
print ")";
}' infile
INSERT INTO db.table ('attribute_A', 'attribute_B', 'attribute_C') VALUES ('2', '2', '2.5')