Spec-Zone.ru › Ansible

Модуль kubernetes.core.k8s_service — управление сервисами в Kubernetes

Примечание

Этот модуль входит в коллекцию kubernetes.core (версия 6.4.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install kubernetes.core. Для использования этого модуля необходимы дополнительные зависимости; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: kubernetes.core.k8s_service.

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Использует Kubernetes Python SDK для управления сервисами в Kubernetes

Примечание

Для этого модуля существует соответствующий плагин действий.

Требования

На хосте, выполняющем этот модуль, необходимы следующие компоненты.

  • python >= 3.9
  • kubernetes >= 24.2.0

Параметры

Параметр

Комментарии

api_key

string

Токен для аутентификации в API. Можно также задать с помощью переменной окружения K8S_AUTH_API_KEY.

apply

boolean

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

apply лучше работает с сервисами, чем ‘force=yes’

несовместим с merge_type

Варианты:

  • false ← (по умолчанию)
  • true

ca_cert

aliases: ssl_ca_cert

path

Путь к сертификату центра сертификации, используемому для аутентификации в API. Чтобы избежать ошибок проверки сертификата, необходимо указать полную цепочку сертификатов. Можно также задать с помощью переменной окружения K8S_AUTH_SSL_CA_CERT.

client_cert

aliases: cert_file

path

Путь к сертификату, используемому для аутентификации в API. Можно также задать с помощью переменной окружения K8S_AUTH_CERT_FILE.

client_key

aliases: key_file

path

Путь к файлу ключа, используемому для аутентификации в API. Можно также задать с помощью переменной окружения K8S_AUTH_KEY_FILE.

context

string

Имя контекста из файла конфигурации. Можно также задать с помощью переменной окружения K8S_AUTH_CONTEXT.

force

boolean

Если задано значение yes, а параметр state имеет значение present, существующий объект будет заменён.

Варианты:

  • false ← (по умолчанию)
  • true

host

string

URL для доступа к API. Можно также задать с помощью переменной окружения K8S_AUTH_HOST.

impersonate_groups

list / elements=string

добавлено в kubernetes.core 2.3.0

Группа или группы, от имени которых выполняется операция.

Можно также задать с помощью переменной окружения K8S_AUTH_IMPERSONATE_GROUPS. Пример: Group1,Group2

impersonate_user

string

добавлено в kubernetes.core 2.3.0

Имя пользователя, от имени которого выполняется операция.

Можно также задать с помощью переменной окружения K8S_AUTH_IMPERSONATE_USER.

kubeconfig

any

Путь к существующему файлу конфигурации Kubernetes. Если путь не указан и не заданы другие параметры подключения, клиент Kubernetes попытается загрузить файл конфигурации по умолчанию из ~/.kube/config. Можно также задать с помощью переменной окружения K8S_AUTH_KUBECONFIG.

Можно указать несколько файлов конфигурации Kubernetes, используя разделитель ‘;’ в Windows или ‘:’ в других операционных системах.

Конфигурацию Kubernetes можно передать в виде словаря. Для этой возможности требуется версия клиента python kubernetes >= 17.17.0. Добавлено в версии 2.2.0.

merge_type

list / elements=string

Заменять ли стандартный способ объединения при применении исправлений на указанный тип. По умолчанию обычно используется стратегическое объединение.

Например, пользовательские определения ресурсов, как правило, нельзя обновить с помощью обычного стратегического объединения. Если вы видите сообщение «strategic merge patch format is not supported», можно использовать merge

См. https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/#use-a-json-merge-patch-to-update-a-deployment

Если указано несколько значений merge_type, типы объединения проверяются по порядку

По умолчанию используется ['strategic-merge', 'merge']. Это оптимальный вариант, если одни и те же параметры используются для типов ресурсов, сочетающих пользовательские и встроенные ресурсы.

Варианты:

  • "json"
  • "merge"
  • "strategic-merge"

name

string / обязательный

Имя объекта Service.

namespace

string / обязательный

Пространство имён объекта Service.

no_proxy

string

добавлено в kubernetes.core 2.3.0

Список хостов/доменов/IP-адресов/CIDR, разделённых запятыми, для которых не следует использовать прокси. Можно также задать с помощью переменной окружения K8S_AUTH_NO_PROXY.

Обратите внимание: этот модуль не использует стандартные настройки прокси из окружения (например, NO_PROXY).

Для этой возможности требуется kubernetes>=19.15.0. Если версия библиотеки kubernetes ниже 19.15.0, модуль завершится с ошибкой, даже если no_proxy задан корректно.

Пример значения: “localhost,.local,.example.com,127.0.0.1,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16”

password

string

Пароль для аутентификации в API. Можно также задать с помощью переменной окружения K8S_AUTH_PASSWORD.

Описание параметра username содержит сведения о случаях, когда применим этот параметр.

persist_config

boolean

Сохранять ли токены обновления kube config. Можно также задать с помощью переменной окружения K8S_AUTH_PERSIST_CONFIG.

Когда контекст k8s использует учётные данные пользователя с токенами обновления (например, oidc или gke/gcloud auth), библиотека Python-клиента k8s обновляет токен, но по умолчанию не сохраняет его. Поэтому срок действия старого токена обновления может истечь, и следующая попытка аутентификации завершится ошибкой. Если задать этому параметру значение true, клиенту Python для k8s будет предложено сохранить новый токен обновления в файл kube config.

По умолчанию — false.

Обратите внимание: текущая версия библиотеки Python-клиента k8s пока не поддерживает установку этого параметра в True.

Исправление для этой библиотеки k8s находится здесь: https://github.com/kubernetes-client/python-base/pull/169

Варианты:

  • false
  • true

ports

list / elements=dictionary

Список портов для открытия.

https://kubernetes.io/docs/concepts/services-networking/service/#multi-port-services

proxy

string

URL HTTP-прокси, используемого для подключения. Можно также задать с помощью переменной окружения K8S_AUTH_PROXY.

Обратите внимание: этот модуль не использует стандартные настройки прокси из окружения (например, HTTP_PROXY).

proxy_headers

dictionary

добавлено в kubernetes.core 2.0.0

Заголовок, используемый для HTTP-прокси.

Документация доступна здесь: https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html?highlight=proxy_headers#urllib3.util.make_headers.

basic_auth

string

Имя пользователя и пароль, разделённые двоеточием, для заголовка базовой аутентификации.

Можно также задать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_BASIC_AUTH.

proxy_basic_auth

string

Имя пользователя и пароль, разделённые двоеточием, для заголовка базовой аутентификации прокси.

Можно также задать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH.

user_agent

string

Строка, задающая желаемый user-agent, например foo/1.0.

Можно также задать с помощью переменной окружения K8S_AUTH_PROXY_HEADERS_USER_AGENT.

resource_definition

aliases: definition, inline

string

При создании или обновлении объекта передайте его корректное описание в формате YAML (в виде строки, списка или словаря).

ПРИМЕЧАНИЕ: значения kind, api_version, name и namespace будут заменены соответствующими значениями из переданного параметра resource_definition.

selector

dictionary

Селекторы меток определяют объекты, к которым должен применяться этот сервис.

https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/

src

path

Укажите путь к файлу, содержащему корректное описание объекта или объектов в формате YAML, которые нужно создать или обновить. Несовместим с resource_definition. ПРИМЕЧАНИЕ: значения kind, api_version, name и namespace будут заменены соответствующими значениями из конфигурации, прочитанной из файла src.

Чтение выполняется из локальной файловой системы. Чтобы прочитать файл из файловой системы контроллера Ansible, включая файлы с хранилищем секретов, используйте плагин поиска файла или шаблона вместе с фильтром from_yaml и передайте результат в resource_definition. См. примеры ниже.

URL файлов манифестов, которые можно использовать для создания ресурса. Добавлено в версии 2.4.0.

Несовместим с параметром template в модуле kubernetes.core.k8s.

state

string

Определяет, следует ли создать, изменить или удалить объект. Если задано значение present, объект будет создан, если он ещё не существует. Если задано значение absent, существующий объект будет удалён. Если задано значение present, существующий объект будет изменён, если его атрибуты отличаются от указанных в resource_definition или src.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

type

string

Указывает тип создаваемого сервиса.

См. https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

Варианты:

  • "NodePort"
  • "ClusterIP"
  • "LoadBalancer"
  • "ExternalName"

username

string

Имя пользователя для аутентификации в API. Можно также задать с помощью переменной окружения K8S_AUTH_USERNAME.

Обратите внимание: этот параметр работает только с кластерами, настроенными на использование базовой HTTP-аутентификации. Если в кластере используется другой способ аутентификации (например, OAuth2 в OpenShift), этот параметр не будет работать ожидаемым образом. В таком случае обратитесь к модулю community.okd.k8s_auth: возможно, он подойдёт для вашей задачи.

validate_certs

aliases: verify_ssl

boolean

Проверять ли SSL-сертификаты сервера API. Можно также задать с помощью переменной окружения K8S_AUTH_VERIFY_SSL.

Варианты:

  • false
  • true

Примечания

Примечание

  • Чтобы избежать ошибок проверки SSL-сертификата, когда validate_certs имеет значение True, необходимо указать полную цепочку сертификатов сервера API через ca_cert или в файле kubeconfig.

Примеры

- name: Expose https port with ClusterIP
  kubernetes.core.k8s_service:
    state: present
    name: test-https
    namespace: default
    ports:
    - port: 443
      protocol: TCP
    selector:
      key: special

- name: Expose https port with ClusterIP using spec
  kubernetes.core.k8s_service:
    state: present
    name: test-https
    namespace: default
    inline:
      spec:
        ports:
        - port: 443
          protocol: TCP
        selector:
          key: special

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:

Ключ

Описание

result

complex

Созданный, изменённый или иным образом существующий объект Service. При удалении объекта значение будет пустым.

Возвращается: при успешном выполнении

api_version

string

Версионированная схема представления объекта.

Возвращается: при успешном выполнении

kind

string

Всегда ‘Service’.

Возвращается: при успешном выполнении

metadata

complex

Стандартные метаданные объекта: имя, пространство имён, аннотации, метки и т. д.

Возвращается: при успешном выполнении

spec

complex

Специфические атрибуты объекта. Их состав зависит от значений api_version и kind.

Возвращается: при успешном выполнении

status

complex

Текущие сведения о состоянии объекта.

Возвращается: при успешном выполнении

Авторы

  • Команда KubeVirt (@kubevirt)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/kubernetes/core/k8s_service_module.html

Spec-Zone.ru

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