Spec-Zone.ru › Ansible 2.9

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

Новая версия с 2.8.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Описание

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

Требования

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

  • openshift >= 0.8.2
  • python >= 2.7

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
affinity
словарь
добавлен в 2.9
Описывает правила планирования affinity узлов для виртуальной машины.
hard
словарь
Если требования affinity, указанные в этом поле, не будут выполнены во время планирования, виртуальная машина не будет размещена на узле. Если требования affinity, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения виртуальной машины (например, из-за обновления метки виртуальной машины), система может или не может попытаться в конечном итоге изгнать виртуальную машину с её узла. При наличии нескольких элементов списки узлов, соответствующие каждому term, пересекаются, т.е. должны быть выполнены все условия.
soft
словарь
Планировщик предпочтёт размещать виртуальные машины на узлах, удовлетворяющих выражениям affinity, указанным в этом поле, но он может выбрать узел, нарушающий одно или несколько выражений. Узел с наибольшим приоритетом — тот, у которого наибольшая сумма весов, т.е. для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения affinity requiredDuringScheduling и т.д.), вычисляется сумма, проходя по элементам этого поля и добавляя weight к сумме, если узел имеет виртуальные машины, соответствующие соответствующему term; узлы с наибольшей суммой имеют наибольший приоритет.
anti_affinity
словарь
добавлен в 2.9
Описывает правила планирования анти-affinity виртуальных машин, например, избегание размещения этой виртуальной машины на одном узле, в одной зоне и т.д. с другими виртуальными машинами.
hard
словарь
Если требования анти-affinity, указанные в этом поле, не будут выполнены во время планирования, виртуальная машина не будет размещена на узле. Если требования анти-affinity, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения виртуальной машины (например, из-за обновления метки виртуальной машины), система может или не может попытаться в конечном итоге изгнать виртуальную машину с её узла. При наличии нескольких элементов списки узлов, соответствующие каждому term, пересекаются, т.е. должны быть выполнены все условия.
soft
словарь
Планировщик предпочтёт размещать виртуальные машины на узлах, удовлетворяющих выражениям анти-affinity, указанным в этом поле, но он может выбрать узел, нарушающий одно или несколько выражений. Узел с наибольшим приоритетом — тот, у которого наибольшая сумма весов, т.е. для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения анти-affinity requiredDuringScheduling и т.д.), вычисляется сумма, проходя по элементам этого поля и добавляя weight к сумме, если узел имеет виртуальные машины, соответствующие соответствующему term; узлы с наибольшей суммой имеют наибольший приоритет.
api_key
строка
Токен, используемый для аутентификации с API. Также может быть указан через переменную окружения K8S_AUTH_API_KEY.
bootloader
строка
Укажите загрузчик виртуальной машины.
По умолчанию все виртуальные машины используют BIOS для загрузки.
ca_cert
путь
Путь к сертификату CA, используемому для аутентификации с 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, и состояние — present, существующий объект будет заменён.
headless
-
Укажите, должна ли виртуальная машина иметь подключенное минимальное конфигурацию видео и графических устройств.
По умолчанию для VirtualMachineInstance будет применена минимальная конфигурация видео и графических устройств. Видеоустройство совместимо с vga и имеет размер памяти 16 МБ.
host
строка
Укажите URL для доступа к API. Также может быть указан через переменную окружения K8S_AUTH_HOST.
hostname
-
добавлен в 2.9
Указывает имя хоста виртуальной машины. Имя хоста будет установлено либо DHCP, либо cloud-init, если настроен, или будет использовано имя виртуальной машины.
hugepage_size
строка
Укажите размер огромной страницы.
интерфейсы
список
Интерфейс определяет виртуальный сетевой интерфейс виртуальной машины (также называемый передним интерфейсом).
Все возможные параметры конфигурации интерфейсов доступны по адресу https://kubevirt.io/api-reference/master/definitions.html#_v1_interface
Каждый интерфейс должен указать сеть, которая определяет, к какому логическому или физическому устройству он подключен (также называемый бэкендом). Все возможные параметры конфигурации сети доступны по адресу https://kubevirt.io/api-reference/master/definitions.html#_v1_network.
kubeconfig
путь
Путь к существующему файлу конфигурации Kubernetes. Если не указано, и не указаны другие параметры подключения, клиент openshift попытается загрузить файл конфигурации по умолчанию из ~/.kube/config.json. Также можно указать через переменную окружения K8S_AUTH_KUBECONFIG.
метки
словарь
Метки — это пары «ключ-значение», которые прикреплены к виртуальным машинам. Метки предназначены для указания идентификационных атрибутов виртуальных машин, которые понятны и важны для пользователей, но не прямо предполагают семантику для основной системы. Метки могут использоваться для организации и выбора подмножеств виртуальных машин. Метки можно прикрепить к виртуальным машинам во время создания, а затем добавлять и изменять их в любое время.
Подробнее о метках, используемых для внутренней реализации, https://kubevirt.io/user-guide/#/misc/annotations_and_labels
тип_машины
строка
Тип машины QEMU — это фактический чипсет виртуальной машины.
память
строка
Количество памяти, запрашиваемой виртуальной машиной.
Например, 1024Mi.
предел_памяти
строка
Максимальное количество памяти, используемой виртуальной машиной.
Например, 1024Mi.
тип_слияния
список
    Варианты:
  • 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
