Spec-Zone.ru › Chef 17

google_container_cluster ресурс

[править на GitHub]

Синтаксис

Используется google_container_cluster для проверки ресурса кластера Google.

Ресурс бета-версии

Этот ресурс имеет доступные поля бета-версии. Для получения этих полей включите beta: true в конструктор ресурса.

Примеры

describe google_container_cluster(project: 'chef-gcp-inspec', location: 'europe-west2-a', name: 'gcp-inspec-kube-cluster') do
  it { should exist }
  its('locations.sort'){ should cmp [ 'europe-west2-a', 'europe-west2-b', 'europe-west2-c' ].sort }

  its('master_auth.username') { should eq 'gcp-inspec-kube-admin' }
end

describe google_container_cluster(project: 'chef-gcp-inspec', location: 'europe-west2-a', name: 'nonexistent') do
  it { should_not exist }
end

Проверка, что кластер контейнеров GCP находится в определенном состоянии (например, “RUNNING”)

describe google_container_cluster(project: 'chef-inspec-gcp', location: 'europe-west2-a', name: 'inspec-gcp-kube-cluster') do
  its('status') { should eq 'RUNNING' }
end

Проверка, что у кластера контейнеров GCP ожидаемый kube мастер user/password

describe google_container_cluster(project: 'chef-inspec-gcp', location: 'europe-west2-a', name: 'inspec-gcp-kube-cluster') do
  its('master_auth.username'){ should eq "user_name"}
  its('master_auth.password'){ should eq "choose_something_strong"}
end

Проверка, что местоположения, где работает кластер контейнеров GCP, соответствуют ожидаемым

describe google_container_cluster(project: 'chef-inspec-gcp', location: 'europe-west2-a', name: 'inspec-gcp-kube-cluster') do
  its('locations.sort'){should cmp ["europe-west2-a", "europe-west2-b", "europe-west2-c"].sort}
end

Проверка настроек сети и подсети кластера контейнеров GCP

describe google_container_cluster(project: 'chef-inspec-gcp', location: 'europe-west2-a', name: 'inspec-gcp-kube-cluster') do
  its('network'){should eq "default"}
  its('subnetwork'){should eq "default"}
end

Проверка настроек конфигурации пула узлов кластера контейнеров GCP

describe google_container_cluster(project: 'chef-inspec-gcp', location: 'europe-west2-a', name: 'inspec-gcp-kube-cluster') do
  its('node_config.disk_size_gb'){should eq 100}
  its('node_config.image_type'){should eq "COS"}
  its('node_config.machine_type'){should eq "n1-standard-1"}
  its('node_ipv4_cidr_size'){should eq 24}
  its('node_pools.count'){should eq 1}
end

Свойства

Свойства, которые можно получить из ресурса google_container_cluster:

