google.cloud.gcp_container_cluster_info 模块 – 收集 GCP 集群的信息

注意

此模块是 google.cloud 集合(版本 1.4.1)的一部分。

如果您正在使用 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install google.cloud。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:google.cloud.gcp_container_cluster_info

注意

由于违反了 Ansible 包含要求,google.cloud 集合将从 Ansible 12 中删除。该集合有 未解决的健全性测试失败。有关更多信息,请参阅 讨论线程

概要

  • 收集 GCP 集群的信息

要求

执行此模块的主机需要以下要求。

  • python >= 2.6

  • requests >= 2.18.4

  • google-auth >= 1.3.0

参数

参数

注释

access_token

字符串

如果凭据类型为 accesstoken,则为 OAuth2 访问令牌。

auth_kind

字符串 / 必需

使用的凭据类型。

选项

  • "application"

  • "machineaccount"

  • "serviceaccount"

  • "accesstoken"

env_type

字符串

指定您在其中运行此模块的 Ansible 环境。

除非您知道自己在做什么,否则不应设置此项。

这只会更改任何 API 请求的用户代理字符串。

location

别名:region, zone

字符串 / 必需

部署集群的位置。

project

字符串

要使用的 Google Cloud Platform 项目。

scopes

列表 / 元素=字符串

要使用的作用域数组

service_account_contents

jsonarg

服务帐户 JSON 文件的内容,可以是字典或表示它的 JSON 字符串。

service_account_email

字符串

如果选择了 machineaccount 并且用户不希望使用默认电子邮件,则为可选的服务帐户电子邮件地址。

service_account_file

路径

如果选择 serviceaccount 作为类型,则为服务帐户 JSON 文件的路径。

注意

注意

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_FILE 环境变量设置 service_account_file。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_CONTENTS 环境变量设置 service_account_contents。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_EMAIL 环境变量设置 service_account_email。

  • 对于身份验证,您可以使用 GCP_ACCESS_TOKEN 环境变量设置 access_token。

  • 对于身份验证,您可以使用 GCP_AUTH_KIND 环境变量设置 auth_kind。

  • 对于身份验证,您可以使用 GCP_SCOPES 环境变量设置 scopes。

  • 如果未设置 playbook 值,则只会使用环境变量值。

  • service_account_emailservice_account_file 选项是互斥的。

示例

- name: get info on a cluster
  gcp_container_cluster_info:
    location: us-central1-a
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"

返回值

常见的返回值记录在此处,以下是此模块特有的字段

描述

资源

复杂

资源列表

返回值: 总是

addonsConfig

复杂

用于在集群中运行的各种插件的配置。

返回值: 成功

horizontalPodAutoscaling

复杂

用于水平 pod 自动缩放功能的配置,该功能基于现有 pod 的资源使用情况,增加或减少复制控制器拥有的副本 pod 的数量。

返回值: 成功

disabled

布尔值

集群中是否启用水平 Pod 自动缩放功能。启用后,它会确保在集群中运行 Heapster pod,该 pod 也被 Cloud Monitoring 服务使用。

返回值: 成功

httpLoadBalancing

复杂

用于 HTTP (L7) 负载均衡控制器插件的配置,该插件可以轻松地为集群中的服务设置 HTTP 负载均衡器。

返回值: 成功

disabled

布尔值

是否在集群中启用了 HTTP 负载均衡控制器。启用后,它会在集群中运行一个小型 pod,用于管理负载均衡器。

返回值: 成功

networkPolicyConfig

复杂

NetworkPolicy 的配置。这仅跟踪是否在 Master 上启用了插件,不跟踪是否为节点启用了网络策略。

返回值: 成功

disabled

布尔值

是否为此集群启用了 NetworkPolicy。

返回值: 成功

binaryAuthorization

复杂

用于 BinaryAuthorization 功能的配置。

返回值: 成功

enabled

布尔值

如果启用,所有容器映像都将由 Binary Authorization 验证。

返回值: 成功

clusterIpv4Cidr

字符串

此集群中容器 pod 的 IP 地址范围,以 CIDR 表示法表示(例如 10.96.0.0/14)。留空以自动选择一个或在 10.0.0.0/8 中指定一个 /14 块。

返回值: 成功

conditions

复杂

导致当前集群状态的条件。

返回值: 成功

code

字符串

条件的机器友好表示。

返回值: 成功

message

字符串

条件的易于理解的表示形式。

返回值: 成功

createTime

字符串

集群创建时间,采用 RFC3339 文本格式。

返回值: 成功

currentMasterVersion

字符串

主端点的当前软件版本。

返回值: 成功

currentNodeCount

整数

集群中当前节点的数量。

返回值: 成功

currentNodeVersion

字符串

节点软件组件的当前版本。如果它们目前由于正在升级而处于多个版本,则这反映了所有节点的最低版本。

返回值: 成功

databaseEncryption

复杂

etcd 加密的配置。

返回值: 成功

keyName

字符串

用于加密 etcd 中密钥的 CloudKMS 密钥的名称。示例。

`projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key` 。

返回值: 成功

state

字符串

表示 etcd 加密的状态。

返回值: 成功

defaultMaxPodsConstraint

复杂

对该集群的节点池中可以在节点上同时运行的最大 pod 数的默认约束。

仅当使用 IP 别名支持创建集群时才有效。

返回值: 成功

maxPodsPerNode

字符串

在每个节点的最大 pod 数上强制执行的约束。

返回值: 成功

description

字符串

此集群的可选描述。

返回值: 成功

enableKubernetesAlpha

布尔值

在此集群上启用 Kubernetes Alpha 功能。这包括 Alpha API 组(例如 v1alpha1)以及在主节点和节点的 Kubernetes 版本中可能尚未准备好用于生产的功能。

返回值: 成功

enableTpu

布尔值

(可选)是否在此集群中启用 Cloud TPU 资源。

请参阅官方文档 - https://cloud.google.com/tpu/docs/kubernetes-engine-setup

返回值: 成功

endpoint

字符串

此集群主端点的 IP 地址。

可以通过 https://username:password@endpoint/ 从互联网访问该端点。有关用户名和密码信息,请参阅此资源的 masterAuth 属性。

返回值: 成功

expireTime

字符串

集群将在 RFC3339 文本格式中自动删除的时间。

返回值: 成功

initialClusterVersion

字符串

首次创建时,集群中使用的主端点和 kubelet 的软件版本。该版本可以随着时间的推移而升级。

返回值: 成功

initialNodeCount

整数

在此集群中创建的节点数。您必须确保您的 Compute Engine 资源配额足以支持此数量的实例。您还必须具有可用的防火墙和路由配额。对于请求,此字段应仅用于代替“nodePool”对象,因为此配置(以及“nodeConfig”)将用于创建具有自动生成名称的“NodePool”对象。请勿同时使用此字段和 nodePool。

此字段已被弃用。请改用 nodePool.initial_node_count。

返回值: 成功

ipAllocationPolicy

复杂

用于控制集群中如何分配 IP 的配置。

返回值: 成功

clusterIpv4CidrBlock

字符串

集群 Pod IP 的 IP 地址范围。如果设置此字段,则 cluster.cluster_ipv4_cidr 必须留空。

此字段仅在 useIpAliases 为 true 时适用。

设置为空白以选择具有默认大小的范围。

设置为 /netmask(例如,/14)以选择具有特定网络掩码的范围。

返回值: 成功

clusterSecondaryRangeName

字符串

用于集群 CIDR 块的辅助范围的名称。辅助范围将用于 Pod IP 地址。

这必须是与集群子网关联的现有辅助范围。

返回值: 成功

createSubnetwork

布尔值

是否将为集群自动创建新的子网。

返回值: 成功

nodeIpv4CidrBlock

字符串

此集群中实例 IP 的 IP 地址范围。

仅当 createSubnetwork 为 true 时才适用。

设置为空白以选择具有默认大小的范围。

设置为 /netmask(例如,/14)以选择具有特定网络掩码的范围。

返回值: 成功

servicesIpv4CidrBlock

字符串

此集群中服务的 IP 地址范围。如果为空,则将自动选择具有默认大小的范围。

此字段仅在 useIpAliases 为 true 时适用。

设置为空白以选择具有默认大小的范围。

设置为 /netmask(例如,/14)以选择具有特定网络掩码的范围。

返回值: 成功

servicesSecondaryRangeName

字符串

用作服务 CIDR 块的辅助范围的名称。辅助范围将用于服务 ClusterIP。这必须是与集群子网关联的现有辅助范围。

返回值: 成功

subnetworkName

