REST Resource: projects.locations.clusters

Recurso: Cluster

Um cluster do Kubernetes do Google Distributed Cloud Edge.

Representação JSON
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "fleet": {
    object (Fleet)
  },
  "networking": {
    object (ClusterNetworking)
  },
  "authorization": {
    object (Authorization)
  },
  "defaultMaxPodsPerNode": integer,
  "endpoint": string,
  "port": integer,
  "clusterCaCertificate": string,
  "maintenancePolicy": {
    object (MaintenancePolicy)
  },
  "controlPlaneVersion": string,
  "nodeVersion": string,
  "controlPlane": {
    object (ControlPlane)
  },
  "systemAddonsConfig": {
    object (SystemAddonsConfig)
  },
  "externalLoadBalancerIpv4AddressPools": [
    string
  ],
  "controlPlaneEncryption": {
    object (ControlPlaneEncryption)
  },
  "status": enum (Status),
  "maintenanceEvents": [
    {
      object (MaintenanceEvent)
    }
  ],
  "targetVersion": string,
  "releaseChannel": enum (ReleaseChannel),
  "survivabilityConfig": {
    object (SurvivabilityConfig)
  },
  "externalLoadBalancerIpv6AddressPools": [
    string
  ]
}
Campos
name

string

Obrigatório. O nome do recurso do cluster.

createTime

string (Timestamp format)

Apenas saída. O horário de criação do cluster.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Apenas saída. A hora em que o cluster foi atualizado pela última vez.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

labels

map (key: string, value: string)

Rótulos associados a este recurso.

Um objeto com uma lista de pares "key": value. Exemplo: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

fleet

object (Fleet)

Obrigatório. Configuração da frota.

networking

object (ClusterNetworking)

Obrigatório. Configuração de rede em todo o cluster.

authorization

object (Authorization)

Obrigatório. Imutável. Política de RBAC que será aplicada e gerenciada pelo GEC.

defaultMaxPodsPerNode

integer

Opcional. O número máximo padrão de pods por nó usado se um valor máximo não for especificado explicitamente para um pool de nós neste cluster. Se não for especificado, o valor padrão do Kubernetes será usado.

endpoint

string

Apenas saída. O endereço IP do servidor da API Kubernetes.

port

integer

Apenas saída. O número da porta do servidor da API Kubernetes.

clusterCaCertificate

string

Apenas saída. O certificado público codificado em PEM da CA do cluster.

maintenancePolicy

object (MaintenancePolicy)

Opcional. Configuração da política de manutenção em todo o cluster.

controlPlaneVersion

string

Apenas saída. A versão de lançamento do plano de controle

nodeVersion

string

Apenas saída. A versão de lançamento mais baixa entre todos os nós de trabalho. Esse campo pode ficar vazio se o cluster não tiver nós de trabalho.

controlPlane

object (ControlPlane)

Opcional. A configuração do plano de controle do cluster.

systemAddonsConfig

object (SystemAddonsConfig)

Opcional. A configuração dos complementos do sistema.

externalLoadBalancerIpv4AddressPools[]

string

Opcional. Pools de endereços IPv4 para balanceamento de carga externo do plano de dados do cluster.

controlPlaneEncryption

object (ControlPlaneEncryption)

Opcional. Opções de criptografia de disco do plano de controle remoto. Esse campo só é usado ao ativar o suporte à CMEK.

status

enum (Status)

Apenas saída. O status atual do cluster.

maintenanceEvents[]

object (MaintenanceEvent)

Apenas saída. Todos os eventos de manutenção programados para o cluster, incluindo os em andamento, planejados para o futuro e realizados no passado (até 90 dias).

targetVersion

string

Opcional. A versão do cluster de destino. Por exemplo: "1.5.0".

releaseChannel

enum (ReleaseChannel)

Opcional. O canal de lançamento em que um cluster está inscrito.

survivabilityConfig

object (SurvivabilityConfig)

Opcional. Configuração da capacidade de sobrevivência do cluster, por exemplo, para o caso em que a conectividade de rede é perdida. Observação: isso só se aplica a clusters de plano de controle local.