name
Имя этого кластера. Имя должно быть уникальным в рамках этого проекта и местоположения, и может содержать до 40 символов. Допускаются только строчные буквы, цифры и дефисы. Имя должно начинаться с буквы и заканчиваться цифрой или буквой.
description
Необязательное описание этого кластера.
initial_node_count
Количество узлов, которые нужно создать в этом кластере. Необходимо убедиться, что квота Compute Engine ресурсов достаточна для этого количества экземпляров. Также необходимо иметь доступные квоты для брандмауэра и маршрутов. Для запросов это поле следует использовать только вместо объекта «nodePool», поскольку эта конфигурация (вместе с «nodeConfig») будет использована для создания объекта «NodePool» с автоматически сгенерированным именем. Не используйте это поле и nodePool одновременно. Это поле устарело. Пожалуйста, используйте nodePool.initial_node_count вместо него.
node_config
Параметры, используемые при создании узлов кластера. Для запросов это поле следует использовать только вместо объекта «nodePool», поскольку эта конфигурация (вместе с «initialNodeCount») будет использована для создания объекта «NodePool» с автоматически сгенерированным именем. Не используйте это поле и nodePool одновременно. Для ответов это поле будет заполнено конфигурацией узлов первого пула узлов. Если не указано, используются значения по умолчанию.
machine_type
Имя типа машины Google Compute Engine (например, n1-standard-1). Если не указано, используется тип машины по умолчанию n1-standard-1.
disk_size_gb
Размер диска, подключенного к каждому узлу, указанный в ГБ. Минимальный размер диска составляет 10 ГБ. Если не указано, размер диска по умолчанию составляет 100 ГБ.
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, в этом случае будут добавлены необходимые области видимости.
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
Указывают ли узлы создаются как преемственные виртуальные машины. См.: https://cloud.google.com/compute/docs/instances/preemptible для получения дополнительной информации о преемственных виртуальных машинах.
accelerators
Список аппаратных ускорителей, которые нужно подключить к каждому узлу. См. https://cloud.google.com/compute/docs/gpus для получения дополнительной информации об ускорителях графических процессоров.
accelerator_count
Количество карт ускорителей, выводимых на экземпляр.
accelerator_type
Имя ресурса типа ускорителя.
disk_type
Тип диска, подключенного к каждому узлу (например, «pd-standard» или «pd-ssd»). Если не указано, тип диска по умолчанию — «pd-standard».
min_cpu_platform
Минимальная платформа процессора, которая должна использоваться этим экземпляром. Экземпляр может быть запланирован на указанной или более новой платформе процессора.
taints
Список меток Kubernetes, которые должны быть применены к каждому узлу. Для получения дополнительной информации, включая использование и допустимые значения, см.: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
key
Ключ для метки.
value
Значение для метки.
effect
Эффект для метки

Возможные значения:

  • EFFECT_UNSPECIFIED
  • NO_SCHEDULE
  • PREFER_NO_SCHEDULE
  • NO_EXECUTE
master_auth
Информация об аутентификации для доступа к конечному пункту узла.
username
Имя пользователя для HTTP-аутентификации по принципу «имя пользователя/пароль» для конечного пункта узла.
password
Пароль для HTTP-аутентификации по принципу «имя пользователя/пароль» для конечного пункта узла. Поскольку конечный пункт узла доступен в интернете, вы должны создать надежный пароль с минимальной длиной 16 символов.
client_certificate_config
Конфигурация для аутентификации с помощью сертификата клиента в кластере. Для кластеров до версии 1.12, если конфигурация не указана, выдаётся сертификат клиента.
issue_client_certificate
Выдать сертификат клиента.
cluster_ca_certificate
Публичный сертификат в кодировке Base64, являющийся корнем доверия для кластера.
client_certificate
Публичный сертификат в кодировке Base64, используемый клиентами для аутентификации с конечным пунктом кластера.
client_key
Приватный ключ в кодировке Base64, используемый клиентами для аутентификации с конечным пунктом кластера.
logging_service
Служба ведения журнала, которую должен использовать кластер для записи журналов. В настоящее время доступны следующие варианты: logging.googleapis.com — служба Google Cloud Logging. none — журналы из кластера не будут экспортироваться. Если оставлено пустым, будет использоваться logging.googleapis.com.

Возможные значения:

  • logging.googleapis.com
  • none
monitoring_service
Служба мониторинга, которую должен использовать кластер для записи метрик. В настоящее время доступны следующие варианты: monitoring.googleapis.com — служба Google Cloud Monitoring. none — метрики из кластера не будут экспортироваться. Если оставлено пустым, будет использоваться monitoring.googleapis.com.

Возможные значения:

  • monitoring.googleapis.com
  • none
