REST Resource: projects.locations.memberships

Risorsa: Membership

L'appartenenza contiene informazioni su un cluster membro.

Rappresentazione JSON
{
  "name": string,
  "labels": {
    string: string,
    ...
  },
  "description": string,
  "state": {
    object (MembershipState)
  },
  "authority": {
    object (Authority)
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "externalId": string,
  "lastConnectionTime": string,
  "uniqueId": string,
  "infrastructureType": enum (Membership.InfrastructureType),
  "monitoringConfig": {
    object (MonitoringConfig)
  },

  // Union field type can be only one of the following:
  "endpoint": {
    object (MembershipEndpoint)
  }
  // End of list of possible types for union field type.
}
Campi
name

string

Solo output. Il nome completo e univoco di questa risorsa di appartenenza nel formato projects/*/locations/*/memberships/{membershipId}, impostato durante la creazione.

membershipId deve essere un'etichetta DNS valida conforme a RFC 1123:

  1. Lunghezza massima: 63 caratteri
  2. Deve essere composto da caratteri alfanumerici minuscoli o -
  3. Deve iniziare e terminare con un carattere alfanumerico

che può essere espressa con l'espressione regolare: [a-z0-9]([-a-z0-9]*[a-z0-9])?, con una lunghezza massima di 63 caratteri.

labels

map (key: string, value: string)

Facoltativo. Etichette Google Cloud per questa appartenenza.

Un oggetto contenente un elenco di "key": value coppie. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

description

string

Facoltativo. Descrizione di questo abbonamento (massimo 63 caratteri). Deve corrispondere alla regex: [a-zA-Z0-9][a-zA-Z0-9_\-\.\ ]*

state

object (MembershipState)

Solo output. Stato della risorsa Membership.

authority

object (Authority)

Facoltativo. Come identificare i carichi di lavoro da questa appartenenza. Per maggiori dettagli, consulta la documentazione su Workload Identity: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

createTime

string (Timestamp format)

Solo output. Data di creazione dell'abbonamento.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Solo output. Data dell'ultimo aggiornamento dell'abbonamento.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

deleteTime

string (Timestamp format)

Solo output. Data di eliminazione dell'abbonamento.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

externalId

string

Facoltativo. Un ID generato e gestito esternamente per questa appartenenza. Questo ID può essere modificato dopo la creazione, ma questa operazione è sconsigliata. Per i cluster GKE, externalId è gestito dall'API Hub e gli aggiornamenti verranno ignorati.

L'ID deve corrispondere all'espressione regolare: [a-zA-Z0-9][a-zA-Z0-9_\-\.]*

Se questa appartenenza rappresenta un cluster Kubernetes, questo valore deve essere impostato sull'UID dell'oggetto dello spazio dei nomi kube-system.

lastConnectionTime

string (Timestamp format)

Solo output. Per i cluster che utilizzano Connect, il timestamp della connessione più recente stabilita con Google Cloud. Questo orario viene aggiornato a intervalli di qualche minuto, non in modo continuo. Per i cluster che non utilizzano GKE Connect o che non si sono mai connessi correttamente, questo campo non verrà impostato.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

uniqueId

string

Solo output. UUID generato da Google per questa risorsa. È univoco in tutte le risorse di appartenenza. Se viene eliminata una risorsa di appartenenza e viene creata un'altra risorsa con lo stesso nome, questa riceve un ID univoco diverso.

infrastructureType

enum (Membership.InfrastructureType)

Facoltativo. Il tipo di infrastruttura su cui è in esecuzione questa appartenenza.

monitoringConfig

object (MonitoringConfig)

Facoltativo. Le informazioni sulla configurazione di monitoraggio per questa appartenenza.

Campo di unione type. Il tipo di risorsa rappresentato da questa appartenenza type può essere solo uno dei seguenti:
endpoint

object (MembershipEndpoint)

Facoltativo. Informazioni sull'endpoint per raggiungere questo membro.

MembershipEndpoint

MembershipEndpoint contiene le informazioni necessarie per contattare l'API e un endpoint Kubernetes ed eventuali metadati Kubernetes aggiuntivi.

Rappresentazione JSON
{
  "kubernetesMetadata": {
    object (KubernetesMetadata)
  },
  "kubernetesResource": {
    object (KubernetesResource)
  },

  // Union field type can be only one of the following:
  "gkeCluster": {
    object (GkeCluster)
  },
  "onPremCluster": {
    object (OnPremCluster)
  },
  "multiCloudCluster": {
    object (MultiCloudCluster)
  },
  "edgeCluster": {
    object (EdgeCluster)
  },
  "applianceCluster": {
    object (ApplianceCluster)
  }
  // End of list of possible types for union field type.
}
Campi
kubernetesMetadata

object (KubernetesMetadata)

Solo output. Metadati utili specifici per Kubernetes.

kubernetesResource

object (KubernetesResource)

Facoltativo. Le risorse Kubernetes nel cluster da applicare per un cluster registrato correttamente, in stato stabile. Queste risorse:

  • Assicurati che il cluster sia registrato in modo esclusivo per una sola appartenenza all'hub.
  • Propaga le informazioni del pool di carichi di lavoro disponibili nel campo Autorità di appartenenza.
  • Assicurati che le funzionalità predefinite dell'hub siano configurate all'inizio correttamente.
Campo di unione type. Informazioni sul cluster registrato. type può essere solo uno dei seguenti:
gkeCluster

object (GkeCluster)

Facoltativo. Informazioni specifiche per un cluster GKE su Google Cloud.

onPremCluster

object (OnPremCluster)

Facoltativo. Informazioni specifiche per un cluster GKE On-Prem. Un cluster utente on-prem senza resourceLink non è autorizzato a utilizzare questo campo. Dovrebbe avere invece un "type" nullo.

multiCloudCluster

object (MultiCloudCluster)

Facoltativo. Informazioni specifiche per un cluster GKE multi-cloud.

edgeCluster

object (EdgeCluster)

Facoltativo. Informazioni specifiche per un cluster Google Edge.

applianceCluster

object (ApplianceCluster)

Facoltativo. Informazioni specifiche per un cluster GDC Edge Appliance.

GkeCluster

GkeCluster contiene informazioni specifiche per i cluster GKE.

Rappresentazione JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Campi
clusterMissing

boolean

Solo output. Se il cluster è impostato, significa che il cluster GKE non esiste più nel piano di controllo GKE.

OnPremCluster

OnPremCluster contiene informazioni specifiche per i cluster GKE On-Prem.

Rappresentazione JSON
{
  "resourceLink": string,
  "clusterMissing": boolean,
  "adminCluster": boolean,
  "clusterType": enum (OnPremCluster.ClusterType)
}
Campi
clusterMissing

boolean

Solo output. Se clusterManca è impostato, significa che la risorsa API(gkeonprem.googleapis.com) per questo cluster GKE On-Prem non esiste più.

adminCluster

boolean

Immutabile. Indica se il cluster è un cluster di amministrazione.

clusterType

enum (OnPremCluster.ClusterType)

Immutabile. Il tipo di cluster on-prem.

OnPremCluster.ClusterType

ClusterType descrive il tipo di cluster on-prem.

Enum
CLUSTERTYPE_UNSPECIFIED ClusterType non impostato.
BOOTSTRAP ClusterType è un cluster di bootstrap.
HYBRID ClusterType è un cluster ibrido essenziale.
STANDALONE ClusterType è un cluster autonomo baretal.
USER ClusterType è un cluster utente.

MultiCloudCluster

MultiCloudCluster contiene informazioni specifiche per i cluster multi-cloud GKE.

Rappresentazione JSON
{
  "resourceLink": string,
  "clusterMissing": boolean
}
Campi
clusterMissing

boolean

Solo output. Se clusterManca è impostato, significa che la risorsa API(gkemulticloud.googleapis.com) per questo cluster GKE multi-cloud non esiste più.

EdgeCluster

EdgeCluster contiene informazioni specifiche per i cluster perimetrali di Google.

Rappresentazione JSON
{
  "resourceLink": string
}
Campi

ApplianceCluster

ApplianceCluster contiene informazioni specifiche per i cluster delle appliance GDC Edge.

Rappresentazione JSON
{
  "resourceLink": string
}
Campi

KubernetesMetadata

KubernetesMetadata fornisce metadati informativi per le iscrizioni che rappresentano i cluster Kubernetes.

Rappresentazione JSON
{
  "kubernetesApiServerVersion": string,
  "nodeProviderId": string,
  "nodeCount": integer,
  "vcpuCount": integer,
  "memoryMb": integer,
  "updateTime": string
}
Campi
kubernetesApiServerVersion

string

Solo output. Stringa di versione del server API Kubernetes riportata da "/version".

nodeProviderId

string

Solo output. Nodo providerID come riportato dal primo nodo nell'elenco di nodi sull'endpoint Kubernetes. Sulle piattaforme Kubernetes che supportano i cluster senza nodi (come GKE su Google Cloud), il numero di nodeCount è pari a zero e il valore del nodeProviderId sarà vuoto.

nodeCount

integer

Solo output. Conteggio dei nodi riportato dalle risorse dei nodi Kubernetes.

vcpuCount

integer

Solo output. Numero di vCPU come riportato dalle risorse dei nodi Kubernetes.

memoryMb

integer

Solo output. La capacità di memoria totale riportata dalla somma di tutte le risorse dei nodi Kubernetes, definita in MB.

updateTime

string (Timestamp format)

Solo output. L'ora dell'ultimo aggiornamento di questi dettagli. updateTime è diverso da updateTime a livello di Membership perché EndpointDetails viene aggiornato internamente per i consumer dell'API.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

KubernetesResource

KubernetesResource contiene i manifest e la configurazione YAML per l'appartenenza alle risorse Kubernetes nel cluster. Dopo abbonamenti.create o abbonamenti.patch, queste risorse dovrebbero essere applicate di nuovo nel cluster.

Rappresentazione JSON
{
  "membershipCrManifest": string,
  "membershipResources": [
    {
      object (ResourceManifest)
    }
  ],
  "connectResources": [
    {
      object (ResourceManifest)
    }
  ],
  "resourceOptions": {
    object (ResourceOptions)
  }
}
Campi
membershipCrManifest

string

Solo input. La rappresentazione YAML della RP Membership. Questo campo viene ignorato per i cluster GKE in cui l'hub può leggere direttamente la RP.

I chiamanti devono fornire la RP attualmente presente nel cluster durante subscriptions.create o subscriptions.patch oppure lasciare vuoto questo campo se non ne esiste. Il manifest della RP viene utilizzato per confermare che il cluster non è stato registrato con un'altra appartenenza.

membershipResources[]

object (ResourceManifest)

Solo output. Risorse Kubernetes aggiuntive che devono essere applicate al cluster dopo la creazione dell'appartenenza e dopo ogni aggiornamento.

Questo campo viene compilato solo nella sezione Appartenenza restituita da un'operazione a lunga esecuzione riuscita da subscriptions.create o subscriptions.patch. Non viene compilato durante le normali richieste subscriptions.get o subscriptions.list. Per ottenere il manifest della risorsa dopo la registrazione iniziale, il chiamante deve effettuare una chiamata subscriptions.patch con una maschera di campo vuoto.

connectResources[]

object (ResourceManifest)

Solo output. Le risorse Kubernetes per l'installazione dell'agente GKE Connect

Questo campo viene compilato solo nella sezione Appartenenza restituita da un'operazione a lunga esecuzione riuscita da subscriptions.create o subscriptions.patch. Non viene compilato durante le normali richieste subscriptions.get o subscriptions.list. Per ottenere il manifest della risorsa dopo la registrazione iniziale, il chiamante deve effettuare una chiamata subscriptions.patch con una maschera di campo vuoto.

resourceOptions

object (ResourceOptions)

Facoltativo. Opzioni per la generazione di risorse Kubernetes.

ResourceManifest

ResourceManifest rappresenta una singola risorsa Kubernetes da applicare al cluster.

Rappresentazione JSON
{
  "manifest": string,
  "clusterScoped": boolean
}
Campi
manifest

string

manifest YAML della risorsa.

clusterScoped

boolean

Indica se la risorsa fornita nel manifest è clusterScoped. Se il criterio non viene configurato, si presume che il manifest sia limitato allo spazio dei nomi.

Questo campo viene utilizzato per il mapping REST quando si applica la risorsa in un cluster.

ResourceOptions

ResourceOptions rappresenta le opzioni per la generazione di risorse Kubernetes.

Rappresentazione JSON
{
  "connectVersion": string,
  "v1beta1Crd": boolean,
  "k8sVersion": string
}
Campi
connectVersion

string

Facoltativo. La versione dell'agente Connect da utilizzare per ConnectResources. Il valore predefinito è l'ultima versione di GKE Connect. La versione deve essere una versione attualmente supportata, le versioni obsolete verranno rifiutate.

v1beta1Crd

boolean

Facoltativo. Utilizza apiextensions/v1beta1 anziché apiextensions/v1 per le risorse CustomResourceDefinition. Questa opzione deve essere impostata per i cluster con versioni dell'apiserver Kubernetes precedenti alla 1.16.

k8sVersion

string

Facoltativo. Versione principale del cluster Kubernetes. Viene utilizzato solo per determinare la versione da utilizzare per le risorse CustomResourceDefinition, apiextensions/v1beta1 o apiextensions/v1.

MembershipState

Stato della risorsa Membership.

Rappresentazione JSON
{
  "code": enum (MembershipState.Code),
  "description": string,
  "updateTime": string
}
Campi
code

enum (MembershipState.Code)

Solo output. Lo stato attuale della risorsa Membership.

description
(deprecated)

string

Questo campo non viene mai impostato dal servizio Hub.

updateTime
(deprecated)

string (Timestamp format)

Questo campo non viene mai impostato dal servizio Hub.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

MembershipState.Code

Il codice descrive lo stato di una risorsa di appartenenza.

Enum
CODE_UNSPECIFIED Il codice non è impostato.
CREATING Il cluster è in fase di registrazione.
READY Il cluster è registrato.
DELETING È in corso l'annullamento della registrazione del cluster.
UPDATING L'abbonamento è in fase di aggiornamento.
SERVICE_UPDATING L'abbonamento è in fase di aggiornamento dal servizio Hub.

Autorità

L'autorità codifica il modo in cui Google riconoscerà le identità da questa appartenenza. Per ulteriori dettagli, consulta la documentazione di Workload Identity: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

Rappresentazione JSON
{
  "issuer": string,
  "workloadIdentityPool": string,
  "identityProvider": string,
  "oidcJwks": string
}
Campi
issuer

string

Facoltativo. Un URI dell'emittente JSON Web Token (JWT). issuer deve iniziare con https:// ed essere un URL valido con lunghezza inferiore a 2000 caratteri.

Se impostato, Google consentirà a token OIDC validi di questo emittente di eseguire l'autenticazione all'interno del WorkloadIdentityPool. Il rilevamento OIDC verrà eseguito su questo URI per convalidare i token dell'emittente.

La cancellazione di issuer disabilita Workload Identity. issuer non può essere modificato direttamente. Devi cancellarlo (e disattivare Workload Identity) prima di utilizzare un nuovo emittente (e riattivare Workload Identity).

workloadIdentityPool

string

Solo output. Il nome del pool di identità per i carichi di lavoro in cui verrà riconosciuto issuer.

Esiste un unico pool di Workload Identity per hub condiviso tra tutti gli abbonamenti che appartengono a quell'hub. Per un hub ospitato in {PROJECT_ID}, il formato del pool di carichi di lavoro è {PROJECT_ID}.hub.id.goog, anche se questo dato è soggetto a modifiche nelle versioni più recenti di questa API.

identityProvider

string

Solo output. Un provider di identità che riflette issuer nel pool di identità per i carichi di lavoro.

oidcJwks

string (bytes format)

Facoltativo. Chiavi di verifica OIDC per questa appartenenza in formato JWKS (RFC 7517).

Se questo campo viene impostato, il rilevamento OIDC NON verrà eseguito su issuer e i token OIDC verranno convalidati utilizzando questo campo.

Una stringa con codifica Base64.

Membership.InfrastructureType

Specifica il tipo di infrastruttura di un'appartenenza. Il tipo di infrastruttura viene utilizzato dall'hub per controllare il comportamento specifico dell'infrastruttura, inclusi i prezzi.

Ogni distribuzione GKE (su Google Cloud, On-Prem, on-X ecc.) imposterà questo campo automaticamente, ma i clienti dei cluster collegati devono specificare un tipo durante la registrazione.

Enum
INFRASTRUCTURE_TYPE_UNSPECIFIED Nessun tipo specificato. Alcune funzionalità dell'hub potrebbero richiedere l'indicazione di un tipo e non supporteranno gli abbonamenti con questo valore.
ON_PREM Infrastruttura privata di proprietà o gestita dal cliente. Questo include distribuzioni GKE come GKE-OnPrem e GKE-OnBareMetal.
MULTI_CLOUD Infrastruttura cloud pubblica

MonitoringConfig

MonitoringConfig informa le applicazioni/servizi/UI basati sul parco risorse in che modo le metriche per il cluster sottostante vengono segnalate ai servizi di Cloud Monitoring. Può essere impostato da vuoto a non vuoto, ma non può essere modificato direttamente per evitare di danneggiare accidentalmente la continuità delle metriche.

Rappresentazione JSON
{
  "projectId": string,
  "location": string,
  "cluster": string,
  "kubernetesMetricsPrefix": string,
  "clusterHash": string
}
Campi
projectId

string

Facoltativo. Progetto utilizzato per generare report sulle metriche

location

string

Facoltativo. Posizione utilizzata per generare report sulle metriche

cluster

string

Facoltativo. Nome del cluster utilizzato per generare report sulle metriche. Per i cluster Anthos on VMWare/Baremetal/MultiCloud, il formato sarà {clusterType}/{clusterName}, ad esempio "awsClusters/cluster_1".

kubernetesMetricsPrefix

string

Facoltativo. Le metriche di sistema di Kubernetes, se disponibili, sono scritte con questo prefisso. Il valore predefinito è kubernetes.io per GKE e infine kubernetes.io/anthos per Anthos. Nota: oggi Anthos MultiCloud avrà il prefisso kubernetes.io, ma la migrazione verrà eseguita in kubernetes.io/anthos.

clusterHash

string

Facoltativo. Per i cluster GKE e multi-cloud, questo è l'UUID della risorsa cluster. Per i cluster VMWare e Baremetal, si tratta dell'UID kube-system.

Metodi

create

Crea una nuova appartenenza.

delete

Rimuove un'appartenenza.

generateConnectManifest

Genera il manifest per il deployment dell'agente GKE Connect.

generateExclusivityManifest

GeneraExclusivityManifest genera i manifest per aggiornare gli artefatti di esclusività nel cluster, se necessario.

get

Recupera i dettagli di un abbonamento.

getIamPolicy

Ottieni il criterio di controllo dell'accesso per una risorsa.

list

Elenca gli abbonamenti a un progetto e a una località specifici.

patch

Aggiorna un Abbonamento esistente.

setIamPolicy

Imposta il criterio di controllo dell'accesso sulla risorsa specificata.

testIamPermissions

Restituisce le autorizzazioni di cui un chiamante dispone per la risorsa specificata.

validateExclusivity

ConvalidaEsclusività convalida lo stato di esclusività nel cluster.