字符串

如果 createSubnetwork 为 true,则使用的自定义子网名称。

如果此字段为空,则将为新的子网选择一个自动名称。

返回值: 成功

tpuIpv4CidrBlock

字符串

此集群中 Cloud TPU 的 IP 地址范围。如果未指定,将自动选择具有默认大小的范围。

此字段仅在 useIpAliases 为 true 时适用。

如果未指定,该范围将使用默认大小。

设置为 /netmask(例如,/14)以选择具有特定网络掩码的范围。

返回值: 成功

useIpAliases

布尔值

是否将在集群中使用别名 IP 作为 Pod IP。

返回值: 成功

labelFingerprint

字符串

此集群的标签集的指纹。

返回值: 成功

legacyAbac

复杂

旧版 ABAC 授权模式的配置。

返回值: 成功

enabled

布尔值

是否为该集群启用 ABAC 授权器。启用后,系统中的身份(包括服务帐户、节点和控制器)将具有静态授予的权限,超出 RBAC 配置或 IAM 提供的权限。

返回值: 成功

location

字符串

部署集群的位置。

返回值: 成功

locations

列表 / 元素=字符串

集群节点所在的 Google Compute Engine 区域列表。

返回值: 成功

loggingService

字符串

集群应使用哪个日志记录服务来写入日志。当前可用的选项:logging.googleapis.com - Google Cloud Logging 服务。

none - 不会从集群中导出任何日志。

如果保留为空字符串,将使用 logging.googleapis.com。

返回值: 成功

masterAuth

复杂

用于访问主端点的身份验证信息。

返回值: 成功

clientCertificate

字符串

客户端用来向集群端点进行身份验证的 Base64 编码的公共证书。

返回值: 成功

clientCertificateConfig

复杂

集群上客户端证书身份验证的配置。对于 v1.12 之前的集群,如果未指定任何配置,则会颁发客户端证书。

返回值: 成功

issueClientCertificate

布尔值

颁发客户端证书。

返回值: 成功

clientKey

字符串

客户端用来向集群端点进行身份验证的 Base64 编码的私钥。

返回值: 成功

clusterCaCertificate

字符串

作为集群信任根的 Base64 编码的公共证书。

返回值: 成功

password

字符串

用于对主端点进行 HTTP 基本身份验证的密码。由于主端点对互联网开放,因此您应创建一个至少包含 16 个字符的强密码。

返回值: 成功

username

字符串

用于对主端点进行 HTTP 基本身份验证的用户名。

返回值: 成功

masterAuthorizedNetworksConfig

复杂

用于控制集群中如何分配 IP 的配置。

返回值: 成功

cidrBlocks

复杂

定义最多 50 个可以通过 HTTPS 访问 Kubernetes 主节点的外部网络。

返回值: 成功

cidrBlock

字符串

以 CIDR 表示法指定的块。

返回值: 成功

displayName

字符串

用于标识 CIDR 块的可选字段。

返回值: 成功

enabled

布尔值

是否启用主授权网络。

返回值: 成功

monitoringService

字符串

集群应使用哪个监控服务来写入指标。

当前可用的选项:monitoring.googleapis.com - Google Cloud Monitoring 服务。

none - 不会从集群中导出任何指标。

如果保留为空字符串,将使用 monitoring.googleapis.com。

返回值: 成功

name

字符串

此集群的名称。该名称在此项目和位置中必须是唯一的,并且最多可以包含 40 个字符。只能是小写字母、数字和连字符。必须以字母开头。必须以数字或字母结尾。

返回值: 成功

network

字符串

集群连接到的 Google Compute Engine 网络的名称。如果未指定,则将使用默认网络。

返回值: 成功

networkConfig

复杂

网络配置。

返回值: 成功

defaultSnatStatus

布尔值

集群是否禁用节点内默认 SNAT 规则。当禁用 defaultSnatStatus 时,将禁用节点内 SNAT 规则。

返回值: 成功

enableIntraNodeVisibility

布尔值

是否为此集群启用节点内可见性。这将使同一节点 Pod 到 Pod 的流量对 VPC 网络可见。

返回值: 成功

network

字符串

集群连接到的 Google Compute Engine 网络的相对名称。

示例:projects/my-project/global/networks/my-network 。

返回值: 成功

subnetwork

字符串

集群连接到的 Google Compute Engine 子网的相对名称。

