Как стать автором
Обновить

Комментарии 16

Длинно. Но интересно! :) Спасибо.

Большое спасибо, к сожалению цель стать показать внутренности без всякой автоматизации)

Спасибо за статью. Можно попробовать всё это перенести в ansible роли, на bash-е далеко не уедешь. По возможности - без terraform.

Ну данная статья обозревательная - указать на внутрянку.
Конечно можно описать все любым инструментом от баша, до ансибла или терраформа. Например наш проект https://github.com/fraima/kubernetes/tree/main/k8s-yandex-cluster реализует один из методов установки кластера без потребности использовать инструменты Day2 типа ansible, puppet, saltstack и все на terraform.

за статью спасибо)

заметил 1 момент " Актуализировать " - а версия "v1.23.12" ) . с актуальными не будет нюансов ?

Конфигурация в основном взята от рендера Kubeadm 1.23.12 кастомных полей там нету, так что проблем не будет.

Что-то как-то очень сложно переменную ETCD_SERVERS создаете: первый sed безполезный, а еще и двойной echo (первый - в цикле в субшелле, потом внешний). Попробуйте вот это - у него приятный вкус:

printf ",https://master-%s.$BASE_CLUSTER_DOMAIN:$ETCD_SERVER_PORT" \
	$( seq 0 $(( MASTER_COUNT-1 )) ) \
| sed 's/,//'

Вот еще один деликатес - для ETCD_INITIAL_CLUSTER:

for n in $( seq 0 $(( MASTER_COUNT-1 )) )
do
	n="$n.$BASE_CLUSTER_DOMAIN"
	printf ",master-%s=https://master-%s:$ETCD_PEER_PORT" $n $n
done \
| sed 's/,//'

Думается мне - кровушки попили они с вас, пока не пришли к нужному виду.

Я обычно с башом не работаю, так что после 30 минут попыток остановился на первом рабочем))) спасибо за помощь, чуть позже добавлю в исправление.

Я тут еще немного поупражнялся: улучшил команды, так чтобы одинаковый набор и без цикла для второй переменной:

для ETCD_SERVERS:

seq 0 $(( MASTER_COUNT-1 )) \
| awk -v fmt="https://master-%s.$BASE_CLUSTER_DOMAIN:$ETCD_SERVER_PORT" \
'{ s && s = s "," ; s = s sprintf(fmt, $0) } END { print s }'

для ETCD_INITIAL_CLUSTER:

seq 0 $(( MASTER_COUNT-1 )) \
| awk -v fmt="master-%s.$BASE_CLUSTER_DOMAIN=https://master-%s.$BASE_CLUSTER_DOMAIN:$ETCD_PEER_PORT" \
'{ s && s = s "," ; s = s sprintf(fmt, $0, $0) } END { print s }'

Можно было бы еще, но я думаю - хватит.

Полиция - на меня напал БАШ маньяк)

Берите все сейчас, а то еще накидаю вариантов на чистом шелле, без внешних команд )))

А у тебя есть телега если что за консультацией?)

Все работает, добавил фикс.

В /etc/kubernbetes/kubelet/config.yaml дублируются rotateCertificates и serverTLSBootstrap

Спасибо за комментарий - исправим

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории