kubernetes.core.k8s_service 模块 – 在 Kubernetes 上管理服务
注意
此模块是 kubernetes.core 集合 (版本 5.0.0) 的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装它,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install kubernetes.core
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定:kubernetes.core.k8s_service
。
概要
使用 Kubernetes Python SDK 管理 Kubernetes 上的服务
注意
此模块具有相应的 action 插件。
要求
执行此模块的主机需要以下要求。
python >= 3.9
kubernetes >= 24.2.0
参数
参数 |
注释 |
---|---|
用于向 API 进行身份验证的令牌。也可以通过 K8S_AUTH_API_KEY 环境变量指定。 |
|
与 选项
|
|
用于向 API 进行身份验证的 CA 证书的路径。必须提供完整的证书链以避免证书验证错误。也可以通过 K8S_AUTH_SSL_CA_CERT 环境变量指定。 |
|
用于向 API 进行身份验证的证书的路径。也可以通过 K8S_AUTH_CERT_FILE 环境变量指定。 |
|
用于向 API 进行身份验证的密钥文件的路径。也可以通过 K8S_AUTH_KEY_FILE 环境变量指定。 |
|
配置文件中找到的上下文名称。也可以通过 K8S_AUTH_CONTEXT 环境变量指定。 |
|
如果设置为 选项
|
|
提供用于访问 API 的 URL。也可以通过 K8S_AUTH_HOST 环境变量指定。 |
|
要为操作模拟的用户组。 也可以通过 K8S_AUTH_IMPERSONATE_GROUPS 环境变量指定。示例:Group1,Group2 |
|
要为操作模拟的用户名。 也可以通过 K8S_AUTH_IMPERSONATE_USER 环境变量指定。 |
|
现有 Kubernetes 配置文件的路径。如果没有提供,并且没有提供其他连接选项,Kubernetes 客户端将尝试从 ~/.kube/config 加载默认配置文件。也可以通过 K8S_AUTH_KUBECONFIG 环境变量指定。 可以使用分隔符“;” (Windows 平台)或“:”(其他平台)提供多个 Kubernetes 配置文件。 Kubernetes 配置可以作为字典提供。此功能需要 python kubernetes 客户端版本 >= 17.17.0。在 2.2.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” |
|
提供用于通过 API 进行身份验证的密码。也可以通过 K8S_AUTH_PASSWORD 环境变量指定。 请阅读 |
|
是否保存 kube config 刷新令牌。也可以通过 K8S_AUTH_PERSIST_CONFIG 环境变量指定。 当 k8s 上下文使用带有刷新令牌的用户凭据(如 oidc 或 gke/gcloud auth)时,令牌由 k8s python 客户端库刷新,但默认情况下不会保存。因此,旧的刷新令牌可能会过期,下次身份验证可能会失败。将此标志设置为 true 将告诉 k8s python 客户端将新的刷新令牌保存到 kube config 文件。 默认为 false。 请注意,当前版本的 k8s python 客户端库尚不支持将此标志设置为 True。 此 k8s python 库的修复程序位于:https://github.com/kubernetes-client/python-base/pull/169 选项
|
|
用于连接的 HTTP 代理的 URL。也可以通过 K8S_AUTH_PROXY 环境变量指定。 请注意,此模块不会从环境中获取典型的代理设置(例如 HTTP_PROXY)。 |
|
用于基本身份验证标头的冒号分隔的用户名:密码。 也可以通过 K8S_AUTH_PROXY_HEADERS_BASIC_AUTH 环境变量指定。 |
|
用于代理基本身份验证标头的冒号分隔的用户名:密码。 也可以通过 K8S_AUTH_PROXY_HEADERS_PROXY_BASIC_AUTH 环境变量指定。 |
|
表示所需用户代理的字符串,例如 foo/1.0。 也可以通过 K8S_AUTH_PROXY_HEADERS_USER_AGENT 环境变量指定。 |
|
在创建或更新对象时,提供有效的 YAML 定义(作为字符串、列表或字典)。 注意:kind、api_version、name 和 namespace 将被提供的 resource_definition 中找到的相应值覆盖。 |
|
标签选择器标识此服务应应用于的对象。 https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/labels/ |
|
提供包含对象或要创建或更新的对象的有效 YAML 定义的文件的路径。与 resource_definition 互斥。注意:kind、api_version、name 和 namespace 将被从 src 文件读取的配置中找到的相应值覆盖。 从本地文件系统读取。要从 Ansible 控制器文件系统读取,包括保管库文件,请使用文件查找插件或模板查找插件,结合 from_yaml 过滤器,并将结果传递给 resource_definition。请参见下面的示例。 可用于创建资源的清单文件的 URL。在 2.4.0 版本中添加。 在 kubernetes.core.k8s 模块的情况下,与 template 互斥。 |
|
确定是否应创建、修补或删除对象。当设置为 选项
|
|
指定要创建的服务类型。 选项
|
|
提供用于通过 API 进行身份验证的用户名。也可以通过 K8S_AUTH_USERNAME 环境变量指定。 请注意,这仅适用于配置为使用 HTTP 基本身份验证的集群。如果您的集群具有不同的身份验证形式(例如 OpenShift 中的 OAuth2),则此选项将无法按预期工作,您应该查看 community.okd.k8s_auth 模块,因为它可能满足您的需求。 |
|
是否验证 API 服务器的 SSL 证书。也可以通过 K8S_AUTH_VERIFY_SSL 环境变量指定。 选项
|
注释
注意
当
validate_certs
为 True 时,为避免 SSL 证书验证错误,必须通过ca_cert
或 kubeconfig 文件提供 API 服务器的完整证书链。
示例
- 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
返回值
常见的返回值已在 此处 记录,以下是此模块独有的字段
键 |
描述 |
---|---|
已创建、已修补或其他存在的服务对象。在删除的情况下将为空。 返回:成功 |
|
此对象表示的版本化模式。 返回:成功 |
|
始终为“Service”。 返回:成功 |
|
标准对象元数据。包括名称、命名空间、注释、标签等。 返回:成功 |
|
对象的特定属性。将根据 api_version 和 kind 而有所不同。 返回:成功 |
|
对象的当前状态详细信息。 返回:成功 |