network
Имя сети Google Compute Engine, к которой подключен кластер. Если не указано, будет использоваться сеть по умолчанию.
private_cluster_config
Конфигурация для частного кластера.
enable_private_nodes
Указывают ли узлы иметь только внутренние IP-адреса. При включении всем узлам назначаются только частные адреса RFC 1918, и они взаимодействуют с узлом-мастером через частную сеть.
enable_private_endpoint
Используется ли внутренний IP-адрес узла-мастера в качестве конечного пункта кластера.
master_ipv4_cidr_block
Диапазон IP-адресов в нотации CIDR, который следует использовать для размещенной сети узла-мастера. Этот диапазон будет использован для назначения внутренних IP-адресов узлу-мастеру или группе узлов-мастеров, а также для VIP-адреса балансировщика нагрузки. Этот диапазон не должен пересекаться с другими используемыми диапазонами в сети кластера.
private_endpoint
Внутренний IP-адрес конечного пункта узла-мастера этого кластера.
public_endpoint
Внешний IP-адрес конечного пункта узла-мастера этого кластера.
cluster_ipv4_cidr
Диапазон IP-адресов контейнерных под в этом кластере в нотации CIDR (например, 10.96.0.0/14). Оставьте пустым, чтобы выбрать один автоматически, или укажите блок /14 в 10.0.0.0/8.
enable_tpu
(Необязательно) Включить ресурсы Cloud TPU в этом кластере. См. официальную документацию - https://cloud.google.com/tpu/docs/kubernetes-engine-setup
tpu_ipv4_cidr_block
Диапазон IP-адресов Cloud TPU в этом кластере в нотации CIDR (например, 1.2.3.4/29).
addons_config
Конфигурации для различных дополнений, доступных для запуска в кластере.
http_load_balancing
Конфигурация дополнения контроллера балансировки нагрузки HTTP (L7), что упрощает настройку балансировщиков нагрузки HTTP для служб в кластере.
disabled
Включен ли контроллер балансировки нагрузки HTTP в кластере. При включении он запускает небольшой pod в кластере, который управляет балансировщиками нагрузки.
horizontal_pod_autoscaling
Конфигурация функции горизонтального масштабирования pod, которая увеличивает или уменьшает количество реплицируемых pod контроллером репликации на основе использования ресурсов существующих pod.
disabled
Включена ли функция горизонтального масштабирования pod в кластере. При включении она гарантирует, что pod Heapster запущен в кластере, который также используется службой Google Cloud Monitoring.
kubernetes_dashboard
Настройка Kubernetes Dashboard. Этот модуль устарел и будет отключен в версии 1.15. Рекомендуется использовать консоль Google Cloud для управления и мониторинга кластеров Kubernetes, рабочих нагрузок и приложений.
disabled
Включен ли Kubernetes Dashboard для данного кластера.
network_policy_config
Настройка NetworkPolicy. Этот параметр отслеживает только включение/выключение модуля в Мастер-узле, не отслеживая включение NetworkPolicy на узлах.
disabled
Включена ли NetworkPolicy для этого кластера.
subnetwork
Имя подсети Google Compute Engine, к которой подключен кластер.
locations
Список зон Google Compute Engine, в которых должны располагаться узлы кластера.
resource_labels
Метки ресурсов кластера для аннотирования связанных ресурсов Google Compute Engine.
label_fingerprint
Отпечаток набора меток для этого кластера.
legacy_abac
Настройка режима авторизации ABAC legacy.
enabled
Включен ли ABAC авторизатор для данного кластера. При включении, идентификаторам системы, включая учетные записи служб, узлы и контроллеры, будут статически предоставлены разрешения помимо тех, которые предоставляются настройкой RBAC или IAM.
network_policy
Настройки для функции NetworkPolicy.
provider
Выбранный поставщик NetworkPolicy.

Возможные значения:

  • PROVIDER_UNSPECIFIED
  • CALICO
