Я помітив, що вузол karpenter часто оновлюється.
Перевіряючи в консолі AWS в EC2 -> Spot Request, доступність spot інстансів здається обмеженою.
Я зауважив, що коли вузол створюється як тип on-demand, його ймовірно буде завершено, а незабаром пізніше створюється spot інстанс. Я підозрюю, що це може бути karpenter, який намагається відтворити вузол для кращого ціноутворення. Потім, коли spot інстанс забирають, весь цикл починається знову.
Через постійне відтворення вузлів, поди постійно припиняли свою роботу і відновлювались, що спричиняло простої в додатках.
Після численних налаштувань я зупинився на наступних налаштуваннях:
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: default
spec:
disruption:
budgets:
- nodes: 10%
# не масштабувати під час робочих годин
# - schedule: "0 6 * * mon-fri"
# без параметра часової зони, вручну перекладається в UTC
- schedule: "0 17 * * sun-thu"
duration: 12h
nodes: "0"
consolidateAfter: 10m
consolidationPolicy: WhenEmptyOrUnderutilized
...
Без масштабування вниз під час робочих годин.
Я помітив, що spot інстанси все ще можуть бути завершені (ймовірно через те, що їх забирають), але переключення з on-demand на spot зупинилося. Це зменшило перешкоди через відтворення вузлів.
Перекладено з: eks karpenter: disruption