Spec-Zone.ru › Chef 16

Ресурс google_container_cluster

Синтаксис

Для проверки ресурса Google Cluster используется google_container_cluster

Ресурс беты

Этот ресурс содержит поля беты. Чтобы получить доступ к этим полям, добавьте 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 master

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 КБ. Объект, содержащий список пар «ключ»: значение. Пример: { «name»: «ключ», «mass»: «1.3кг», «count»: «3» }
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.
tags
Список меток экземпляров, применённых ко всем узлам. Метки используются для определения допустимых источников или целей для сетевых брандмауэров и указываются клиентом при создании кластера или пула узлов. Каждая метка в списке должна соответствовать RFC1035.
preemptible
Создаются ли узлы как предварительные виртуальные машины. Для получения дополнительной информации о предварительных виртуальных машинах см.: https://cloud.google.com/compute/docs/instances/preemptible.
accelerators
Список аппаратных ускорителей, которые должны быть подключены к каждому узлу. Дополнительную информацию об аппаратной поддержке GPU см. по ссылке 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-адреса ILB. Этот диапазон не должен перекрываться ни с каким другим используемым диапазоном в сети кластера.
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
Конфигурация для функции автоматического масштабирования горизонтальных под, которая увеличивает или уменьшает количество реплик под контроллера репликации на основе использования ресурсов существующих под.
disabled
Включена ли функция автоматического горизонтального масштабирования под в кластере. При включении она гарантирует запуск под Heapster в кластере, который также используется службой Cloud Monitoring.
kubernetes_dashboard
Настройка панели управления Kubernetes. Этот аддон устарел и будет отключен в версии 1.15. Рекомендуется использовать Консоль Google Cloud для управления и мониторинга ваших кластеров Kubernetes, рабочих нагрузок и приложений.
disabled
Включена ли панель управления Kubernetes для этого кластера.
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 устаревшего типа.
enabled
Включен ли модуль авторизации ABAC для данного кластера. При включении идентификаторы в системе, включая учетные записи служб, узлы и контроллеры, получат статически назначенные разрешения, помимо тех, которые предоставляются настройкой RBAC или IAM.
network_policy
Настройки для функции NetworkPolicy.
provider
Выбранный поставщик NetworkPolicy.

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

  • PROVIDER_UNSPECIFIED
  • CALICO
enabled
Включена ли функция NetworkPolicy в кластере.
default_max_pods_constraint
Максимальное количество под (pods) которые могут быть запущены одновременно на узле в пуле узлов данного кластера. Действует только если кластер создан с поддержкой 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 кластера. Вторичный диапазон будет использован для IP-адресов под.
services_secondary_range_name
Имя вторичного диапазона, который будет использован для блока CIDR сервисов. Вторичный диапазон будет использован для адресов сервисов ClusterIP. Это должен быть существующий вторичный диапазон, связанный с подсетью кластера.
cluster_ipv4_cidr_block
Диапазон IP-адресов для под кластера. Если этот параметр установлен, то cluster.cluster_ipv4_cidr должен быть пустым. Этот параметр применим только когда useIpAliases = true. Оставьте пустым, чтобы выбрать диапазон с настройками по умолчанию. Укажите /netmask (например, /14), чтобы выбрать диапазон со специфической маской подсети.
node_ipv4_cidr_block
Диапазон 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-адрес конечной точки мастер-узла этого кластера. К конечной точке можно получить доступ из интернета по адресу https://имя_пользователя:пароль@конечная_точка/ Посмотрите свойство masterAuth данного ресурса для получения имени пользователя и пароля.
initial_cluster_version
Версия программного обеспечения мастер-узла и kubelets, использовавшиеся в кластере при его первоначальном создании. Версию можно обновлять со временем.
current_master_version
Текущая версия программного обеспечения мастер-узла.
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 части диапазона container CIDR.
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