示例:projects/my-project/regions/us-central1/subnetworks/my-subnet 。

返回值: 成功

networkPolicy

复杂

NetworkPolicy 功能的配置选项。

返回值: 成功

enabled

布尔值

是否在集群上启用网络策略。

返回值: 成功

provider

字符串

选择的网络策略提供程序。

返回值: 成功

nodeConfig

复杂

创建集群节点时使用的参数。

对于请求,此字段应仅用于代替“nodePool”对象,因为此配置(以及“initialNodeCount”)将用于创建具有自动生成名称的“NodePool”对象。请勿同时使用此字段和 nodePool。对于响应,此字段将使用第一个节点池的节点配置进行填充。如果未指定,则使用默认值。

返回值: 成功

accelerators

复杂

要附加到每个节点的硬件加速器列表。有关对 GPU 的支持的更多信息,请参阅 https://cloud.google.com/compute/docs/gpus

返回值: 成功

acceleratorCount

字符串

暴露给实例的加速器卡数量。

返回值: 成功

acceleratorType

字符串

加速器类型资源名称。

返回值: 成功

diskSizeGb

整数

附加到每个节点的磁盘大小,以 GB 为单位指定。允许的最小磁盘大小为 10GB。如果未指定,则默认磁盘大小为 100GB。

返回值: 成功

diskType

字符串

附加到每个节点的磁盘类型(例如,‘pd-standard’ 或 ‘pd-ssd’)。如果未指定,则默认磁盘类型为 ‘pd-standard’。

返回值: 成功

imageType

字符串

用于此节点的映像类型。请注意,对于给定的映像类型,将使用其最新版本。

返回值: 成功

labels

dictionary

要应用于每个节点的 Kubernetes 标签(键/值对)的映射。这些标签将添加到 Kubernetes 可能应用于节点的任何默认标签之外。如果标签键发生冲突,则应用的集合可能会有所不同,具体取决于 Kubernetes 版本 - 最好假设行为未定义,应避免冲突。有关更多信息(包括使用方法和有效值),请参阅: https://kubernetes.ac.cn/v1.1/docs/user-guide/labels.html 一个包含“键”:“值”对列表的对象。

示例:{ “name”: “wrench”, “mass”: “1.3kg”, “count”: “3” }。

返回值: 成功

localSsdCount

整数

要附加到节点的本地 SSD 磁盘数量。

此值的限制取决于每台机器每个区域可用的最大磁盘数量。有关更多信息,请参阅: https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits

返回值: 成功

machineType

字符串

Google Compute Engine 机器类型的名称(例如。

n1-standard-1)。如果未指定,则默认机器类型为 n1-standard-1。

返回值: 成功

metadata

dictionary

分配给集群中实例的元数据键/值对。

键必须符合正则表达式 [a-zA-Z0-9-_]+ 且长度小于 128 个字节。这些键会作为元数据服务器中 URL 的一部分反映出来。此外,为避免歧义,键不得与项目的任何其他元数据键冲突,也不得是以下四个保留键之一:“instance-template”、“kube-env”、“startup-script” 和 “user-data”。值是自由格式的字符串,仅在实例中运行的映像解释它们时才有意义。对它们的唯一限制是每个值的大小必须小于或等于 32 KB。

所有键和值的总大小必须小于 512 KB。

一个包含“键”:“值”对列表的对象。

示例:{ “name”: “wrench”, “mass”: “1.3kg”, “count”: “3” }。

返回值: 成功

minCpuPlatform

字符串

此实例要使用的最低 CPU 平台。实例可能会在指定的或更新的 CPU 平台上进行调度。

返回值: 成功

oauthScopes

列表 / 元素=字符串

要在所有节点 VM 上在 “default” 服务帐户下提供的 Google API 范围集。

建议但不强制使用以下范围,默认情况下不包括这些范围: https://www.googleapis.com/auth/compute 是在节点上安装持久存储所必需的。

https://www.googleapis.com/auth/devstorage.read_only 是与 gcr.io(Google 容器注册表)进行通信所必需的。

如果未指定,则不会添加任何范围,除非启用了 Cloud Logging 或 Cloud Monitoring,在这种情况下,将添加其所需的范围。

返回值: 成功

preemptible

布尔值

节点是否创建为抢占式 VM 实例。有关抢占式 VM 实例的更多信息,请参阅: https://cloud.google.com/compute/docs/instances/preemptible

