Глосарій

Чарт

Пакет Helm, що містить інформацію, достатню для встановлення набору ресурсів Kubernetes у кластер Kubernetes.

Чарти містять файл Chart.yaml, а також шаблони, стандартні значення (values.yaml) та залежності.

Чарти розробляються у чітко визначеній структурі тек, а потім упаковуються у формат архіву, що називається чарт-архівом.

Чарт-архів

Чарт-архів — це архів, що містить tar і gzipped (і, за бажанням, підписаний) чарт.

Залежність чарту (субчарти)

Чарти можуть залежати від інших чартів. Залежність може бути здійснена двома способами:

  • М’яка залежність: Чарт може просто не функціонувати без іншого чарту, встановленого в кластері. Helm не надає інструментів для цього випадку. У цьому випадку залежності можуть управлятися окремо.
  • Жорстка залежність: Чарт може містити (всередині теки charts/) інший чарт, від якого він залежить. У цьому випадку, встановлення чарту також встановить усі його залежності. У цьому випадку чарт і його залежності управляються як колекція.

Коли чарт упаковується (через helm package), всі його жорсткі залежності упаковуються разом з ним.

Версія чарту

Чарти версіонуються відповідно до специфікації SemVer 2. Номер версії є обов’язковим для кожного чарта.

Chart.yaml

Інформація про чарт зберігається в спеціальному файлі з назвою Chart.yaml. Кожен чарт повинен мати цей файл.

Helm (та helm)

Helm — це менеджер пакетів для Kubernetes. Як менеджер пакетів для операційних систем полегшує встановлення інструментів на ОС, так Helm полегшує встановлення застосунків та ресурсів у кластери Kubernetes.

Хоча Helm — це назва проєкту, клієнт командного рядка також називається helm. Зазвичай, коли йдеться про проєкт, Helm пишеться з великої літери. Коли йдеться про клієнт, helm пишеться з маленької літери.

Конфігураційні файли Helm (XDG)

Helm зберігає свої конфігураційні файли в теках XDG. Ці теки створюються при першому запуску helm.

Kube Config (KUBECONFIG)

Клієнт Helm дізнається про кластери Kubernetes, використовуючи файли у форматі Kube config. Стандартно, Helm намагається знайти цей файл у місці, де його створює kubectl ($HOME/.kube/config).

Лінтинг (Linting)

Лінтинг чарта — це перевірка того, що він відповідає домовленостям і вимогам стандарту чарту Helm. Helm надає інструменти для цього, зокрема команду helm lint.

Provenance (Файл provenance)

Чарти Helm можуть супроводжуватися файлом provenance, який надає інформацію про те, звідки походить чарт і що він містить.

Файли provenance є частиною історії безпеки Helm. Файл provenance містить криптографічний хеш файлу чарт-архіву, дані Chart.yaml і блок підпису (блок OpenPGP "clearsign"). У поєднанні з вʼязкою ключів він надає користувачам чартів можливість:

  • Перевірити, що чарт був підписаний довіреною стороною
  • Перевірити, що файл чарту не був змінений
  • Перевірити вміст метаданих чарту (Chart.yaml)
  • Швидко зіставити чарт з даними provenance

Файли provenance мають розширення .prov і можуть бути надані з сервера репозиторію чартів або будь-якого іншого HTTP-сервера.

Реліз

Коли чарт встановлюється, бібліотека Helm створює реліз, щоб відстежувати це встановлення.

Один і той же чарт може бути встановлений кілька разів в одному кластері, створюючи багато різних релізів. Наприклад, можна встановити три бази даних PostgreSQL, запустивши helm install три рази з різними іменами релізів.

Номер релізу (Версія релізу)

Один реліз може бути оновлений кілька разів. Для відстеження релізів, коли вони змінюються, використовується послідовний лічильник. Після першого helm install реліз матиме номер релізу 1. Кожного разу, коли реліз оновлюється або скасовується, номер релізу буде збільшений.

Відкат

Реліз можна оновити до новішого чарту або конфігурації. Але оскільки історія релізів зберігається, реліз також може бути відкочений до попереднього номера релізу. Це робиться за допомогою команди helm rollback.

Важливо, що реліз, що відкочується, отримає новий номер релізу.

ОпераціяНомер релізу
встановленняреліз 1
оновленняреліз 2
оновленняреліз 3
відкат 1реліз 4 (але виконує ту ж конфігурацію, що й реліз 1)

Вищенаведена таблиця ілюструє, як номери релізів збільшуються під час встановлення, оновлення та відкату.

Бібліотека Helm (або SDK)

Бібліотека Helm (або SDK) належить до коду Go, який безпосередньо взаємодіє з сервером API Kubernetes для встановлення, оновлення, запиту та видалення ресурсів Kubernetes. Її можна імплементувати у проєкт для використання Helm як бібліотеки клієнта замість CLI.

Репозиторій (Repo, Репозиторій чартів)

Чарти Helm можуть зберігатися на спеціалізованих HTTP-серверах, які називаються репозиторіями чартів (репозиторіями, або просто repo).

Сервер репозиторію чартів є простим HTTP-сервером, який може надавати файл index.yaml, який описує групу чартів, і надає інформацію про те, звідки можна завантажити кожен чарт. (Багато серверів репозиторіїв чартів надають як чарт, так і файл index.yaml.)

Клієнт Helm може вказати нуль або більше репозиторіїв чартів. Стандартно клієнти Helm не налаштовані на жодні репозиторії чартів. Репозиторії чартів можна додати в будь-який час за допомогою команди helm repo add.

Реєстр чартів (OCI реєстр)

Реєстр чартів Helm є системою зберігання та розподілу на основі OCI, яка використовується для розміщення та обміну пакетами чартів Helm. Для отримання додаткової інформації див. документацію Helm про реєстри.

Значення (Файли значень, values.yaml)

Значення надають спосіб перевизначити стандартні значення шаблонів вашою інформацією.

Чарти Helm є "параметризованими", що означає, що розробник чарта може експонувати конфігурацію, яку можна перевизначити під час установки. Наприклад, чарт може експонувати поле username, яке дозволяє встановити імʼя користувача для сервісу.

Ці експоновані змінні називаються значеннями в термінах Helm.

Значення можна встановити під час операцій helm install та helm upgrade, або безпосередньо передаючи їх, або використовуючи файл values.yaml.