gcp_container_node_pool - Создаёт пул узлов GCP NodePool
Новое в версии 2.6.
Обзор
- NodePool содержит имя и конфигурацию пула узлов кластера.
- Пулы узлов представляют собой набор узлов (т.е. виртуальных машин), имеющих общую конфигурацию и спецификацию, контролируемые главным узлом кластера. К ним могут быть применены метки Kubernetes, которые могут использоваться для их ссылки при планировании задач. Их размер также можно изменять вверх или вниз, чтобы удовлетворить рабочую нагрузку.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| auth_kind обязательно |
| Тип используемых учетных данных. | ||
| autoscaling | Конфигурация автоматического масштабирования для данного NodePool. Автоматическое масштабирование включено только при наличии корректной конфигурации. | |||
| enabled bool |
| Включено ли автоматическое масштабирование для данного пула узлов. | ||
| min_node_count | Минимальное количество узлов в NodePool. Должно быть >= 1 и <= maxNodeCount. | |||
| max_node_count | Максимальное количество узлов в NodePool. Должно быть >= minNodeCount. Должно быть достаточно квот для масштабирования кластера. | |||
| cluster обязательно | Ссылка на ресурс Cluster. | |||
| config | Конфигурация узлов пула. | |||
| machine_type | Название типа виртуальной машины Google Compute Engine (например, n1-standard-1). Если не указано, используется тип виртуальной машины n1-standard-1 по умолчанию. | |||
| disk_size_gb | Размер диска, подключённого к каждому узлу, указанный в ГБ. Минимально допустимый размер диска составляет 10 ГБ. Если не указано, размер диска по умолчанию составляет 100 ГБ. | |||
| oauth_scopes | Набор облачных 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, в этом случае будут добавлены необходимые разрешения. | |||
| service_account | Учетная запись службы Google Cloud Platform, которая будет использоваться виртуальными машинами узлов. Если учетная запись службы не указана, используется учетная запись «по умолчанию». | |||
| metadata | Ключевые пары метаданных, назначаемые экземплярам в кластере. Ключи должны соответствовать регулярному выражению [a-zA-Z0-9-_]+ и иметь длину менее 128 байт. Они отражаются как часть URL в сервере метаданных. Кроме того, чтобы избежать неоднозначности, ключи не должны совпадать с другими ключами метаданных для проекта или быть одним из четырёх зарезервированных ключей: «instance-template», «kube-env», «startup-script» и «user-data». Значения являются свободными строками и имеют смысл только в интерпретации изображения, работающего в экземпляре. Единственное ограничение, накладываемое на них, состоит в том, что размер каждого значения должен быть меньше или равен 32 КБ. Суммарный размер всех ключей и значений должен быть меньше 512 КБ. Объект, содержащий список пар «ключ»: значение. Пример: { «имя»: «ключ», «масса»: «1.3кг», «количество»: «3» }. | |||
| image_type | Тип изображения, который следует использовать для данного узла. Обратите внимание, что для данного типа изображения будет использоваться последняя его версия. | |||
| labels | Карта меток Kubernetes (пар ключ/значение), которые должны применяться к каждому узлу. Они будут добавлены в дополнение к любым меткам по умолчанию, которые Kubernetes может применить к узлу. В случае конфликта в ключах меток применяемый набор может отличаться в зависимости от версии Kubernetes — лучше всего предположить, что поведение не определено, и конфликты следует избегать. Более подробную информацию, включая использование и допустимые значения, см. http://kubernetes.io/v1.1/docs/user-guide/labels.html Объект, содержащий список пар «ключ»: значение. Пример: { «имя»: «ключ», «масса»: «1.3кг», «количество»: «3» }. | |||
| local_ssd_count | Количество локальных дисков SSD, подключаемых к узлу. Предел для этого значения зависит от максимального количества дисков, доступных на машине в зоне. Дополнительную информацию см. в разделе https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits. | |||
| tags | Список тегов экземпляров, применяемых ко всем узлам. Теги используются для идентификации допустимых источников или целей для брандмауэров сети и задаются клиентом при создании кластера или пула узлов. Каждый тег в списке должен соответствовать RFC1035. | |||
| preemptible bool |
| Создавать ли узлы как преемственные виртуальные машины. См. https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о преемственных виртуальных машинах. | ||
| initial_node_count обязательно | Начальное количество узлов для пула. Вам необходимо убедиться, что квота вашего ресурса Compute Engine достаточна для этого числа экземпляров. Вам также должны быть доступны квоты на брандмауэры и маршруты. | |||
| management | Конфигурация управления для данного NodePool. | |||
| auto_upgrade bool |
| Флаг, указывающий, включена ли автоматическая модернизация узлов для пула узлов. При включении автоматической модернизации узлов узлы в вашем пуле узлов будут обновляться до последней версии Kubernetes. | ||
| auto_repair bool |
| Флаг, указывающий, включено ли автоматическое восстановление узлов для пула узлов. Если включено, узлы в этом пуле узлов будут отслеживаться, и если они не пройдут проверки состояния слишком много раз, будет запущена автоматическая операция восстановления. | ||
| upgrade_options | Указывает настройки автоматического обновления для пула узлов. | |||
| auto_upgrade_start_time | Это поле устанавливается, когда обновления начинают выполняться с приблизительным начальным временем обновлений в формате RFC3339. | |||
| description | Это поле устанавливается, когда обновления начинают выполняться с описанием обновления. | |||
| name | Имя пула узлов. | |||
| project | Проект Google Cloud Platform, который будет использоваться. | |||
| scopes обязательно | Массив используемых разрешений. | |||
| service_account_email | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |||
| service_account_file | Путь к файлу JSON учетной записи службы, если в качестве типа выбран serviceaccount. | |||
| state обязательно |
| Требуется ли наличие данного объекта в GCP | ||
| zone обязательно | Зона, в которой развернут пул узлов. | |||
Примечания
Примечание
- Для аутентификации можно задать service_account_file с помощью переменной среды
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации можно задать service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно задать auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно задать scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использованы только в том случае, если значения в playbook не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a cluster
gcp_container_cluster:
name: 'cluster-nodepool'
initial_node_count: 4
zone: 'us-central1-a'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
scopes:
- https://www.googleapis.com/auth/cloud-platform
state: present
register: cluster
- name: create a node pool
gcp_container_node_pool:
name: testObject
initial_node_count: 4
cluster: "{{ cluster }}"
zone: 'us-central1-a'
project: testProject
auth_kind: service_account
service_account_file: /tmp/auth.pem
scopes:
- https://www.googleapis.com/auth/cloud-platform
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращено | Описание | ||
|---|---|---|---|---|
| autoscaling complex | success | Настройка автоматического масштабирования для этого NodePool. Автоматическое масштабирование включено только при наличии корректной конфигурации. | ||
| enabled bool | success | Включено ли автоматическое масштабирование для этого пула узлов. | ||
| min_node_count int | success | Минимальное количество узлов в NodePool. Должно быть >= 1 и <= maxNodeCount. | ||
| max_node_count int | success | Максимальное количество узлов в NodePool. Должно быть >= minNodeCount. Должен быть достаточный квота для масштабирования кластера. | ||
| cluster dict | success | Ссылка на ресурс кластера. | ||
| config complex | success | Конфигурация узлов пула. | ||
| machine_type str | success | Имя типа машины Google Compute Engine (например, n1-standard-1). Если не указано, используется тип машины n1-standard-1 по умолчанию. | ||
| disk_size_gb int | success | Размер диска, подключенного к каждому узлу, в ГБ. Минимальный разрешенный размер диска составляет 10 ГБ. Если не указано, используется размер диска по умолчанию 100 ГБ. | ||
| oauth_scopes list | success | Набор Google API-разрешений, доступных для всех виртуальных машин узлов в рамках учетной записи "default". Рекомендуются следующие разрешения (но они не обязательны и по умолчанию не включены): https://www.googleapis.com/auth/compute требуется для подключения постоянного хранилища к узлам. https://www.googleapis.com/auth/devstorage.read_only требуется для связи с gcr.io (Google Container Registry). Если не указано, разрешения не добавляются, если не включены Cloud Logging или Cloud Monitoring, в этом случае будут добавлены необходимые разрешения. | ||
| service_account str | success | Учетная запись службы Google Cloud Platform, которая будет использоваться виртуальными машинами узлов. Если учетная запись службы не указана, используется учетная запись "default". | ||
| metadata dict | success | Ключевые пары метаданных, назначенные экземплярам в кластере. Ключи должны соответствовать регулярному выражению [a-zA-Z0-9-_]+ и иметь длину менее 128 байтов. Они отражаются в URL-адресе на сервере метаданных. Кроме того, для избежания неоднозначности ключи не должны совпадать с другими ключами метаданных для проекта или быть одним из четырех зарезервированных ключей: "instance-template", "kube-env", "startup-script" и "user-data". Значения — произвольные строки, и их значение интерпретируется только запуском образа в экземпляре. Единственное ограничение — размер каждого значения должен быть меньше или равен 32 КБ. Общий размер всех ключей и значений должен быть меньше 512 КБ. Объект, содержащий список пар «ключ»: «значение». Пример: { "name": "ключ", "mass": "1.3кг", "count": "3" }. | ||
| image_type str | success | Тип образа, который будет использоваться для этого узла. Обратите внимание, что для данного типа образа будет использоваться последняя версия. | ||
| labels dict | success | Карта меток Kubernetes (пар «ключ/значение»), которые будут применены к каждому узлу. Они будут добавлены дополнительно к любым меткам по умолчанию, которые Kubernetes может применить к узлу. В случае конфликта в ключах меток примененный набор может отличаться в зависимости от версии Kubernetes — лучше всего предположить, что поведение не определено, и конфликтов следует избегать. Более подробная информация, включая использование и допустимые значения, см. по адресу: http://kubernetes.io/v1.1/docs/user-guide/labels.html Объект, содержащий список пар «ключ»: «значение». Пример: { "name": "ключ", "mass": "1.3кг", "count": "3" }. | ||
| local_ssd_count int | success | Количество локальных SSD-дисков, которые должны быть подключены к узлу. Предел для этого значения зависит от максимального количества дисков, доступных на машине в зоне. Для получения дополнительной информации см.: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits | ||
| tags list | success | Список меток экземпляров, примененных ко всем узлам. Метки используются для идентификации допустимых источников или целей для брандмауэров сети и указываются клиентом при создании кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035. | ||
| preemptible bool | success | Определяет, создаются ли узлы как предварительно прерывимые виртуальные машины. См.: https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о предварительно прерывимых виртуальных машинах. | ||
| initial_node_count int | success | Начальное количество узлов для пула. Необходимо убедиться, что квоты ресурсов Compute Engine достаточны для этого количества экземпляров. Также должны быть доступны квоты для брандмауэра и маршрутов. | ||
| management complex | success | Настройка управления для этого NodePool. | ||
| auto_upgrade bool | success | Флаг, определяющий, включена ли автоматическая модернизация узлов для пула узлов. При включенном автоматическом обновлении узлов пул узлов поддерживается с последней релизной версией Kubernetes. | ||
| auto_repair bool | success | Флаг, определяющий, включен ли автоматический ремонт узлов для пула узлов. При включенном автоматическом ремонте узлов узлы в этом пуле узлов будут отслеживаться, и если они не пройдут проверки работоспособности слишком много раз, будет запущена автоматическая процедура ремонта. | ||
| upgrade_options complex | success | Указывает параметры автоматического обновления для пула узлов. | ||
| auto_upgrade_start_time str | success | Это поле устанавливается при начале модернизации с приблизительным временем начала модернизации в формате RFC3339. | ||
| description str | success | Это поле устанавливается при начале модернизации с описанием модернизации. | ||
| name str | success | Имя пула узлов. | ||
| version str | success | Версия Kubernetes этого узла. | ||
| zone str | success | Зона развертывания пула узлов. | ||
Состояние
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимостью.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.
Автор
- 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.6/modules/gcp_container_node_pool_module.html