имя
строка / обязательно
Имя набора реплик виртуальной машины.
пространство_имен
строка / обязательно
Пространство имен, в котором существует набор реплик виртуальной машины.
сродство_узла
словарь
добавлено в 2.9
Описывает правила планирования сродства VM, например, разместить эту VM на том же узле, зоне и т. д., что и некоторые другие VM.
жестко
словарь
Если требования сродства, указанные в этом поле, не выполняются во время планирования, VM не будет размещена на узле. Если требования сродства, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения VM (например, из-за обновления), система может или не может попытаться в конечном итоге выгнать VM с ее узла.
мягко
словарь
Планировщик предпочтет размещать VM на узлах, которые удовлетворяют выражениям сродства, указанным в этом поле, но он может выбрать узел, нарушающий одно или несколько выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т. е. для каждого узла, удовлетворяющего всем требованиям планирования (запросы ресурсов, выражения сродства, требуемые во время планирования и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя weight к сумме, если узел соответствует соответствующим выражениям сопоставления; узлы с наибольшей суммой являются наиболее предпочтительными.
пароль
строка
Укажите пароль для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_PASSWORD.
Пожалуйста, ознакомьтесь с описанием параметра username для обсуждения случаев, когда этот параметр применим.
прокси
-
добавлено в 2.9
URL HTTP-прокси, используемого для подключения. Также можно указать через переменную окружения K8S_AUTH_PROXY.
Обратите внимание, что этот модуль не подхватывает типичные настройки прокси из среды (например, HTTP_PROXY).
реплики
целое число
Количество желаемых под. Это указатель, чтобы отличить явное значение ноль от отсутствия указания.
По умолчанию реплики равны 1, если набор реплик создается впервые.
определение_ресурса
словарь
Частичное YAML-определение создаваемого/обновляемого объекта. Здесь вы можете определить параметры ресурсов Kubernetes, не охваченные параметрами этого модуля.
ПРИМЕЧАНИЕ: определение_ресурса имеет более низкий приоритет, чем параметры модуля. Если вы попытаетесь определить, например, metadata.namespace здесь, это значение будет проигнорировано, и вместо него будет использоваться namespace.

псевдонимы: определение, inline
селектор
словарь / обязательно
Селектор — это запрос меток на основе набора виртуальных машин.
smbios_uuid
строка
Для предоставления согласованного представления виртуализированного оборудования для гостевой ОС можно установить SMBIOS UUID.
состояние
строка
    Варианты:
  • существующий ←
  • отсутствует
Создание или удаление наборов реплик виртуальных машин.
поддомен
-
добавлено в 2.9
Если указано, полное доменное имя виртуальной машины будет hostname.subdomain.namespace.svc.cluster_domain. Если не указано, у виртуальной машины не будет доменного имени вообще. Запись DNS будет разрешать виртуальную машину, независимо от того, может ли сама виртуальная машина получить имя хоста.
планшеты
список
Укажите планшеты, которые будут использоваться в качестве устройств ввода
имя_пользователя
строка
Укажите имя пользователя для аутентификации с API. Также можно указать через переменную окружения K8S_AUTH_USERNAME.
Обратите внимание, что это работает только с кластерами, настроенными на использование HTTP Basic Auth. Если в вашем кластере используется другой тип аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать должным образом, и вам следует обратиться к модулю k8s_auth, так как он может выполнить то, что вам нужно.
проверять_сертификаты
булево
    Варианты:
  • нет
  • да
Нужно ли проверять сертификаты SSL API-сервера. Также можно указать через переменную окружения K8S_AUTH_VERIFY_SSL.

псевдонимы: verify_ssl
ждать
булево
    Варианты:
  • нет
  • да ←
Истина, если модуль должен ожидать, пока ресурс не перейдет в нужное состояние.
время_ожидания_простоя
-
добавлено в 2.9
По умолчанию:
5
Количество секунд ожидания между проверками.
время_ожидания
целое число
По умолчанию:
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'
  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'
  kubevirt_rs:
      state: absent
      name: myvmir
      namespace: vms
      wait: true

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

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

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



Статус

  • Этот модуль не гарантирует обратную совместимость. [превью]
  • Этот модуль поддерживается сообществом Ansible. [сообщество]

Авторы

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

Подсказка

Если вы обнаружите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/kubevirt_rs_module.html

Spec-Zone.ru

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