externalLoadBalancerIpv6AddressPools[]

string

Opcional. Pools de endereços IPv6 para balanceamento de carga externo do plano de dados do cluster.

Frota

Configuração relacionada à frota.

As frotas são um conceito do Google Cloud voltado à organização lógica de clusters. Com elas, é possível usar e gerenciar recursos de vários clusters e aplicar políticas consistentes em todos os sistemas.

Representação JSON
{
  "project": string,
  "membership": string
}
Campos
project

string

Obrigatório. O número do projeto host da frota em que este cluster será registrado.

Os nomes de projetos são formatados como projects/<project-number>.

membership

string

Apenas saída. O nome do recurso de assinatura de hub gerenciado associado a esse cluster.

Os nomes de assinaturas são formatados como projects/<project-number>/locations/global/membership/<cluster-id>.

ClusterNetworking

Configuração de rede em todo o cluster.

Representação JSON
{
  "clusterIpv4CidrBlocks": [
    string
  ],
  "servicesIpv4CidrBlocks": [
    string
  ]
}
Campos
clusterIpv4CidrBlocks[]

string

Obrigatório. Todos os pods no cluster recebem um endereço IPv4 RFC1918 desses blocos. Só é possível usar um bloco. Este campo não pode ser alterado após a criação.

servicesIpv4CidrBlocks[]

string

Obrigatório. Todos os serviços do cluster recebem um endereço IPv4 RFC1918 desses blocos. Só é possível usar um bloco. Este campo não pode ser alterado após a criação.

Autorização

Política de RBAC que será aplicada e gerenciada pelo GEC.

Representação JSON
{
  "adminUsers": {
    object (ClusterUser)
  }
}
Campos
adminUsers

object (ClusterUser)

Obrigatório. Usuário que receberá o papel de administrador do cluster e terá acesso total a ele. No momento, esse é um campo único, mas será expandido para permitir vários administradores no futuro.

ClusterUser

Um principal de usuário para uma política de RBAC.

Representação JSON
{
  "username": string
}
Campos
username

string

Obrigatório. Um nome de usuário do Google ativo.

MaintenancePolicy

Configuração da política de manutenção.

Representação JSON
{
  "window": {
    object (MaintenanceWindow)
  }
}
Campos
window

object (MaintenanceWindow)

Especifica a janela de manutenção em que a manutenção pode ser realizada.

MaintenanceWindow

Configuração da janela de manutenção

Representação JSON
{
  "recurringWindow": {
    object (RecurringTimeWindow)
  }
}
Campos
recurringWindow

object (RecurringTimeWindow)

Configuração de uma janela de manutenção recorrente.

RecurringTimeWindow

Representa um período arbitrário que se repete.

Representação JSON
{
  "window": {
    object (TimeWindow)
  },
  "recurrence": string
}
Campos
window

object (TimeWindow)

O período da primeira recorrência.

recurrence

string

Uma RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) para a recorrência dessa janela. Eles duram o período entre o horário de início e término.

TimeWindow

Representa um período arbitrário.

Representação JSON
{
  "startTime": string,
  "endTime": string
}
Campos
startTime

string (Timestamp format)

O horário em que a janela começa.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

endTime

string (Timestamp format)

O horário em que a janela termina. O horário de término precisa ser posterior ao horário de início.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

ControlPlane

Configuração do plano de controle do cluster.

Representação JSON
{

  // Union field config can be only one of the following:
  "remote": {
    object (Remote)
  },
  "local": {
    object (Local)
  }
  // End of list of possible types for union field config.
}
Campos

Campo de união config.

config pode ser apenas de um dos tipos a seguir:

remote

object (Remote)

Configuração do plano de controle remoto.

local

object (Local)

Configuração do plano de controle local.

Aviso: os clusters de plano de controle local precisam ser criados no próprio projeto. Os clusters de plano de controle local não podem coexistir no mesmo projeto com nenhum outro tipo de cluster, incluindo clusters que não são do GDCE. Misturar clusters GDCE de plano de controle local com qualquer outro tipo de cluster no mesmo projeto pode resultar em perda de dados.

Remoto

Esse tipo não tem campos.

Configuração específica para clusters com um plano de controle hospedado remotamente.

Local

Configuração específica para clusters com um plano de controle hospedado localmente.

Aviso: os clusters de plano de controle local precisam ser criados no próprio projeto. Os clusters de plano de controle local não podem coexistir no mesmo projeto com nenhum outro tipo de cluster, incluindo clusters que não são do GDCE. Misturar clusters GDCE de plano de controle local com qualquer outro tipo de cluster no mesmo projeto pode resultar em perda de dados.

Representação JSON
{
  "nodeLocation": string,
  "nodeCount": integer,
  "machineFilter": string,
  "sharedDeploymentPolicy": enum (SharedDeploymentPolicy)
}
Campos
nodeLocation

string

Nome das zonas do Google Distributed Cloud Edge em que esse pool de nós será criado. Por exemplo, us-central1-edge-customer-a.

nodeCount

integer

O número de nós que vão servir como réplicas do plano de controle.

machineFilter

string

Somente as máquinas que correspondem a esse filtro podem hospedar nós do plano de controle. A linguagem de filtragem aceita strings como "name=" e está documentada aqui: AIP-160.

sharedDeploymentPolicy

enum (SharedDeploymentPolicy)

Configuração de política sobre como os aplicativos do usuário são implantados.

SharedDeploymentPolicy

Representa a configuração da política sobre como os aplicativos do usuário são implantados.

Tipos enumerados
SHARED_DEPLOYMENT_POLICY_UNSPECIFIED Não especificado.
ALLOWED Os aplicativos do usuário podem ser implantados no plano de controle e nos nós de trabalho.
DISALLOWED Os aplicativos do usuário não podem ser implantados em nós do plano de controle, apenas em nós de trabalho.

SystemAddonsConfig

Configuração que os clientes podem definir para complementos do sistema GDCE.

Representação JSON
{
  "ingress": {
    object (Ingress)
  }
}
Campos
ingress

object (Ingress)

Opcional. Configuração para Entrada.

Entrada

Configuração do complemento Entrada, que permite aos clientes criar um objeto Entrada para gerenciar o acesso externo aos servidores em um cluster. O complemento consiste em istiod e istio-ingress.

Representação JSON
{
  "disabled": boolean,
  "ipv4Vip": string
}
Campos
disabled

boolean

Opcional. Indica se a entrada está desativada.

ipv4Vip

string

Opcional. VIP de entrada.

ControlPlaneEncryption

Configuração para suporte a chaves do KMS gerenciadas pelo cliente para criptografia de disco do cluster do plano de controle remoto.

Representação JSON
{
  "kmsKey": string,
  "kmsKeyActiveVersion": string,
  "kmsKeyState": enum (KmsKeyState),
  "kmsStatus": {
    object (Status)
  }
}
Campos
kmsKey

string

Imutável. A CryptoKey do Cloud KMS, por exemplo, projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}, para usar na proteção de discos do plano de controle. Se não for especificada, uma chave gerenciada pelo Google será usada.

kmsKeyActiveVersion

string

Apenas saída. A CryptoKeyVersion do Cloud KMS atualmente em uso para proteger discos do plano de controle. Só é aplicável se kmsKey estiver definido.

kmsKeyState

enum (KmsKeyState)

Apenas saída. Disponibilidade da CryptoKey do Cloud KMS. Se não for KEY_AVAILABLE, os nós poderão ficar off-line porque não conseguem acessar os dados locais. Isso pode ser causado pela falta de permissões para usar a chave ou se ela estiver desativada ou excluída.

kmsStatus

object (Status)

Apenas saída. Status de erro retornado pelo Cloud KMS ao usar essa chave. Esse campo só pode ser preenchido se kmsKeyState não for KMS_KEY_STATE_KEY_AVAILABLE. Se preenchido, esse campo vai conter o status do erro informado pelo Cloud KMS.

Status

Indica o status do cluster.

Tipos enumerados
STATUS_UNSPECIFIED Status desconhecido.
PROVISIONING O cluster está sendo criado.
RUNNING O cluster é criado e totalmente utilizável.
DELETING O cluster está sendo excluído.
ERROR O status indica que ocorreram alguns erros ao reconciliar/excluir o cluster.
RECONCILING O cluster está passando por algum trabalho, como upgrades de versão etc.

