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 }}" | ||
| config - | Конфигурация узлов пула. | ||
| disk_size_gb - | Размер диска, подключенного к каждому узлу, указанный в ГБ. Минимальный разрешённый размер диска — 10 ГБ. Если не указан, размер диска по умолчанию — 100 ГБ. | ||
| image_type - | Тип образа, используемого для этого узла. Обратите внимание, что для данного типа образа будет использоваться последняя версия. | ||
| labels - | Карта меток Kubernetes (пар «ключ/значение»), применяемых к каждому узлу. Они будут добавлены в дополнение к любым меткам по умолчанию, которые Kubernetes может применить к узлу. В случае конфликта в ключах меток применённый набор может отличаться в зависимости от версии Kubernetes — лучше всего предположить, что поведение неопределено, и конфликты следует избегать. Более подробную информацию, включая использование и допустимые значения, см.: http://kubernetes.io/v1.1/docs/user-guide/labels.html Объект, содержащий список пар «ключ»: значение. Пример: { "name": "гаечный ключ", "масса": "1,3 кг", "количество": "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": "гаечный ключ", "масса": "1,3 кг", "количество": "3" }. | ||
| 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, в этом случае будут добавлены необходимые разрешения. | ||
| preemptible булево |
| Указывается, создаются ли узлы как преемственные виртуальные машины. См.: https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о преемственных виртуальных машинах. | |
| service_account - | Учётная запись Google Cloud Platform Service Account, используемая виртуальными машинами узлов. Если учетная запись Service Account не указана, используется учетная запись «по умолчанию». | ||
| tags - | Список меток экземпляра, применяемых ко всем узлам. Метки используются для идентификации допустимых источников или целей для межсетевых экранов и указываются клиентом при создании кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035. | ||
| initial_node_count - / обязательно | Начальное количество узлов для пула. Вы должны убедиться, что квота ресурсов Compute Engine достаточна для этого количества экземпляров. Вы также должны иметь доступные квоты межсетевых экранов и маршрутов. | ||
| location - / обязательно добавлено в 2.8 | Расположение, в котором развернут пул узлов. псевдонимы: region, zone | ||
| management - | Настройка управления для этого пула узлов. | ||
| auto_repair булево |
| Флаг, указывающий, включена ли автоматическая очистка узлов для пула узлов. Если включено, узлы в этом пуле узлов будут отслеживаться, и если они слишком много раз не пройдут проверки состояния, будет выполнено автоматическое действие по восстановлению. | |
| auto_upgrade булево |
| Флаг, указывающий, включена ли автоматическая модернизация узлов для пула узлов. Если включено, автоматическая модернизация узлов поможет поддерживать узлы в вашем пуле узлов в актуальном состоянии с последней релизной версией Kubernetes. | |
| upgrade_options - | Указывает параметры автоматического обновления для пула узлов. | ||
| name - | Имя пула узлов. | ||
| project строка | Проект Google Cloud Platform, который нужно использовать. | ||
| scopes список | Массив используемых областей. | ||
| service_account_contents строка | Строка, представляющая содержимое файла JSON учетной записи Service Account. Это не должно передаваться как словарь, а строка, содержащая точное содержимое файла json учетной записи service account (валидный JSON). | ||
| service_account_email строка | Необязательный адрес электронной почты учетной записи Service Account, если выбран machineaccount, и пользователь не хочет использовать адрес электронной почты по умолчанию. | ||
| service_account_file путь | Путь к файлу JSON учетной записи Service Account, если в качестве типа выбран serviceaccount. | ||
| состояние - |
| Указывает, должно ли данное объект существовать в GCP | |
| версия - добавлено в 2.8 | Версия Kubernetes этого узла. | ||
Примечания
Примечание
- Для аутентификации можно установить service_account_file с помощью переменной среды
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - Для аутентификации можно установить 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 сложное | успех | Настройка автомасштабирования для этого NodePool. Автомасштабирование включено только при наличии корректной конфигурации. | ||
| enabled булево | успех | Включено ли автомасштабирование для данного пула узлов. | ||
| maxNodeCount целое число | успех | Максимальное количество узлов в NodePool. Должно быть ≥ minNodeCount. Должно быть достаточно квоты для масштабирования кластера. | ||
| minNodeCount целое число | успех | Минимальное количество узлов в NodePool. Должно быть ≥ 1 и ≤ maxNodeCount. | ||
| cluster словарь | успех | Кластер, к которому принадлежит этот пул узлов. | ||
| config сложное | успех | Конфигурация узлов пула. | ||
| diskSizeGb целое число | успех | Размер диска, подключённого к каждому узлу, в ГБ. Минимальный размер диска — 10 ГБ. Если не указано, используется значение по умолчанию — 100 ГБ. | ||
| imageType строка | успех | Тип образа для использования на этом узле. Обратите внимание, что для данного типа образа будет использоваться последняя версия. | ||
| labels словарь | успех | Словарь меток Kubernetes (пар ключ/значение), которые будут применены к каждому узлу. Они добавляются в дополнение к любым стандартным меткам, которые Kubernetes может применить к узлу. В случае конфликта в ключах меток применённый набор может отличаться в зависимости от версии Kubernetes — лучше предположить, что поведение не определено, и конфликтов следует избегать. Более подробная информация, включая использование и допустимые значения, доступна по адресу: http://kubernetes.io/v1.1/docs/user-guide/labels.html Объект, содержащий список пар "ключ": значение. Пример: { "имя": "ключ", "масса": "1.3кг", "количество": "3" }. | ||
| localSsdCount целое число | успех | Количество локальных SSD-дисков, подключаемых к узлу. Предел этого значения зависит от максимального количества дисков, доступных на машине в данном регионе. См.: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits для получения дополнительной информации. | ||
| machineType строка | успех | Имя типа машины 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 КБ. Объект, содержащий список пар "ключ": значение. Пример: { "имя": "ключ", "масса": "1.3кг", "количество": "3" }. | ||
| 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. | ||
| initialNodeCount целое число | успех | Начальное количество узлов для пула. Необходимо убедиться, что квоты Compute Engine ресурсов достаточны для этого количества экземпляров. Необходимо также иметь квоту на брандмауэры и маршруты. | ||
| location строка | успех | Расположение, где развернут пул узлов. | ||
| management сложное | успех | Настройка управления для этого NodePool. | ||
| autoRepair булево | успех | Флаг, указывающий, включено ли автоматическое восстановление узлов для пула узлов. При включении узлы в этом пуле будут отслеживаться, и если они не пройдут проверки работоспособности слишком много раз, будет выполнено автоматическое действие по восстановлению. | ||
| autoUpgrade булево | успех | Флаг, указывающий, включено ли автоматическое обновление узлов для пула узлов. Если включено, автоматическое обновление узлов помогает поддерживать узлы в вашем пуле узлов с последней версией Kubernetes. | ||
| upgradeOptions сложное | успех | Указывает параметры автоматического обновления для пула узлов. | ||
| autoUpgradeStartTime строка | успех | Это поле устанавливается при начале обновлений с приблизительным временем начала обновлений в формате RFC3339. | ||
| description строка | успех | Это поле устанавливается при начале обновлений с описанием обновления. | ||
| name строка | успех | Имя пула узлов. | ||
| version строка | успех | Версия 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.8/modules/gcp_container_node_pool_module.html