<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cluster Autoscaling on Cozystack</title><link>https://cozystack.ru/docs/v1.5/operations/multi-location/autoscaling/</link><description>Recent content in Cluster Autoscaling on Cozystack</description><generator>Hugo</generator><language>en</language><atom:link href="https://cozystack.ru/docs/v1.5/operations/multi-location/autoscaling/index.xml" rel="self" type="application/rss+xml"/><item><title>Cluster Autoscaler для Hetzner Cloud</title><link>https://cozystack.ru/docs/v1.5/operations/multi-location/autoscaling/hetzner/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/operations/multi-location/autoscaling/hetzner/</guid><description>&lt;p&gt;В этом руководстве описано, как настроить cluster-autoscaler для автоматического масштабирования узлов в Hetzner Cloud с Talos Linux.&lt;/p&gt;
&lt;h2 id="предварительные-требования"&gt;Предварительные требования&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Аккаунт Hetzner Cloud с API token&lt;/li&gt;
&lt;li&gt;Установленный CLI &lt;code&gt;hcloud&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Существующий Kubernetes-кластер на Talos&lt;/li&gt;
&lt;li&gt;Настроенные 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/multi-location/networking-mesh/" target="_blank"&gt;Networking Mesh&lt;/a&gt; и 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/multi-location/local-ccm/" target="_blank"&gt;Local CCM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="шаг-1-создание-образа-talos-в-hetzner-cloud"&gt;Шаг 1. Создание образа Talos в Hetzner Cloud&lt;/h2&gt;
&lt;p&gt;Hetzner не поддерживает прямую загрузку образов, поэтому snapshot нужно создать через временный сервер.&lt;/p&gt;
&lt;h3 id="11-генерация-schematic-id"&gt;1.1. Генерация Schematic ID&lt;/h3&gt;
&lt;p&gt;Создайте schematic на 
&lt;a href="https://factory.talos.dev" target="_blank"&gt;factory.talos.dev&lt;/a&gt; с нужными расширениями:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -s -X POST https://factory.talos.dev/schematics &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#4070a0"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#4070a0"&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;customization&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;systemExtensions&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;officialExtensions&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/qemu-guest-agent&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/amd-ucode&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/amdgpu-firmware&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/bnx2-bnx2x&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/drbd&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/i915-ucode&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/intel-ice-firmware&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/intel-ucode&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/qlogic-firmware&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; &amp;#34;siderolabs/zfs&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#4070a0"&gt; }&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Сохраните возвращенный &lt;code&gt;id&lt;/code&gt; как &lt;code&gt;SCHEMATIC_ID&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Cluster Autoscaler для Azure</title><link>https://cozystack.ru/docs/v1.5/operations/multi-location/autoscaling/azure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/operations/multi-location/autoscaling/azure/</guid><description>&lt;p&gt;В этом руководстве описано, как настроить cluster-autoscaler для автоматического масштабирования узлов в Azure с Talos Linux.&lt;/p&gt;
&lt;h2 id="предварительные-требования"&gt;Предварительные требования&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Подписка Azure с Service Principal, имеющим роль Contributor&lt;/li&gt;
&lt;li&gt;Установленный CLI &lt;code&gt;az&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Существующий Kubernetes-кластер на Talos&lt;/li&gt;
&lt;li&gt;Настроенные 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/multi-location/networking-mesh/" target="_blank"&gt;Networking Mesh&lt;/a&gt; и 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/multi-location/local-ccm/" target="_blank"&gt;Local CCM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="шаг-1-создание-инфраструктуры-azure"&gt;Шаг 1. Создание инфраструктуры Azure&lt;/h2&gt;
&lt;h3 id="11-вход-через-service-principal"&gt;1.1. Вход через Service Principal&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;az login --service-principal &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --username &lt;span style="color:#4070a0"&gt;&amp;#34;&amp;lt;APP_ID&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --password &lt;span style="color:#4070a0"&gt;&amp;#34;&amp;lt;PASSWORD&amp;gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --tenant &lt;span style="color:#4070a0"&gt;&amp;#34;&amp;lt;TENANT_ID&amp;gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="12-создание-группы-ресурсов"&gt;1.2. Создание группы ресурсов&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;az group create &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name &amp;lt;resource-group&amp;gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --location &amp;lt;location&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="13-создание-vnet-и-подсети"&gt;1.3. Создание VNet и подсети&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;az network vnet create &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name cozystack-vnet &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --address-prefix 10.2.0.0/16 &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --subnet-name workers &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --subnet-prefix 10.2.0.0/24 &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --location &amp;lt;location&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="14-создание-network-security-group"&gt;1.4. Создание Network Security Group&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;az network nsg create &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name cozystack-nsg &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --location &amp;lt;location&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# Разрешить WireGuard&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;az network nsg rule create &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --nsg-name cozystack-nsg &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name AllowWireGuard &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --priority &lt;span style="color:#40a070"&gt;100&lt;/span&gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --direction Inbound &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --access Allow &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --protocol Udp &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --destination-port-ranges &lt;span style="color:#40a070"&gt;51820&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# Разрешить Talos API&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;az network nsg rule create &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --nsg-name cozystack-nsg &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name AllowTalosAPI &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --priority &lt;span style="color:#40a070"&gt;110&lt;/span&gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --direction Inbound &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --access Allow &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --protocol Tcp &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --destination-port-ranges &lt;span style="color:#40a070"&gt;50000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#60a0b0;font-style:italic"&gt;# Связать NSG с подсетью&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;az network vnet subnet update &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --resource-group &amp;lt;resource-group&amp;gt; &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --vnet-name cozystack-vnet &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --name workers &lt;span style="color:#4070a0;font-weight:bold"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --network-security-group cozystack-nsg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="шаг-2-создание-образа-talos"&gt;Шаг 2. Создание образа Talos&lt;/h2&gt;
&lt;h3 id="21-генерация-schematic-id"&gt;2.1. Генерация Schematic ID&lt;/h3&gt;
&lt;p&gt;Создайте schematic на 
&lt;a href="https://factory.talos.dev" target="_blank"&gt;factory.talos.dev&lt;/a&gt; с нужными расширениями:&lt;/p&gt;</description></item></channel></rss>