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。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。

要在剧本中使用它,请指定: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。

  • 只有在未设置剧本值时,才会使用环境变量值。

  • 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"

返回值

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

描述

resources

复杂

资源列表

返回:始终

addonsConfig

复杂

可在集群中运行的各种附加组件的配置。

返回:成功

horizontalPodAutoscaling

复杂

水平 Pod 自动伸缩功能的配置,该功能会根据现有 Pod 的资源使用情况增加或减少复制控制器拥有的副本 Pod 的数量。

返回:成功

disabled

布尔值

集群中是否启用了水平 Pod 自动伸缩功能。启用后,它会确保集群中运行 Heapster Pod,Cloud Monitoring 服务也会使用此 Pod。

返回:成功

httpLoadBalancing

复杂

HTTP (L7) 负载均衡控制器附加组件的配置,它简化了为集群中的服务设置 HTTP 负载均衡器的过程。

返回:成功

disabled

布尔值

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

返回:成功

networkPolicyConfig

复杂

NetworkPolicy 的配置。这只会跟踪附加组件在主节点上是否启用,而不会跟踪节点上是否启用了网络策略。

返回:成功

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 的 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 个可以访问 Kubernetes 主节点的外部网络(通过 HTTPS)。

返回:成功

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

布尔值

为此集群是否启用了节点内可见性。这使得 VPC 网络可以查看同一节点上的 Pod 到 Pod 的流量。

返回:成功

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

字典

要应用于每个节点的 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

字典

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

键必须符合正则表达式 [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

列表 / 元素=字符串

要在“default”服务帐户下所有节点虚拟机上提供的 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,在这种情况下,将添加其所需的范围。

返回:成功

preemptible

布尔值

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

返回:成功

serviceAccount

字符串

节点虚拟机要使用的 Google Cloud Platform 服务帐户。如果未指定服务帐户,则使用“default”服务帐户。

返回:成功

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 私有地址,并通过专用网络与主机通信。

返回:成功

masterIpv4CidrBlock

字符串

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

返回:成功

privateEndpoint

字符串

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

返回:成功

publicEndpoint

字符串

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

返回:成功

releaseChannel

复杂

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

发布渠道按风险和更新频率排列。

返回:成功

channel

字符串

集群订阅的发布渠道。

返回:成功

resourceLabels

字典

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

返回:成功

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)