enabled
Включена ли функция NetworkPolicy в кластере.
default_max_pods_constraint
Предельное ограничение на максимальное количество под, которые могут выполняться одновременно на узле в пуле узлов этого кластера. Учитывается только если кластер создан с поддержкой IP Alias.
max_pods_per_node
Ограничение, накладываемое на максимальное количество под на узел.
ip_allocation_policy
Настройки для управления распределением IP-адресов в кластере
use_ip_aliases
Используются ли alias IP-адреса для IP-адресов под в кластере
create_subnetwork
Создается ли автоматически новая подсеть для кластера
subnetwork_name
Настраиваемое имя подсети, которое будет использоваться, если createSubnetwork имеет значение true. Если этот параметр пуст, то для новой подсети будет выбрано автоматическое имя.
cluster_secondary_range_name
Имя дополнительного диапазона, которое будет использоваться для блока CIDR кластера. Дополнительный диапазон будет использоваться для адресов под.
services_secondary_range_name
Имя дополнительного диапазона, которое будет использоваться для блока CIDR сервисов. Дополнительный диапазон будет использоваться для адресов сервисов ClusterIPs.
cluster_ipv4_cidr_block
Диапазон IP-адресов для под кластера. Если этот параметр установлен, то cluster.cluster_ipv4_cidr должен быть пустым. Данный параметр применим только при useIpAliases = true. Укажите пустое значение, чтобы использовать диапазон с размерами по умолчанию. Укажите /netmask (например, /14), чтобы использовать диапазон с заданной маской сети.
node_ipv4_cidr_block
Диапазон IP-адресов IP-адресов экземпляров в этом кластере. Это применимо только если createSubnetwork имеет значение true. Укажите пустое значение, чтобы использовать диапазон с размерами по умолчанию. Укажите /netmask (например, /14), чтобы использовать диапазон с заданной маской сети.
services_ipv4_cidr_block
Диапазон IP-адресов сервисов в этом кластере. Если пусто, диапазон будет автоматически выбран с размерами по умолчанию. Этот параметр применим только при useIpAliases = true. Укажите пустое значение, чтобы использовать диапазон с размерами по умолчанию. Укажите /netmask (например, /14), чтобы использовать диапазон с заданной маской сети.
tpu_ipv4_cidr_block
Диапазон IP-адресов Cloud TPUs в этом кластере. Если не указано, диапазон будет автоматически выбран с размерами по умолчанию. Этот параметр применим только при useIpAliases = true. Если не указано, диапазон будет использовать размер по умолчанию. Укажите /netmask (например, /14), чтобы использовать диапазон с заданной маской сети.
endpoint
IP-адрес конечной точки Master этого кластера. Конечная точка доступна из интернета по адресу https://имя_пользователя:пароль@конечная_точка/. Смотрите свойство masterAuth этого ресурса для получения имени пользователя и пароля.
initial_cluster_version
Версия программного обеспечения Master-узла и kubelet, используемые в кластере при его первом создании. Версию можно обновлять со временем.
current_master_version
Текущая версия программного обеспечения Master-узла.
current_node_version
Текущая версия программного обеспечения компонентов узлов. Если они находятся на разных версиях из-за процесса обновления, это отражает минимальную версию всех узлов.
create_time
Время создания кластера в формате RFC3339.
status
Текущий статус данного кластера.

Возможные значения:

  • STATUS_UNSPECIFIED
  • PROVISIONING
  • RUNNING
  • RECONCILING
  • STOPPING
  • ERROR
  • DEGRADED
status_message
Дополнительная информация о текущем статусе кластера, если доступна.
node_ipv4_cidr_size
Размер адресного пространства на каждом узле для размещения контейнеров. Он выделяется из диапазона container_ipv4_cidr.
services_ipv4_cidr
Диапазон IP-адресов Kubernetes сервисов в этом кластере в формате CIDR (например, 1.2.3.4/29). Адреса сервисов обычно размещаются в последней /16 части диапазона контейнеров.
current_node_count
Количество узлов в кластере в настоящий момент.
expire_time
Время автоматического удаления кластера в формате RFC3339.
conditions
Условий, которые привели к текущему состоянию кластера.
code
Представление условия в машиночитаемом формате.
message
Представление условия в удобочитаемом формате.
master_authorized_networks_config
Настройки для управления распределением IP-адресов в кластере
enabled
Включены ли авторизованные сети мастер-узла.
cidr_blocks
Определите до 50 внешних сетей, которые могут получить доступ к мастер-узлу Kubernetes через HTTPS.
display_name
Необязательное поле для идентификации блоков CIDR.
cidr_block
Блок, указанный в формате CIDR.
node_pools
Пулы узлов, принадлежащие этому кластеру.
name
Имя пула узлов.
pod_security_policy_config
(Только бета-версия) Настройка функции PodSecurityPolicy.
enabled
При включении под должны соответствовать PodSecurityPolicy для создания.
binary_authorization
Настройка функции BinaryAuthorization.
enabled
При включении все изображения контейнеров будут проверены с помощью Binary Authorization.
location
Расположение, где развернут кластер.

Разрешения GCP

Убедитесь, что API Kubernetes Engine включен для текущего проекта.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_container_cluster/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API