MaintenanceEvent

Um evento de manutenção é uma operação que pode causar interrupções temporárias nas cargas de trabalho do cluster, incluindo upgrades de cluster iniciados pelo Google ou pelo usuário, mudanças na configuração do cluster iniciadas pelo usuário que exigem a reinicialização de nós etc.

Representação JSON
{
  "uuid": string,
  "targetVersion": string,
  "operation": string,
  "type": enum (Type),
  "schedule": enum (Schedule),
  "state": enum (State),
  "createTime": string,
  "startTime": string,
  "endTime": string,
  "updateTime": string
}
Campos
uuid

string

Apenas saída. UUID do evento de manutenção.

targetVersion

string

Apenas saída. A versão de destino do cluster.

operation

string

Apenas saída. A operação para executar o evento de manutenção. Especificado no formato projects/*/locations/*/operations/*. Se o evento de manutenção for dividido em várias operações (por exemplo, devido a janelas de manutenção), a mais recente será registrada.

type

enum (Type)

Apenas saída. O tipo do evento de manutenção.

schedule

enum (Schedule)

Apenas saída. A programação do evento de manutenção.

state

enum (State)

Apenas saída. O estado do evento de manutenção.

createTime

string (Timestamp format)

Apenas saída. O horário em que a solicitação de evento de manutenção foi criada.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

startTime

string (Timestamp format)

Apenas saída. O horário em que o evento de manutenção começou.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

endTime

string (Timestamp format)

Apenas saída. O horário em que o evento de manutenção terminou, com ou sem êxito. Se o evento de manutenção for dividido em várias janelas, o endTime só será atualizado quando todo o fluxo terminar.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Apenas saída. O horário em que a mensagem do evento de manutenção foi atualizada.

Um carimbo de data/hora no formato RFC3339 UTC "Zulu", com resolução de nanossegundos e até nove dígitos fracionários. Exemplos: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

Tipo

Indica o tipo de evento de manutenção.

Tipos enumerados
TYPE_UNSPECIFIED Não especificado.
USER_INITIATED_UPGRADE Upgrade iniciado pelos usuários.
GOOGLE_DRIVEN_UPGRADE Upgrade feito pelo Google.

Programar

Indica quando o evento de manutenção deve ser realizado.

Tipos enumerados
SCHEDULE_UNSPECIFIED Não especificado.
IMMEDIATELY Imediatamente após receber a solicitação.

Estado

Indica o estado do evento de manutenção.

Tipos enumerados
STATE_UNSPECIFIED Não especificado.
RECONCILING O evento de manutenção está em andamento. O cluster pode estar inutilizável.
SUCCEEDED O evento de manutenção foi concluído.
FAILED O evento de manutenção falhou.

ReleaseChannel

O canal de lançamento em que um cluster está inscrito.

Tipos enumerados
RELEASE_CHANNEL_UNSPECIFIED Canal de lançamento não especificado. O padrão é o canal REGULAR.
NONE Nenhum canal de lançamento.
REGULAR Canal de lançamento normal.

SurvivabilityConfig

Configuração da capacidade de sobrevivência do cluster, por exemplo, para o caso em que a conectividade de rede é perdida.

Representação JSON
{
  "offlineRebootTtl": string
}
Campos
offlineRebootTtl

string (Duration format)

Opcional. Período que permite que os nós do cluster sejam reinicializados e fiquem funcionais sem conectividade de rede com o Google. O padrão 0 significa que não é permitido. O máximo é sete dias.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

Métodos

create

Cria um novo cluster em determinado projeto e local.

delete

Exclui um único cluster.

generateAccessToken

Gera um token de acesso para um cluster.

generateOfflineCredential

Gera uma credencial off-line para um cluster.

get

Recebe detalhes de um único cluster.

list

Lista os clusters em um determinado projeto e local.

patch

Atualiza os parâmetros de um único cluster.

upgrade

Faz upgrade de um único cluster.