Spec-Zone.ru › Ansible 2.11

community.kubevirt.kubevirt_rs – Управление репликазами виртуальных машин KubeVirt

Примечание

Этот плагин входит в коллекцию community.kubevirt (версия 1.0.0).

Для его установки используйте: ansible-galaxy collection install community.kubevirt.

Чтобы использовать его в плейбуке, укажите: community.kubevirt.kubevirt_rs.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Значения возврата

Обзор

  • Используйте Openshift Python SDK для управления состоянием репликаз виртуальных машин KubeVirt.

Требования

Ниже перечислены требования, которые должны быть выполнены на хосте, на котором выполняется этот модуль.

  • openshift >= 0.8.2
  • python >= 2.7

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
affinity
словарь
Описывает правила планирования для размещения узла в виртуальной машине (ВМ).
hard
словарь
Если требования по сродству, указанные в этом поле, не выполнены во время планирования, ВМ не будет размещена на узле. Если требования по сродству, указанные в этом поле, перестают выполняться в какой-то момент во время работы ВМ (например, из-за обновления метки ВМ), система может или не может попытаться в конечном итоге вытеснить ВМ с узла. При наличии нескольких элементов списки узлов, соответствующие каждому term, пересекаются, то есть все условия должны быть выполнены.
soft
словарь
Планировщик отдаст предпочтение размещению ВМ на узлах, которые удовлетворяют выражениям сродства, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Узел, который предпочтительнее всего, — тот, у которого наибольшая сумма весов, т. е. для каждого узла, который удовлетворяет всем требованиям планирования (запрос ресурсов, выражения сродства requiredDuringScheduling и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя weight к сумме, если узел имеет ВМ, соответствующие соответствующему term; узлы с наибольшей суммой являются наиболее предпочтительными.
anti_affinity
словарь
Описывает правила планирования для предотвращения размещения ВМ на одном узле, зоне и т. д. с другими ВМ.
hard
словарь
Если требования по противосродству, указанные в этом поле, не выполнены во время планирования, ВМ не будет размещена на узле. Если требования по противосродству, указанные в этом поле, перестают выполняться в какой-то момент во время работы ВМ (например, из-за обновления метки ВМ), система может или не может попытаться в конечном итоге вытеснить ВМ с узла. При наличии нескольких элементов списки узлов, соответствующие каждому term, пересекаются, то есть все условия должны быть выполнены.
soft
словарь
Планировщик отдаст предпочтение размещению ВМ на узлах, которые удовлетворяют выражениям противосродства, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Узел, который предпочтительнее всего, — тот, у которого наибольшая сумма весов, т. е. для каждого узла, который удовлетворяет всем требованиям планирования (запрос ресурсов, выражения противосродства requiredDuringScheduling и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя weight к сумме, если узел имеет ВМ, соответствующие соответствующему term; узлы с наибольшей суммой являются наиболее предпочтительными.
api_key
строка
Токен, используемый для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_API_KEY.
bootloader
строка
Укажите загрузчик виртуальной машины.
По умолчанию для загрузки используются BIOS.
ca_cert
путь
Путь к сертификату УЦ, используемому для аутентификации с API. Для предотвращения ошибок проверки сертификатов должен быть предоставлен весь цепочку сертификатов. Также может быть указан через переменную среды K8S_AUTH_SSL_CA_CERT.

псевдонимы: ssl_ca_cert
client_cert
путь
Путь к сертификату, используемому для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_CERT_FILE.

псевдонимы: cert_file
client_key
путь
Путь к файлу ключа, используемому для аутентификации с API. Также может быть указан через переменную среды K8S_AUTH_KEY_FILE.

псевдонимы: key_file
cloud_init_nocloud
словарь
Представляет источник пользовательских данных NoCloud cloud-init. Данные NoCloud будут добавлены в виде диска к виртуальной машине. Требуется надлежащая установка cloud-init в гостевой системе. Дополнительная информация https://kubevirt.io/api-reference/master/definitions.html#_v1_cloudinitnocloudsource
context
строка
Имя контекста, найденного в файле конфигурации. Также может быть указан через переменную среды K8S_AUTH_CONTEXT.
cpu_cores
целое число
Количество ядер процессора.
cpu_features
список / элементы=строка
Список словарей для настройки функций, предоставляемых выбранной моделью процессора.
Примечание: Атрибут политики может быть опущен или содержать одну из следующих политик: force, require, optional, disable, forbid.
Примечание: Если политика не указана для функции, она по умолчанию будет require.
Дополнительная информация о политиках: https://libvirt.org/formatdomain.html#elementsCPU
cpu_limit
целое число
Преобразуется в значение миллиядер и умножается на 100. Результирующее значение — это общее количество времени работы процессора, которое может использовать контейнер каждые 100 мс. Виртуальная машина не может использовать более своей доли времени работы процессора за этот интервал.
cpu_model
строка
Модель процессора.
Список доступных моделей можно найти здесь: https://github.com/libvirt/libvirt/blob/master/src/cpu_map/index.xml.
Примечание: Пользователь может определить модель процессора по умолчанию как default-cpu-model в kubevirt-config ConfigMap, если не задано, используется host-model.
Примечание: Убедитесь, что модель процессора узла, на котором запущена ВМ, имеет ту же или более высокую семейство процессоров.
Примечание: Если модель процессора не была определена, у ВМ будет модель процессора, наиболее близкая к модели, используемой на узле, где ВМ запущена.
cpu_shares
целое число
Укажите долю процессора.
disks
список / элементы=строка
Список словарей, которые определяют диски виртуальной машины.
Диск может быть доступен через четыре разных типа: disk, lun, cdrom, floppy.
Все возможные параметры конфигурации доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_disk
Каждый диск должен иметь указанный volume, который объявляет тип тома диска. Все возможные параметры конфигурации тома доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_volume.
force
булево
    Варианты:
  • нет ←
  • да
Если установлено no, а state равно present, существующий объект будет заменён.
headless
строка
Укажите, должна ли виртуальная машина иметь минимальную конфигурацию устройства видео и графики.
По умолчанию для VirtualMachineInstance будет применена минимальная конфигурация устройства видео и графики. Видеоустройство совместимо с vga и имеет размер памяти 16 МБ.
host
строка
Укажите URL для доступа к API. Также может быть указан через переменную среды K8S_AUTH_HOST.
hostname
строка
Указывает имя хоста виртуальной машины. Имя хоста будет установлено либо через dhcp, cloud-init, если настроен, или будет использоваться имя виртуальной машины.
hugepage_size
строка
Укажите размер огромных страниц.
interfaces
список / элементы=строка
Интерфейс определяет виртуальный сетевой интерфейс виртуальной машины (также называется передним).
Все возможные параметры конфигурации интерфейсов доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_interface
Каждый интерфейс должен иметь указанный network, который объявляет, с каким логическим или физическим устройством он подключен (также называется бэкендом). Все возможные параметры конфигурации сети доступны в https://kubevirt.io/api-reference/master/definitions.html#_v1_network.
kubeconfig
путь
Путь к существующему файлу конфигурации Kubernetes. Если не указано и не указаны другие параметры подключения, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также может быть указан через переменную среды K8S_AUTH_KUBECONFIG.
labels
словарь
Метки — пары «ключ-значение», прикрепляемые к виртуальным машинам. Метки предназначены для указания идентифицирующих атрибутов виртуальных машин, имеющих смысл и относящихся к пользователям, но не подразумевают семантики для основной системы. Метки можно использовать для организации и выбора подмножеств виртуальных машин. Метки можно прикрепить к виртуальным машинам при их создании и впоследствии добавить и изменить в любое время.
Дополнительная информация о метках, используемых для внутренней реализации https://kubevirt.io/user-guide/#/misc/annotations_and_labels
machine_type
строка
Тип машины QEMU — это фактический чипсет виртуальной машины.
memory
string
Объём памяти, запрашиваемый виртуальной машиной.
Например, 1024Mi.
memory_limit
string
Максимальный объём памяти, используемый виртуальной машиной.
Например, 1024Mi.
merge_type
list / elements=string
    Варианты:
  • json
  • merge
  • strategic-merge
Указывает тип слияния для переопределения стандартного подхода к слиянию патчей.
Если указано несколько типов слияния, типы будут применяться в указанном порядке.
По умолчанию ['strategic-merge', 'merge'], что идеально подходит для использования одних и тех же параметров для ресурсов, объединяющих пользовательские ресурсы и встроенные ресурсы, так как определения пользовательских ресурсов обычно не обновляются с помощью стандартного слияния.
См. https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deployment
name
string / required
Имя набора реплик виртуальной машины.
namespace
string / required
Пространство имён, в котором существует набор реплик виртуальной машины.
node_affinity
dictionary
Описывает правила планирования сродства виртуальной машины, например, размещение этой виртуальной машины в том же узле, зоне и т. д., что и некоторых других виртуальных машинах.
hard
dictionary
Если требования сродства, указанные в этом поле, не выполняются во время планирования, виртуальная машина не будет размещена на узле. Если требования сродства, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения виртуальной машины (например, из-за обновления), система может или не может попытаться в конечном итоге удалить виртуальную машину с её узла.
soft
dictionary
Планировщик отдаёт предпочтение размещению виртуальных машин на узлах, которые удовлетворяют выражениям сродства, указанным в этом поле, но может выбрать узел, который нарушает одно или несколько выражений. Наиболее предпочтительный узел — тот, у которого сумма весов наибольшая, т. е. для каждого узла, удовлетворяющего всем требованиям планирования (запросы ресурсов, выражения сродства, необходимые во время планирования и т. д.), вычислить сумму, перебирая элементы этого поля и добавляя weight к сумме, если узел соответствует соответствующим выражениям соответствия; узлы с наибольшей суммой являются наиболее предпочтительными.
password
string
Укажите пароль для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_PASSWORD.
Для обсуждения применимости этого параметра ознакомьтесь с описанием параметра username.
persist_config
boolean
    Варианты:
  • нет
  • да
Указывает, сохранять ли токены обновления конфигурации kube. Можно также указать через переменную окружения K8S_AUTH_PERSIST_CONFIG.
Когда контекст k8s использует учетные данные пользователя с токенами обновления (например, oidc или gke/gcloud auth), токен обновляется библиотекой k8s python, но по умолчанию не сохраняется. Поэтому старый токен обновления может истечь, и следующая аутентификация может завершиться неудачно. Установка этого флага в true сообщит библиотеке k8s python о сохранении нового токена обновления в файле конфигурации kube.
По умолчанию false.
Обратите внимание, что текущая версия библиотеки k8s python пока не поддерживает установку этого флага в True.
Исправление для этой библиотеки k8s python находится здесь: https://github.com/kubernetes-client/python-base/pull/169
proxy
string
URL HTTP-прокси, который следует использовать для подключения. Также можно указать через переменную окружения K8S_AUTH_PROXY.
Обратите внимание, что этот модуль не использует типичные настройки прокси из среды (например, HTTP_PROXY).
replicas
integer
Количество желаемых pod. Это указатель для различения явного нуля и отсутствия указания.
Реплики по умолчанию равны 1, если набор реплик создан заново.
resource_definition
dictionary
Частичное YAML-определение создаваемого/обновляемого объекта. Здесь можно определить параметры Kubernetes-ресурсов, не охваченных параметрами этого модуля.
ПРИМЕЧАНИЕ: resource_definition имеет более низкий приоритет, чем параметры модуля. Если вы попытаетесь определить, например, metadata.namespace здесь, это значение будет проигнорировано, и вместо него будет использоваться namespace.

Псевдонимы: definition, inline
selector
dictionary / required
Селектор — это запрос меток для набора виртуальных машин.
smbios_uuid
string
Для обеспечения согласованного представления виртуализированного оборудования для гостевой ОС, можно установить SMBIOS UUID.
state
string
    Варианты:
  • present ←
  • absent
Создание или удаление наборов реплик виртуальных машин.
subdomain
string
Если указано, полное доменное имя виртуальной машины будет hostname.subdomain.namespace.svc.cluster_domain. Если не указано, у виртуальной машины не будет доменного имени. Запись DNS будет разрешать виртуальную машину, независимо от того, сможет ли сама виртуальная машина принять имя хоста.
tablets
list / elements=string
Укажите планшеты, которые будут использоваться как устройства ввода.
username
string
Укажите имя пользователя для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_USERNAME.
Обратите внимание, что это работает только с кластерами, настроенными для использования HTTP Basic Auth. Если ваш кластер имеет другой тип аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует обратиться к модулю k8s_auth, так как он может быть полезен для решения вашей проблемы.
validate_certs
boolean
    Варианты:
  • нет
  • да
Указывает, следует ли проверять сертификаты SSL сервера API. Также можно указать через переменную окружения K8S_AUTH_VERIFY_SSL.

Псевдонимы: verify_ssl
wait
boolean
    Варианты:
  • нет
  • да ←
Истина, если модуль должен ожидать, пока ресурс не перейдёт в нужное состояние.
wait_sleep
string
По умолчанию:
5
Количество секунд ожидания между проверками.
wait_timeout
integer
По умолчанию:
120
Время в секундах, которое модуль должен ждать, пока ресурс не перейдёт в нужное состояние.

Примечания

Примечание

  • Клиент OpenShift Python оборачивает клиент K8s Python, предоставляя полный доступ ко всем API и моделям, доступным на обеих платформах. Подробную информацию о версиях API и дополнительную информацию см. на странице https://github.com/openshift/openshift-restclient-python
  • Для предотвращения ошибок проверки сертификатов SSL, когда validate_certs имеет значение True, полная цепочка сертификатов сервера API должна быть предоставлена через ca_cert или в файле kubeconfig.
  • Для использования этого модуля необходимо установить OpenShift Python SDK. Чтобы убедиться, что он установлен с правильной версией, можно создать следующую задачу: pip: name=openshift>=0.8.2

Примеры

- name: Create virtual machine replica set 'myvmir'
  community.kubevirt.kubevirt_rs:
      state: present
      name: myvmir
      namespace: vms
      wait: true
      replicas: 3
      memory: 64M
      labels:
        myvmi: myvmi
      selector:
        matchLabels:
            myvmi: myvmi
      disks:
         - name: containerdisk
           volume:
             containerDisk:
               image: kubevirt/cirros-container-disk-demo:latest
               path: /custom-disk/cirros.img
           disk:
             bus: virtio

- name: Remove virtual machine replica set 'myvmir'
  community.kubevirt.kubevirt_rs:
      state: absent
      name: myvmir
      namespace: vms
      wait: true

Значения возврата

Общие значения возврата документированы здесь, следующие — поля, уникальные для этого модуля:

Ключ Возвращаемое значение Описание
kubevirt_rs
complex
успех
Набор реплик виртуальной машины, управляемый пользователем.
Этот словарь содержит все значения, возвращаемые API KubeVirt. Все параметры описаны здесь https://kubevirt.io/api-reference/master/definitions.html#_v1_virtualmachineinstance



Авторы

  • Команда KubeVirt (@kubevirt)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/kubevirt/kubevirt_rs_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API