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. | ||
| тип_слияния список |
| Нужно ли переопределить подход к слиянию патчей по умолчанию с помощью определенного типа. Если задано более одного типа слияния, типы слияния будут применяться в указанном порядке. По умолчанию ['strategic-merge', 'merge'], что идеально подходит для использования одних и тех же параметров для типов ресурсов, которые объединяют пользовательские ресурсы и встроенные ресурсы, так как определения пользовательских ресурсов обычно не могут обновляться с помощью обычного стратегического слияния. | |
| имя строка / обязательно | Имя набора реплик виртуальной машины. | ||
| пространство_имен строка / обязательно | Пространство имен, в котором существует набор реплик виртуальной машины. | ||
| сродство_узла словарь добавлено в 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