返回值: 成功

serviceAccount

字符串

节点 VM 要使用的 Google Cloud Platform 服务帐户。如果未指定服务帐户,则使用“默认”服务帐户。

返回值: 成功

shieldedInstanceConfig

复杂

屏蔽实例选项。

返回值: 成功

enableIntegrityMonitoring

布尔值

定义实例是否启用了完整性监控。

启用对实例引导完整性的监控和证明。

证明是针对完整性策略基线执行的。此基线最初是在创建实例时从隐式信任的引导映像派生的。

返回值: 成功

enableSecureBoot

布尔值

定义实例是否启用了安全启动。

安全启动通过验证所有引导组件的数字签名,并在此签名验证失败时停止引导过程,从而帮助确保系统仅运行真实的软件。

返回值: 成功

tags

列表 / 元素=字符串

应用于所有节点的实例标记列表。标记用于标识网络防火墙的有效源或目标,并且由客户端在集群或节点池创建期间指定。列表中的每个标记都必须符合 RFC1035。

返回值: 成功

污点 (taints)

复杂

要应用于每个 Kubernetes 节点的污点列表。

有关更多信息,包括用法和有效值,请参阅:https://kubernetes.ac.cn/docs/concepts/configuration/taint-and-toleration/

返回值: 成功

效果 (effect)

字符串

污点的效果。

返回值: 成功

键 (key)

字符串

污点的键。

返回值: 成功

值 (value)

字符串

污点的值。

返回值: 成功

nodeIpv4CidrSize

整数

每个节点上用于托管容器的地址空间大小。

这是在 container_ipv4_cidr 范围内分配的。

返回值: 成功

节点池 (nodePools)

复杂

属于此集群的节点池。

返回值: 成功

name

字符串

节点池的名称。

返回值: 成功

私有集群配置 (privateClusterConfig)

复杂

私有集群的配置。

返回值: 成功

启用私有端点 (enablePrivateEndpoint)

布尔值

是否使用主节点的内部 IP 地址作为集群端点。

返回值: 成功

启用私有节点 (enablePrivateNodes)

布尔值

节点是否仅具有内部 IP 地址。如果启用,则所有节点仅被赋予 RFC 1918 私有地址,并通过私有网络与主节点通信。

返回值: 成功

主节点 IPv4 CIDR 块 (masterIpv4CidrBlock)

字符串

用于托管主网络的 CIDR 表示法的 IP 范围。此范围将用于为主节点或一组主节点以及 ILB VIP 分配内部 IP 地址。此范围不得与集群网络中使用的任何其他范围重叠。

返回值: 成功

私有端点 (privateEndpoint)

字符串

此集群的主节点端点的内部 IP 地址。

返回值: 成功

公共端点 (publicEndpoint)

字符串

此集群的主节点端点的外部 IP 地址。

返回值: 成功

发布通道 (releaseChannel)

复杂

ReleaseChannel 指示集群订阅的发布通道。

发布通道按风险和更新频率排序。

返回值: 成功

通道 (channel)

字符串

集群订阅的发布通道。

返回值: 成功

资源标签 (resourceLabels)

dictionary

集群用于注释任何相关 Google Compute Engine 资源的资源标签。

返回值: 成功

服务 IPv4 CIDR (servicesIpv4Cidr)

字符串

此集群中 Kubernetes 服务的 IP 地址范围,以 CIDR 表示法(例如 1.2.3.4/29)。服务地址通常放置在容器 CIDR 的最后一个 /16 中。

返回值: 成功

屏蔽节点 (shieldedNodes)

复杂

屏蔽节点配置。

返回值: 成功

enabled

布尔值

是否在此集群中的所有节点上启用屏蔽节点功能。

返回值: 成功

状态 (status)

字符串

此集群的当前状态。

返回值: 成功

状态消息 (statusMessage)

字符串

如果可用,有关此集群当前状态的其他信息。

返回值: 成功

subnetwork

字符串

集群连接到的 Google Compute Engine 子网络的名称。

返回值: 成功

tpuIpv4CidrBlock

字符串

此集群中 Cloud TPU 的 IP 地址范围,以 [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) 表示法表示(例如 `1.2.3.4/29`)。

返回值: 成功

作者

  • Google Inc. (@googlecloudplatform)