Модуль управления конфигурациями узлов (Shturval Node Config)
На этой странице
Модуль управления конфигурациями узлов (Shturval Node Config) является продуктом внутренней разработки платформы “Штурвал”.
Shturval Node Config обеспечивает:
- централизованное управление конфигурационными параметрами узлов кластера;
- автоматическое применение конфигураций на узлах кластера;
- защиту работоспособности кластера.
Модуль является критически важным для работы платформы “Штурвал” (недоступен для отключения). По умолчанию модуль устанавливается в клиентские кластеры и кластер управления во включенном состоянии.
Для просмотра состояния сервиса перейдите на страницу Установленные сервисы раздела Сервисы и репозитории. Найдите Модуль управления конфигурациями узлов (shturval-node-config) и нажмите Управлять.
Скриншот

Для корректной работы модуля должен быть включен Компонент модуля управления конфигурациями узлов (shturval-node-config-crds).
Контроллер Shturval Node Config оперирует кастомными ресурсами (Custom Resource):
- NodeConfigItems (NCI);
- Node Config.
NCI
Для применения конфигурации узлов контроллер использует кастомные ресурсы NodeConfigItems (NCI). NCI могут быть переиспользованы в разных кластерах. Механизм лейблов позволяет выбирать узлы, для которых требуется применение NCI.
Пример NCI
apiVersion: node.shturval.tech/v1beta2
kind: NodeConfigItem
metadata:
annotations:
updatedDate: 2025-02-26T10:18:40Z
username: kubernetes-admin
creationTimestamp: 2025-02-26T10:18:40Z
finalizers:
- node.shturval.tech/finalizer
generation: 13
name: generic-init-config
resourceVersion: "1993844"
uid: c64d9844-6928-4742-822a-c75141dcf556
spec:
certificates:
- exist: true
name: shturval.crt
url: repo.su:443
files:
- group: root
mode: "0700"
owner: root
path: /etc/kubernetes
type: directory
nodeconfigselector:
kubernetes.io/os: linux
packages:
- adhoccmd:
postinstallmustsucceed: false
preinstallmustsucceed: false
name: shturvald
setlock: false
state: present
version: 2.11.0
runtimecfg:
cgroupdriver: systemd
pauseimage: r.shturval.tech/pause:3.10
registries:
- capabilities:
- resolve
- pull
host: https://repo.su:443
name: r.shturval.tech
sysctl:
file: /etc/sysctl.d/90-shturval.conf
param:
fs.inotify.max_user_instances: "8192"
kernel.panic: "10"
kernel.panic_on_oops: "1"
net.bridge.bridge-nf-call-iptables: "1"
net.ipv4.ip_forward: "1"
vm.max_map_count: "262144"
vm.overcommit_memory: "1"
systemdunits:
- active: true
enabled: true
name: containerd
- active: true
enabled: true
name: kubelet
status:
ready: true
selectednodeconfigs: # Выбранные узлы для применения конфигурации
- redos5t6q
- redos9aex
updatednodeconfigs: # Список узлов, к которым применена конфигурация
- redos5t6q
- redos9aex
Shturval Node Config может применять конфигурации узлов как при инициализации кластера, так и в уже рабочем кластере. При развертывании кластера NCI применяются для:
- создания Linux-пользователей для системных компонентов на Control Plane узлах;
- настройки KubeAPI-сервера на Control Plane узлах;
- настройки параметров Container Runtime, параметры Sysctl, Systemd-юниты, период ротации кубовых сертификатов, доверенные сертификаты;
- установки пакетов для shturvald (containerd) на всех узлах.
В некоторых случаях для применения изменений конфигурации узла или при обновлении кластера может потребоваться перезапуск узла. В таких случаях Shturval Node Config обеспечивает автоматический перезапуск с предварительным распределением подов по другим узлам. Чтобы контролировать перезапуск узла в ручном режиме, воспользуйтесь инструкцией, как защитить узлы от автоматического перезапуска .
Node Config
Контроллер Shturval Node Config использует кастомные ресурсы (Custom Resource) Node Config (NC), в которых на основе селекторов агрегирует применяемые NCI к одному узлу.
Пример Node Config
apiVersion: node.shturval.tech/v1beta2
kind: NodeConfig
metadata:
annotations:
node.shturval.tech/initchecksum: 4b0ef0
node.shturval.tech/ssh: accessed
labels:
beta.kubernetes.io/arch: amd64
beta.kubernetes.io/os: linux
hostname: redos5t6q
infra: vsphere
kubernetes.io/arch: amd64
kubernetes.io/hostname: redos5t6q
kubernetes.io/os: linux
node-role.kubernetes.io/workers: ''
node.shturval.tech/applygroup: workers
name: redos5t6q
ownerReferences:
- apiVersion: v1
blockOwnerDeletion: true
controller: true
kind: Node
name: redos5t6q
uid: 257f60b0-9b5d-4b8a-b124-e0bd443cfd6f
- apiVersion: node.shturval.tech/v1beta2
kind: NodeConfigItem
name: generic-init-config
uid: c64d9844-6928-4742-822a-c75141dcf556
status:
ncistate:
- name: generic-init-config
state: applied
ready: true
spec:
applygroup: workers
nodeconfigitems: # Список NCI для конфигурации узла
- generic-init-config