google.cloud.gcp_container_node_pool – Создаёт пул узлов GCP
Примечание
Этот плагин входит в коллекцию google.cloud (версия 1.0.1).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Для использования в плейбуке укажите: google.cloud.gcp_container_node_pool.
Описание
- 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: имя-ресурса` в задачу gcp_container_cluster и затем установить это поле кластера на "{{ имя-ресурса }}" | |||
| conditions список / элементы=словарь | Какие условия привели к текущему состоянию пула узлов. | |||
| code строка | Представление условия в удобном для машины формате. Некоторые допустимые значения включают: "UNKNOWN", "GCE_STOCKOUT", "GKE_SERVICE_ACCOUNT_DELETED", "GCE_QUOTA_EXCEEDED", "SET_BY_OPERATOR" | |||
| config словарь | Конфигурация узлов пула. | |||
| accelerators список / элементы=словарь | Список аппаратных ускорителей, которые нужно подключить к каждому узлу. | |||
| accelerator_count целое число | Количество карт ускорителей, доступных экземпляру. | |||
| accelerator_type строка | Имя ресурса типа ускорителя. | |||
| disk_size_gb целое число | Размер диска, подключенного к каждому узлу, в ГБ. Минимальный разрешенный размер диска — 10 ГБ. Если не указан, размер диска по умолчанию — 100 ГБ. | |||
| disk_type строка | Тип диска, подключенного к каждому узлу (например, '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-стандартный-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" }. | |||
| min_cpu_platform строка | Минимальная платформа процессора, которая должна использоваться этим экземпляром. Экземпляр может быть запланирован на указанной или более новой платформе процессора. | |||
| oauth_scopes список / элементы=строка | Набор облачных API-скопов Google, которые должны быть доступны на всех виртуальных машинах узлов в рамках учетной записи службы "по умолчанию". Рекомендуются следующие скопы, но они необязательны, и по умолчанию не включены: https://www.googleapis.com/auth/compute необходим для монтирования постоянного хранилища на ваших узлах.
https://www.googleapis.com/auth/devstorage.read_only необходим для связи с gcr.io (Google Container Registry). Если не указано, никакие скопы не добавляются, если не включены облачные логи или облачный мониторинг, в этом случае будут добавлены необходимые скопы. | |||
| preemptible булево |
| Создаются ли узлы как виртуальные машины с возможностью предварительного прерывания. См.: https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о виртуальных машинах с возможностью предварительного прерывания. | ||
| service_account строка | Учетная запись службы Google Cloud Platform, которая будет использоваться виртуальными машинами узлов. Если учетная запись службы не указана, используется учетная запись службы "по умолчанию". | |||
| shielded_instance_config словарь | Параметры защищённого экземпляра. | |||
| enable_integrity_monitoring булево |
| Определяет, включен ли мониторинг целостности для экземпляра. Включает мониторинг и аутентификацию целостности загрузки экземпляра. Аутентификация выполняется относительно базовой линии политики целостности. Эта база данных изначально выводится из подразумеваемого доверенного образа загрузки при создании экземпляра. | ||
| enable_secure_boot булево |
| Определяет, включен ли безопасный запуск для экземпляра. Безопасный запуск помогает гарантировать, что система запускает только аутентифицированное программное обеспечение, проверяя цифровую подпись всех компонентов загрузки и останавливая процесс загрузки, если проверка подписи не удалась. | ||
| tags список / элементы=строка | Список меток экземпляра, примененных ко всем узлам. Метки используются для идентификации допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035. | |||
| taints список / элементы=словарь | Список меток Kubernetes, которые нужно применить к каждому узлу. | |||
| effect строка | Эффект метки. | |||
| key строка | Ключ метки. | |||
| value строка | Значение метки. | |||
| env_type строка | Указывает, в какой среде Ansible вы запускаете этот модуль. Не устанавливайте это, если вы не знаете, что делаете. Это изменяет только строку User Agent для любых запросов API. | |||
| initial_node_count integer / required | Начальное количество узлов для пула. Необходимо убедиться, что квота ресурсов Compute Engine достаточна для этого количества экземпляров. Также необходимы квоты на брандмауэр и маршруты. | |||
| location string / required | Расположение, где развернут пул узлов. Псевдонимы: region, zone | |||
| management dictionary | Настройка управления для данного NodePool. | |||
| auto_repair boolean |
| Флаг, определяющий, включен ли автоматический ремонт узлов для пула узлов. При включении узлы в этом пуле будут отслеживаться, и если они слишком много раз не пройдут проверки работоспособности, будет выполнено автоматическое действие по ремонту. | ||
| auto_upgrade boolean |
| Флаг, определяющий, включена ли автоматическая модернизация узлов для пула узлов. Если включена, автоматическая модернизация узлов помогает поддерживать узлы в вашем пуле узлов в актуальном состоянии с последней версией Kubernetes. | ||
| upgrade_options dictionary | Указывает параметры автоматической модернизации для пула узлов. | |||
| max_pods_constraint dictionary | Ограничение максимального количества под на узле пула узлов. | |||
| max_pods_per_node integer | Ограничение, применяемое к максимальному числу под на узел. | |||
| name string | Имя пула узлов. | |||
| project string | Проект Google Cloud Platform, который следует использовать. | |||
| scopes list / elements=string | Массив используемых областей. | |||
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в словаре, либо в виде JSON-строки, его представляющей. | |||
| service_account_email string | Дополнительный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |||
| service_account_file path | Путь к файлу JSON учетной записи службы, если тип serviceaccount выбран как тип. | |||
| state string |
| Следует ли, чтобы данный объект существовал в GCP | ||
| version string | Версия Kubernetes для этого узла. | |||
Примеры
- name: create a cluster
google.cloud.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
google.cloud.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 complex | success | Конфигурация автомасштабирования для этого пула узлов. Автомасштабирование включено только при наличии корректной конфигурации. | ||
| enabled boolean | success | Включено ли автомасштабирование для этого пула узлов. | ||
| maxNodeCount integer | success | Максимальное количество узлов в пуле узлов. Должно быть >= minNodeCount. Должно быть достаточно квот для увеличения масштаба кластера. | ||
| minNodeCount integer | success | Минимальное количество узлов в пуле узлов. Должно быть >= 1 и <= maxNodeCount. | ||
| cluster dictionary | success | Кластер, к которому принадлежит этот пул узлов. | ||
| conditions complex | success | Условия, которые привели к текущему состоянию пула узлов. | ||
| code string | success | Представление условия в удобном для машин формате. | ||
| config complex | success | Конфигурация узлов пула. | ||
| accelerators complex | success | Список аппаратных ускорителей, которые необходимо подключить к каждому узлу. | ||
| acceleratorCount integer | success | Количество карт ускорителей, подключенных к экземпляру. | ||
| acceleratorType string | success | Имя ресурса типа ускорителя. | ||
| diskSizeGb integer | success | Размер диска, подключенного к каждому узлу, указанный в ГБ. Минимальный разрешенный размер диска — 10 ГБ. Если не указано, используется значение по умолчанию — 100 ГБ. | ||
| diskType string | success | Тип диска, подключенного к каждому узлу (например, 'pd-standard' или 'pd-ssd'). Если не указано, используется тип диска по умолчанию — 'pd-standard'. | ||
| imageType string | success | Тип образа, который необходимо использовать для этого узла. Обратите внимание, что для данного типа образа будет использоваться последняя версия. | ||
| labels dictionary | success | Карта меток Kubernetes (пар «ключ/значение»), которые необходимо применить к каждому узлу. Они будут добавлены в дополнение к любым меткам по умолчанию, которые Kubernetes может применить к узлу. В случае конфликта ключей меток примененный набор может отличаться в зависимости от версии Kubernetes — лучше всего предполагать, что поведение не определено, и конфликты следует избегать. Дополнительную информацию, включая использование и допустимые значения, см. на странице: http://kubernetes.io/v1.1/docs/user-guide/labels.html. Объект, содержащий список пар «ключ»: значение. Пример: { "name": "отвёртка", "масса": "1.3кг", "количество": "3" } | ||
| localSsdCount integer | success | Количество локальных SSD-дисков, которые необходимо подключить к узлу. Ограничение по этому значению зависит от максимального количества дисков, доступных на машине в зоне. Более подробную информацию см. на странице: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits. | ||
| machineType string | success | Имя типа машины Google Compute Engine (например, n1-стандарт-1). Если не указано, используется тип машины по умолчанию n1-стандарт-1. | ||
| metadata dictionary | success | Ключи/значения метаданных, присвоенные экземплярам в кластере. Ключи должны соответствовать регулярному выражению [a-zA-Z0-9-_]+ и иметь длину менее 128 байт. Они отражаются как часть URL-адреса в сервере метаданных. Кроме того, для избежания неоднозначности ключи не должны конфликтовать с другими ключами метаданных для проекта или быть одним из четырёх служебных ключей: "instance-template", "kube-env", "startup-script" и "user-data". Значения — это свободные строки, и они имеют смысл только в контексте интерпретации образа, выполняющегося в экземпляре. Единственное ограничение состоит в том, что размер каждого значения должен быть меньше или равен 32 КБ. Общий размер всех ключей и значений должен быть меньше 512 КБ. Объект, содержащий список пар «ключ»: значение. Пример: { "name": "отвёртка", "масса": "1.3кг", "количество": "3" } | ||
| minCpuPlatform string | success | Минимальная платформа процессора, которая должна использоваться этим экземпляром. Экземпляр может быть запланирован на указанную или более новую платформу процессора. | ||
| oauthScopes list / elements=string | success | Набор облачных API-скопов Google, которые должны быть доступны на всех виртуальных машинах узлов в рамках учётной записи "default". Следующие скопы рекомендуются, но не являются обязательными, и по умолчанию не включены: https://www.googleapis.com/auth/compute требуется для подключения постоянного хранилища к узлам.
https://www.googleapis.com/auth/devstorage.read_only требуется для взаимодействия с gcr.io (Google Container Registry). Если не указано, скопы не добавляются, если не включены Cloud Logging или Cloud Monitoring, в таком случае их необходимые скопы будут добавлены. | ||
| preemptible boolean | success | Указывается ли, что узлы создаются как преемпитибле экземпляры виртуальных машин. Смотрите: https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о преемпитибле экземплярах виртуальных машин. | ||
| serviceAccount string | success | Учётная запись службы Google Cloud Platform, которая должна использоваться виртуальными машинами узлов. Если учётная запись службы не указана, используется учётная запись "default". | ||
| shieldedInstanceConfig complex | success | Параметры защищённого экземпляра. | ||
| enableIntegrityMonitoring boolean | success | Определяет, включено ли мониторинг целостности для экземпляра. Включает мониторинг и подтверждение целостности загрузки экземпляра. Подтверждение выполняется по отношению к эталонному образцу политики целостности. Этот эталонный образец изначально выводится из неявного доверенного загрузочного образа при создании экземпляра. | ||
| enableSecureBoot boolean | success | Определяет, включен ли Secure Boot для экземпляра. Secure Boot помогает гарантировать, что система выполняет только подлинный программный код, проверяя цифровую подпись всех загрузочных компонентов, и останавливая процесс загрузки, если проверка подписи завершается неудачно. | ||
| tags list / elements=string | success | Список меток экземпляра, применённых ко всем узлам. Метки используются для определения допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035. | ||
| taints complex | success | Список меток Kubernetes, которые необходимо применить к каждому узлу. | ||
| effect string | success | Эффект для метки. | ||
| key string | success | Ключ для метки. | ||
| value string | success | Значение для метки. | ||
| initialNodeCount integer | success | Начальное количество узлов для пула. Вы должны убедиться, что квота ресурсов Compute Engine достаточна для этого количества экземпляров. Также необходимо иметь достаточную квоту на брандмауэр и маршруты. | ||
| location string | success | Расположение, в котором развернут пул узлов. | ||
| management complex | success | Конфигурация управления для этого пула узлов. | ||
| autoRepair boolean | success | Флаг, определяющий, включено ли автоматическое восстановление узлов для пула узлов. Если включено, узлы в этом пуле узлов будут отслеживаться, и если они не пройдут проверки работоспособности слишком много раз, будет выполнено автоматическое действие по восстановлению. | ||
| 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 этого узла. | ||
Авторы
- 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.10/collections/google/cloud/gcp_container_node_pool_module.html