gcp_container_node_pool – Создаёт пул узлов GCP
Новая версия 2.6.
Описание
- NodePool содержит имя и конфигурацию пула узлов кластера.
- Пулы узлов представляют собой набор узлов (т.е. виртуальных машин), имеющих общую конфигурацию и спецификацию, управляемые мастером кластера. К ним могут быть применены метки Kubernetes, которые могут использоваться для ссылки на них при планировании задач. Их также можно изменять в размерах вверх или вниз для адаптации к рабочей нагрузке.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | ||
| autoscaling словарь | Настройка автомасштабирования для данного пула узлов. Автомасштабирование включено только при наличии корректной конфигурации. | |||
| enabled булево |
| Включено ли автомасштабирование для этого пула узлов. | ||
| max_node_count целое число | Максимальное количество узлов в пуле узлов. Должно быть >= minNodeCount. Должен быть достаточный квоты для увеличения кластера. | |||
| min_node_count целое число | Минимальное количество узлов в пуле узлов. Должно быть >= 1 и <= maxNodeCount. | |||
| cluster словарь / обязательно | Кластер, к которому принадлежит этот пул узлов. Это поле представляет ссылку на ресурс кластера в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом 'name' и значением имени вашего ресурса. Во-вторых, можно добавить `register: name-of-resource` к задаче gcp_container_cluster, а затем установить это поле cluster в "{{ name-of-resource }}" | |||
| conditions список добавлено в 2.9 | Какие условия привели к текущему состоянию пула узлов. | |||
| code строка | Представление условия в удобном для машин формате. Некоторые допустимые значения: "UNKNOWN", "GCE_STOCKOUT", "GKE_SERVICE_ACCOUNT_DELETED", "GCE_QUOTA_EXCEEDED", "SET_BY_OPERATOR" | |||
| config словарь | Конфигурация узлов пула. | |||
| accelerators список добавлено в 2.9 | Список аппаратных ускорителей, которые должны быть подключены к каждому узлу. | |||
| accelerator_count целое число | Количество карт ускорителей, доступных для экземпляра. | |||
| accelerator_type строка | Имя ресурса типа ускорителя. | |||
| disk_size_gb целое число | Размер диска, подключаемого к каждому узлу, указанный в ГБ. Минимальный разрешенный размер диска составляет 10 ГБ. Если не указан, размер диска по умолчанию составляет 100 ГБ. | |||
| disk_type строка добавлено в 2.9 | Тип диска, подключаемого к каждому узлу (например, 'pd-standard' или 'pd-ssd'). Если не указан, тип диска по умолчанию — 'pd-standard'. | |||
| image_type строка | Тип образа, который необходимо использовать для этого узла. Обратите внимание, что для данного типа образа будет использоваться последняя версия. | |||
| labels словарь | Карта меток Kubernetes (пар ключ/значение), которые необходимо применить к каждому узлу. Они будут добавлены дополнительно к любым меткам по умолчанию, которые Kubernetes может применить к узлу. В случае конфликта ключей меток применённый набор может отличаться в зависимости от версии Kubernetes — лучше всего предположить, что поведение не определено, и конфликты следует избегать. Более подробную информацию, включая использование и допустимые значения, см. на странице: http://kubernetes.io/v1.1/docs/user-guide/labels.html Объект, содержащий список пар «ключ»: «значение». Пример: { "name": "ключ", "mass": "1.3кг", "count": "3" }. | |||
| local_ssd_count целое число | Количество локальных SSD-дисков, подключаемых к узлу. Предел для этого значения зависит от максимального количества дисков, доступных на машине в зоне. Дополнительную информацию см. на странице: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits. | |||
| machine_type строка | Имя типа машины Google Compute Engine (например, n1-standard-1). Если не указано, тип машины по умолчанию — n1-standard-1. | |||
| metadata словарь | Ключи/значения метаданных, назначаемые экземплярам в кластере. Ключи должны соответствовать регулярному выражению [a-zA-Z0-9-_]+ и иметь длину менее 128 байт. Они отображаются как часть URL-адреса на сервере метаданных. Кроме того, чтобы избежать неоднозначности, ключи не должны конфликтовать с другими ключами метаданных для проекта или быть одним из четырёх зарезервированных ключей: "instance-template", "kube-env", "startup-script", и "user-data". Значения — свободные строки, и их смысл интерпретируется только приложением, работающим на экземпляре. Единственное ограничение заключается в том, что размер каждого значения должен быть меньше или равен 32 КБ. Общий размер всех ключей и значений должен быть меньше 512 КБ. Объект, содержащий список пар «ключ»: «значение». Пример: { "name": "ключ", "mass": "1.3кг", "count": "3" }. | |||
| min_cpu_platform строка добавлено в 2.9 | Минимальная платформа процессора, которая должна использоваться этим экземпляром. Экземпляр может быть размещён на указанной или более новой платформе процессора. | |||
| oauth_scopes список | Набор областей видимости Google API, которые должны быть доступны для всех виртуальных машин узлов в рамках учётной записи «по умолчанию». Рекомендуются, но необязательны следующие области видимости, по умолчанию не включены: https://www.googleapis.com/auth/compute необходим для подключения постоянного хранилища к узлам.
https://www.googleapis.com/auth/devstorage.read_only необходим для взаимодействия с gcr.io (Google Container Registry). Если не указано, области видимости не добавляются, если не включены Cloud Logging или Cloud Monitoring, в этом случае будут добавлены необходимые области видимости. | |||
| preemptible булево |
| Создавать ли узлы в виде виртуальных машин с возможностью прерывания. Дополнительную информацию о виртуальных машинах с возможностью прерывания см. на странице: https://cloud.google.com/compute/docs/instances/preemptible. | ||
| service_account строка | Учётная запись Google Cloud Platform Service Account, которая будет использоваться виртуальными машинами узлов. Если учётная запись Service Account не указана, используется учётная запись «по умолчанию». | |||
| tags список | Список меток экземпляра, применяемых ко всем узлам. Метки используются для определения допустимых источников или целей для сетевых брандмауэров и указываются клиентом во время создания кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035. | |||
| taints список добавлено в 2.9 | Список меток Kubernetes, которые необходимо применить к каждому узлу. | |||
| effect строка | Эффект метки. | |||
| key строка | Ключ метки. | |||
| value строка | Значение метки. | |||
| env_type string | Указывает, в какой среде Ansible выполняется этот модуль. Не устанавливайте это значение, если вы не знаете, что делаете. Это изменяет только строку User Agent для всех запросов к API. | |||
| initial_node_count integer / required | Начальное количество узлов для пула. Необходимо убедиться, что квота ресурсов Compute Engine достаточна для этого количества экземпляров. Также должны быть доступны квоты для брандмауэра и маршрутов. | |||
| location string / required добавлено в 2.8 | Расположение, где развернут пул узлов. псевдонимы: region, zone | |||
| management dictionary | Конфигурация управления для этого NodePool. | |||
| auto_repair boolean |
| Флаг, указывающий, включено ли автоматическое восстановление узлов для пула узлов. При включении узлы в этом пуле будут отслеживаться, и если они не пройдут проверки работоспособности слишком много раз, будет выполнено автоматическое действие по восстановлению. | ||
| auto_upgrade boolean |
| Флаг, указывающий, включено ли автоматическое обновление узлов для пула узлов. При включении автоматическое обновление узлов помогает поддерживать узлы в вашем пуле узлов актуальными с последней версией Kubernetes. | ||
| upgrade_options dictionary | Указывает параметры автоматического обновления для пула узлов. | |||
| max_pods_constraint dictionary добавлено в 2.9 | Ограничение максимального количества поддосов, которые могут выполняться одновременно на узле в пуле узлов. | |||
| max_pods_per_node integer | Ограничение, накладываемое на максимальное количество поддосов на узел. | |||
| name string | Название пула узлов. | |||
| project string | Проект Google Cloud Platform для использования. | |||
| scopes list | Массив используемых областей. | |||
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в виде словаря, либо как строка JSON, которая его представляет. | |||
| service_account_email string | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |||
| service_account_file path | Путь к файлу JSON учетной записи службы, если выбран тип serviceaccount. | |||
| state string |
| Указывает, должен ли данный объект существовать в GCP | ||
| version string добавлено в 2.8 | Версия Kubernetes для этого узла. | |||
Примечания
Примечание
- для аутентификации можно задать service_account_file, используя переменную среды c(gcp_service_account_file).
- для аутентификации можно задать service_account_contents, используя переменную среды c(GCP_SERVICE_ACCOUNT_CONTENTS).
- Для аутентификации можно задать service_account_email, используя переменную среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно задать auth_kind, используя переменную среды
GCP_AUTH_KIND. - Для аутентификации можно задать scopes, используя переменную среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в плейбуке не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a cluster
gcp_container_cluster:
name: cluster-nodepool
initial_node_count: 4
location: us-central1-a
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: cluster
- name: create a node pool
gcp_container_node_pool:
name: my-pool
initial_node_count: 4
cluster: "{{ cluster }}"
location: us-central1-a
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращено | Описание | ||
|---|---|---|---|---|
| autoscaling сложный | успех | Настройка автоматического масштабирования для этого пула узлов. Автомасштабирование включено только при наличии корректной конфигурации. | ||
| enabled булево | успех | Включено ли автоматическое масштабирование для данного пула узлов. | ||
| maxNodeCount целое число | успех | Максимальное количество узлов в пуле узлов. Должно быть больше или равно minNodeCount. Должно быть достаточно квоты для увеличения масштаба кластера. | ||
| minNodeCount целое число | успех | Минимальное количество узлов в пуле узлов. Должно быть больше или равно 1 и меньше или равно maxNodeCount. | ||
| cluster словарь | успех | Кластер, к которому принадлежит этот пул узлов. | ||
| conditions сложный | успех | Условия, которые привели к текущему состоянию пула узлов. | ||
| code строка | успех | Представление условия в удобном для машин формате. | ||
| config сложный | успех | Конфигурация узлов пула. | ||
| accelerators сложный | успех | Список аппаратных ускорителей, которые должны быть подключены к каждому узлу. | ||
| acceleratorCount целое число | успех | Количество карт ускорителей, доступных для экземпляра. | ||
| acceleratorType строка | успех | Имя ресурса типа ускорителя. | ||
| diskSizeGb целое число | успех | Размер диска, подключённого к каждому узлу, в ГБ. Минимальный размер диска — 10 ГБ. Если не указано, используется значение по умолчанию — 100 ГБ. | ||
| diskType строка | успех | Тип диска, подключённого к каждому узлу (например, 'pd-standard' или 'pd-ssd'). Если не указано, используется тип диска по умолчанию — 'pd-standard'. | ||
| imageType строка | успех | Тип образа, который будет использоваться для данного узла. Обратите внимание, что для данного типа образа будет использована его последняя версия. | ||
| labels словарь | успех | Словарь меток Kubernetes (пар ключ/значение), которые будут применены к каждому узлу. Они будут добавлены в дополнение к любым меткам по умолчанию, которые может применить Kubernetes к узлу. В случае конфликта ключей меток применённый набор может отличаться в зависимости от версии Kubernetes — лучше предположить, что поведение неопределённо, и конфликтов следует избегать. Для получения дополнительной информации, включая использование и допустимые значения, см.: http://kubernetes.io/v1.1/docs/user-guide/labels.html Объект, содержащий список пар "ключ": значение. Пример: { "name": "ключ", "mass": "1.3кг", "count": "3" } | ||
| localSsdCount целое число | успех | Количество локальных SSD-дисков, которые будут подключены к узлу. Предел для этого значения зависит от максимального количества дисков, доступных на машине в данном регионе. См. https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits для получения дополнительной информации. | ||
| machineType строка | успех | Имя типа машины Google Compute Engine (например, n1-стандартный-1). Если не указано, используется тип машины по умолчанию n1-стандартный-1. | ||
| metadata словарь | успех | Ключи/значения метаданных, назначенные экземплярам в кластере. Ключи должны соответствовать регулярному выражению [a-zA-Z0-9-_]+ и иметь длину менее 128 байт. Они отражаются в URL-адресе на сервере метаданных. Кроме того, чтобы избежать неоднозначности, ключи не должны совпадать с другими ключами метаданных для проекта или быть одним из четырёх зарезервированных ключей: "instance-template", "kube-env", "startup-script" и "user-data". Значения — произвольные строки, и смысл их зависит от интерпретации образа, работающего в экземпляре. Единственное ограничение состоит в том, что размер каждого значения должен быть меньше или равен 32 КБ. Общий размер всех ключей и значений должен быть меньше 512 КБ. Объект, содержащий список пар "ключ": значение. Пример: { "name": "ключ", "mass": "1.3кг", "count": "3" } | ||
| minCpuPlatform строка | успех | Минимальная платформа процессора, которая должна использоваться данным экземпляром. Экземпляр может быть запланирован на указанную или более новую платформу процессора. | ||
| oauthScopes список | успех | Набор облачных API-разрешений Google, которые будут доступны на всех виртуальных машинах узлов под учетной записью "по умолчанию". Рекомендуется, но не обязательно, включать следующие разрешения: https://www.googleapis.com/auth/compute необходимо для монтирования постоянного хранилища на узлах.
https://www.googleapis.com/auth/devstorage.read_only необходимо для связи с gcr.io (Google Container Registry). Если не указано, разрешения не добавляются, если не включены Cloud Logging или Cloud Monitoring, в этом случае необходимые разрешения будут добавлены. | ||
| preemptible булево | успех | Создаются ли узлы в виде предварительно перечислимых виртуальных машин. См.: https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о предварительно перечислимых виртуальных машинах. | ||
| serviceAccount строка | успех | Учетная запись сервиса Google Cloud Platform, которая будет использоваться виртуальными машинами узлов. Если учетная запись сервиса не указана, используется учетная запись сервиса "по умолчанию". | ||
| tags список | успех | Список меток экземпляров, применяемых ко всем узлам. Метки используются для идентификации допустимых источников или целей для сетевых брандмауэров и указываются клиентом во время создания кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035. | ||
| taints сложный | успех | Список меток Kubernetes, которые необходимо применить к каждому узлу. | ||
| effect строка | успех | Эффект метки. | ||
| key строка | успех | Ключ метки. | ||
| value строка | успех | Значение метки. | ||
| initialNodeCount целое число | успех | Начальное количество узлов для пула. Необходимо убедиться, что квота ресурсов Compute Engine достаточна для этого количества экземпляров. Также необходимо иметь доступные квоты для брандмауэров и маршрутов. | ||
| location строка | успех | Местоположение, где развернут пул узлов. | ||
| management сложный | успех | Настройка управления для этого пула узлов. | ||
| autoRepair булево | успех | Флаг, указывающий, включено ли автоматическое восстановление узлов для пула узлов. Если включено, узлы в этом пуле будут отслеживаться, и если они слишком много раз не пройдут проверки работоспособности, будет выполнено автоматическое действие по восстановлению. | ||
| autoUpgrade boolean | success | Флаг, указывающий, включено ли автоматическое обновление узлов для пула узлов. Если включено, автоматическое обновление узлов помогает поддерживать узлы в вашем пуле узлов с последней версией Kubernetes. | ||
| upgradeOptions complex | success | Указывает параметры автоматического обновления для пула узлов. | ||
| autoUpgradeStartTime string | success | Это поле устанавливается, когда обновления находятся на стадии начала с приблизительным временем начала обновлений в формате RFC3339. | ||
| description string | success | Это поле устанавливается, когда обновления находятся на стадии начала с описанием обновления. | ||
| maxPodsConstraint complex | success | Ограничение максимального числа поддонов, которые могут одновременно выполняться на узле в пуле узлов. | ||
| maxPodsPerNode integer | success | Ограничение, применённое к максимальному числу поддонов на узел. | ||
| name string | success | Название пула узлов. | ||
| podIpv4CidrSize integer | success | Размер блока поддонов CIDR на узел в этом пуле узлов. | ||
| status string | success | Состояние узлов в этом экземпляре пула. | ||
| statusMessage string | success | Дополнительная информация о текущем состоянии этого экземпляра пула узлов. | ||
| version string | success | Версия Kubernetes этого узла. | ||
Состояние
- Этот модуль не гарантирует обратную совместимость интерфейса. [preview]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Google Inc. (@googlecloudplatform)
Подсказка
Если вы заметили какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 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/gcp_container_node_pool_module.html