gcp_container_cluster - Создаёт кластер GCP
Новая версия с 2.6.
Обзор
- Кластер Google Container Engine.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| addons_config | Настройки различных плагинов, доступных для запуска в кластере. | |||
| http_load_balancing | Настройки плагина контроллера балансировки HTTP (L7), который упрощает настройку балансировщиков HTTP для служб в кластере. | |||
| disabled bool |
| Включён ли контроллер балансировки HTTP в кластере. При включении он запускает небольшой pod в кластере, управляющий балансировщиками. | ||
| horizontal_pod_autoscaling | Настройки функции горизонтального масштабирования pod, которая увеличивает или уменьшает количество реплик pod, управляемых контроллером репликации, на основе использования ресурсов существующих pod. | |||
| disabled bool |
| Включена ли функция горизонтального масштабирования pod в кластере. При включении она гарантирует, что в кластере запущен pod Heapster, который также используется службой мониторинга. | ||
| auth_kind обязательно |
| Тип используемых учетных данных. | ||
| cluster_ipv4_cidr | Диапазон IP-адресов контейнерных pod в этом кластере в формате CIDR (например, 10.96.0.0/14). Оставьте пустым, чтобы выбрать автоматически, или укажите блок /14 в 10.0.0.0/8. | |||
| description | Необязательное описание этого кластера. | |||
| initial_node_count обязательно | Количество узлов для создания в этом кластере. Необходимо убедиться, что квота ресурсов Compute Engine достаточна для этого количества экземпляров. Также должны быть доступны квоты на брандмауэры и маршруты. Для запросов это поле следует использовать только вместо объекта «nodePool», так как эти настройки (вместе с «nodeConfig») будут использованы для создания объекта «NodePool» с автоматически сгенерированным именем. Не используйте одновременно это поле и nodePool. | |||
| location | Список локаций Google Compute Engine, в которых должны находиться узлы кластера. | |||
| logging_service |
| Служба журналирования, которую должен использовать кластер для записи журналов. Доступные варианты: logging.googleapis.com — служба Google Cloud Logging. none — журналы из кластера не будут экспортированы. Если поле оставлено пустым, будет использоваться logging.googleapis.com. | ||
| master_auth | Информация об аутентификации для доступа к мастер-точке. | |||
| username | Имя пользователя для HTTP-аутентификации по протоколу Basic на мастер-точке. | |||
| password | Пароль для HTTP-аутентификации по протоколу Basic на мастер-точке. Поскольку мастер-точка открыта для интернета, необходимо создать надёжный пароль. | |||
| cluster_ca_certificate | Публичный сертификат в формате Base64, являющийся корнем доверия для кластера. | |||
| client_certificate | Публичный сертификат в формате Base64, используемый клиентами для аутентификации на конечную точку кластера. | |||
| client_key | Приватный ключ в формате Base64, используемый клиентами для аутентификации на конечную точку кластера. | |||
| monitoring_service |
| Служба мониторинга, которую должен использовать кластер для записи метрик. Доступные варианты: monitoring.googleapis.com — служба Google Cloud Monitoring. none — метрики из кластера не будут экспортированы. Если поле оставлено пустым, будет использоваться monitoring.googleapis.com. | ||
| name | Имя этого кластера. Имя должно быть уникальным в рамках проекта и зоны, и может содержать до 40 символов. Допускаются только строчные буквы, цифры и дефисы. Имя должно начинаться с буквы и заканчиваться цифрой или буквой. | |||
| network | Имя сети Google Compute Engine, к которой подключен кластер. Если не указано, будет использоваться сеть по умолчанию. Для гарантии существования и работоспособности настройте сеть с помощью ресурса «gcompute_network». | |||
| node_config | Параметры, используемые при создании узлов кластера. Для запросов это поле следует использовать только вместо объекта «nodePool», так как эти настройки (вместе с «initialNodeCount») будут использованы для создания объекта «NodePool» с автоматически сгенерированным именем. Не используйте одновременно это поле и nodePool. Для ответов это поле будет заполнено конфигурацией узла первого пула узлов. Если не указано, используются значения по умолчанию. | |||
| machine_type | Имя типа виртуальной машины Google Compute Engine (например, n1-standard-1). Если не указано, используется тип виртуальной машины по умолчанию n1-standard-1. | |||
| disk_size_gb | Размер диска, подключённого к каждому узлу, в ГБ. Минимальный размер диска составляет 10 ГБ. Если не указано, используется размер диска по умолчанию 100 ГБ. | |||
| oauth_scopes | Набор облачных 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, в этом случае будут добавлены необходимые скоупы. | |||
| service_account | Учетная запись Google Cloud Platform Service Account, которая будет использоваться виртуальными машинами узлов. Если учетная запись Service Account не указана, используется учетная запись «default». | |||
| 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 для получения дополнительной информации о предварительно прерываемых виртуальных машинах. | ||
| project | Проект Google Cloud Platform, который необходимо использовать. | |||
| scopes обязательно | Массив используемых скоупов. | |||
| service_account_email | Необязательный адрес электронной почты учетной записи Service Account, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |||
| service_account_file | Путь к файлу JSON учетной записи Service Account, если в качестве типа выбрана serviceaccount. | |||
| состояние обязательно |
| Указывает, должно ли данное объекте существовать в GCP | ||
| подсеть | Имя подсети Google Compute Engine, к которой подключен кластер. | |||
| зона обязательно | Зона развертывания кластера. | |||
Примечания
Примечание
- Для аутентификации можно установить 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: testObject
initial_node_count: 2
master_auth:
username: "cluster_admin"
password: "my-secret-password"
node_config:
machine_type: "n1-standard-4"
disk_size_gb: 500
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
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключи | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| addons_config сложный | успех | Настройки различных дополнений, доступных для запуска в кластере. | ||
| http_load_balancing сложный | успех | Настройка дополнения контроллера HTTP (L7) балансировки нагрузки, которое упрощает настройку балансировщиков HTTP для сервисов в кластере. | ||
| disabled bool | успех | Включен ли контроллер HTTP балансировки нагрузки в кластере. При включении он запускает небольшой под в кластере, который управляет балансировщиками нагрузки. | ||
| horizontal_pod_autoscaling сложный | успех | Настройка функции горизонтального масштабирования под, которая увеличивает или уменьшает количество реплицированных под репликации контроллера в зависимости от использования ресурсов существующих под. | ||
| disabled bool | успех | Включена ли функция горизонтального масштабирования под в кластере. При включении она гарантирует, что в кластере работает под Heapster, который также используется службой мониторинга. | ||
| cluster_ipv4_cidr строка | успех | Диапазон IP-адресов контейнерных под в этом кластере в нотации CIDR (например, 10.96.0.0/14). Оставьте пустым, чтобы автоматически выбрать или укажите блок /14 в 10.0.0.0/8. | ||
| create_time строка | успех | Время создания кластера в формате RFC3339. | ||
| current_master_version строка | успех | Текущая версия программного обеспечения конечной точки мастера. | ||
| current_node_count целое число | успех | Количество узлов в настоящее время в кластере. | ||
| current_node_version строка | успех | Текущая версия программных компонентов узла. Если они в настоящее время имеют несколько версий, потому что находятся в процессе обновления, это отражает минимальную версию всех узлов. | ||
| description строка | успех | Необязательное описание этого кластера. | ||
| endpoint строка | успех | IP-адрес конечной точки мастера этого кластера. К конечной точке можно получить доступ из интернета по адресу https://username:password@endpoint/ . См. свойство masterAuth этого ресурса для получения информации о имени пользователя и пароле. | ||
| expire_time строка | успех | Время автоматического удаления кластера в формате RFC3339. | ||
| initial_cluster_version строка | успех | Версия программного обеспечения конечной точки мастера и kubelet, используемых в кластере при его первом создании. Версия может быть обновлена со временем. | ||
| initial_node_count целое число | успех | Количество узлов для создания в этом кластере. Вы должны убедиться, что ваш квота ресурсов Compute Engine достаточна для этого количества экземпляров. Вам также необходимы доступные квоты брандмауэра и маршрутов. Для запросов это поле следует использовать только вместо объекта "nodePool", поскольку эта настройка (наряду с "nodeConfig") будет использоваться для создания объекта "NodePool" с автоматически сгенерированным именем. Не используйте это и nodePool одновременно. | ||
| location список | успех | Список расположений Google Compute Engine, в которых должны располагаться узлы кластера. | ||
| logging_service строка | успех | Служба журналирования, которую должен использовать кластер для записи журналов. Доступные варианты: logging.googleapis.com — служба Google Cloud Logging. none — журналы из кластера не будут экспортироваться. Если оставлено пустым, будет использоваться logging.googleapis.com. | ||
| master_auth сложный | успех | Информация об аутентификации для доступа к конечной точке мастера. | ||
| username строка | успех | Имя пользователя для использования HTTP-аутентификации по протоколу Basic для конечной точки мастера. | ||
| password строка | успех | Пароль для использования HTTP-аутентификации по протоколу Basic для конечной точки мастера. Поскольку конечная точка мастера открыта для интернета, вам следует создать надежный пароль. | ||
| cluster_ca_certificate строка | успех | Публичный сертификат в кодировке Base64, являющийся корнем доверия для кластера. | ||
| client_certificate строка | успех | Публичный сертификат в кодировке Base64, используемый клиентами для аутентификации на конечной точке кластера. | ||
| client_key строка | успех | Приватный ключ в кодировке Base64, используемый клиентами для аутентификации на конечной точке кластера. | ||
| monitoring_service строка | успех | Служба мониторинга, которую должен использовать кластер для записи метрик. Доступные варианты: monitoring.googleapis.com — служба Google Cloud Monitoring. none — метрики из кластера не будут экспортироваться. Если оставлено пустым, будет использоваться monitoring.googleapis.com. | ||
| name строка | успех | Имя этого кластера. Имя должно быть уникальным в данном проекте и зоне и может содержать до 40 символов. Допускаются только строчные буквы, цифры и дефисы. Должно начинаться с буквы. Должно заканчиваться цифрой или буквой. | ||
| network строка | успех | Имя сети Google Compute Engine, к которой подключен кластер. Если не указано, будет использоваться сеть по умолчанию. Для обеспечения ее существования и функционирования настройте сеть с помощью ресурса 'gcompute_network'. | ||
| node_config сложный | успех | Параметры, используемые при создании узлов кластера. Для запросов это поле следует использовать только вместо объекта "nodePool", поскольку эта настройка (наряду с "initialNodeCount") будет использоваться для создания объекта "NodePool" с автоматически сгенерированным именем. Не используйте это и nodePool одновременно. Для ответов это поле будет заполнено конфигурацией узла первого пула узлов. Если не указано, используются значения по умолчанию. | ||
| 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 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 для получения дополнительной информации о прерывимых виртуальных машинах. | ||
| node_ipv4_cidr_size int | success | Размер адресного пространства на каждом узле для размещения контейнеров. Это выделяется из диапазона container_ipv4_cidr. | ||
| services_ipv4_cidr str | success | Диапазон IP-адресов служб Kubernetes в этом кластере в нотации CIDR (например, 1.2.3.4/29). Адреса служб обычно помещаются в последнюю /16 из диапазона container CIDR. | ||
| subnetwork str | success | Имя подсети Google Compute Engine, к которой подключен кластер. | ||
| 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_cluster_module.html