Définition de ressource personnalisée PgBouncer v1.3.0

Schéma de spécification

PgBouncerSpec définit l'état sélectionné de PgBouncer.

accessMode: string
allowSuperUserAccess: boolean
dbclusterRef: string
parameters: object
podSpec:
  image: string
  resources:
    cpu: integer or string
    memory: integer or string
  schedulingconfig:
    nodeaffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
        preference:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchFields:
          - key: string
            operator: string
            values: string
        weight: integer
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchFields:
          - key: string
            operator: string
            values: string
    podAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: string
              operator: string
              values: string
            matchLabels: object
          namespaceSelector:
            matchExpressions:
            - key: string
              operator: string
              values: string
            matchLabels: object
            namespaces: string
            topologyKey: string
        weight: integer
      requiredDuringSchedulingIgnoredDuringExecution:
        labelSelector:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchLabels: object
        namespaceSelector:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchLabels: object
        namespaces: string
        topologyKey: string
    podAntiAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
        podAffinityTerm:
          labelSelector:
            matchExpressions:
            - key: string
              operator: string
              type: string
            matchLabels: object
          namespaceSelector:
            matchExpressions:
            - key: string
              operator: string
              values: string
            matchLabels: object
          namespaces: string
          topologyKey: string
        weight: integer
      requiredDuringSchedulingIgnoredDuringExecution:
        labelSelector:
          matchExpressions:
          - key: string
            operator: string
            values: string
          matchLabels: object
        namespaceSelector:
          matchExpressions:
          - key: string
            operator: string
            type: string
          matchLabels: object
        namespaces: string
        topologyKey: string
    tolerations:
    - effect: string
      key: string
      operator: string
      tolerationSeconds: integer
      value: string
replicaCount: integer
serverTLS:
  certSecret:
    name: string
serviceOptions:
  annotations: object
  gcp:
    loadBalancerIP: string
    loadBalancerType: string
  type: object

Champ

Type
Obligatoire ou facultatif

 

Description
accessMode
string
Facultatif
Définit les modes d'accès read-write ou read-only pour les connexions PgBouncer. La valeur par défaut est read-only.
allowSuperUserAccess
boolean
Facultatif
AllowSuperUserAccess peut être défini sur "true" ou "false".
dbclusterRef
string
Obligatoire
DBClusterRef est le nom de DBCluster pour lequel PgBouncer met en commun les connexions. Vous devez créer l'objet PgBouncer dans le même espace de noms que le DBCluster qu'il référence. Ce champ est obligatoire pour le pool de connexions PgBouncer.
parameters
object
Facultatif
Les paramètres contiennent des paires clé-valeur de différentes configurations PgBouncer pouvant être définies. Consultez https://www.pgbouncer.org/config.html pour découvrir les différentes options disponibles. Créer un service PgBouncer fournit des exemples avec cette spécification.
podspec
object
Obligatoire
PodSpec contient les spécifications du pod PgBouncer. Il contient les ressources d'image, de calcul et de stockage qui servent le pod PgBouncer, ainsi que les options de planification.
podSpec.image
string
Obligatoire
Image est l'identifiant uniforme de ressource d'une image pgbouncer personnalisée dans le registre des artefacts.
podSpec.resources
object
Obligatoire
Les ressources représentent la configuration actuelle de la mémoire et du processeur.
podSpec.resources.cpu
integer or string
Obligatoire
Quantité de processeur alloué au conteneur pgbouncer.
podSpec.resources.memory
integer or string
Obligatoire
Quantité de mémoire allouée au conteneur PgBouncer.
podSpec.schedulingConfig
object
Facultatif
Utilisez le champ SchedulingConfig pour spécifier comment l'instance est planifiée sur les nœuds Kubernetes. Si vous modifiez un champ de la configuration de planification, Kubernetes peut reprogrammer le pod sur un autre nœud, en fonction de la nouvelle configuration.
podSpec.schedulingConfig.nodeAffinity
object
Facultatif
NodeAffinity décrit les règles de planification d'affinité de nœuds pour l'instance.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
Facultatif
Ce champ vous permet de spécifier des préférences d'affinité pour la planification des pods. Le planificateur tente de placer les pods sur des nœuds correspondant à vos préférences. Toutefois, ce n'est pas toujours possible. Le planificateur calcule une "pondération" pour chaque nœud en fonction de la façon dont il correspond à vos préférences, puis choisit le nœud avec la pondération la plus élevée.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
object
Obligatoire
Terme de sélecteur de nœud, associé au poids correspondant.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
object
Facultatif
Liste des exigences du sélecteur de nœuds par libellé du nœud.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
string
Obligatoire
Clé du libellé auquel le sélecteur s'applique.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
string
Obligatoire
Représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists, DoesNotExist, Gt et Lt.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
string
Facultatif
Tableau de valeurs de chaîne. Si l'opérateur est In ou NotIn, le tableau de valeurs ne doit pas être vide. Si l'opérateur est Exists ou DoesNotExist, le tableau des valeurs doit être vide. Si l'opérateur est Gt ou Lt, le tableau de valeurs doit contenir un seul élément, qui est interprété comme un entier. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
object
Facultatif
Liste des exigences du sélecteur de nœud par champ du nœud.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
string
Obligatoire
Clé du libellé auquel le sélecteur s'applique.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
string
Obligatoire
Représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists, DoesNotExist, Gt et Lt.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
string
Facultatif
Tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Si l'opérateur est Gt ou Lt, le tableau des valeurs doit comporter un seul élément, qui est interprété comme un entier. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
Obligatoire
La pondération associée à la correspondance du terme nodeSelectorTerm correspondant est comprise entre 1 et 100 (inclus).
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
Facultatif
Si les exigences d'affinité de ce champ ne sont pas remplies, le planificateur ne planifie pas le pod sur le nœud. Si les exigences d'affinité spécifiées par ce champ ne sont pas remplies à un moment donné de l'exécution du pod, par exemple en raison d'une mise à jour, le système peut essayer ou non de supprimer le pod de son nœud.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
object
Obligatoire
Liste des termes du sélecteur de nœuds. Les termes sont associés à l'opérateur OU.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
object
Facultatif
Liste des exigences du sélecteur de nœuds par libellé du nœud.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
string
Obligatoire
Clé du libellé auquel le sélecteur s'applique.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
string
Obligatoire
Représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists, DoesNotExist, Gt et Lt.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
string
Facultatif
Tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Si l'opérateur est Gt ou Lt, le tableau des valeurs doit comporter un seul élément, qui est interprété comme un entier. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
object
Facultatif
Liste des exigences du sélecteur de nœud par champ du nœud.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
string
Obligatoire
Clé du libellé auquel le sélecteur s'applique.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
string
Obligatoire
Représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists, DoesNotExist, Gt et Lt.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
string
Facultatif
Tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Si l'opérateur est Gt ou Lt, le tableau des valeurs doit comporter un seul élément, qui est interprété comme un entier. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAffinity
object
Facultatif
PodAffinity décrit les règles de planification d'affinité de pod pour l'instance.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
Facultatif
Le planificateur donne la priorité aux nœuds qui répondent aux expressions d'affinité spécifiées dans ce champ lors de la planification des pods. Le planificateur peut toujours choisir un nœud qui ne répond pas entièrement aux critères. Le nœud le plus privilégié est celui dont la pondération totale est la plus élevée. Ce poids est calculé en additionnant les valeurs de chaque nœud qui répond à toutes les exigences de planification (telles que les demandes de ressources ou les expressions d'affinité requiredDuringScheduling). Pour chaque podAffinityTerm correspondant, la pondération du nœud augmente, et le ou les nœuds ayant la pondération totale la plus élevée sont sélectionnés comme étant les plus préférés.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm
object
Obligatoire
Terme d'affinité de pod, associé à la pondération correspondante.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector
object
Facultatif
Requête de libellé sur un ensemble de ressources, dans ce cas, des pods.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions
object
Facultatif
Pour qu'une correspondance soit effectuée, toutes les expressions de correspondance de la liste doivent être vraies.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.key
string
Obligatoire
Clé du libellé auquel le sélecteur s'applique.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector
object
Facultatif
Requête d'étiquette sur l'ensemble des espaces de noms auxquels le terme s'applique. Ce terme s'applique à l'union des espaces de noms sélectionnés par ce champ et de ceux listés dans le champ "espaces de noms". Un sélecteur nul et une liste d'espaces de noms nulle ou vide signifient "espace de noms de ce pod". Un sélecteur vide ("{}") correspond à tous les espaces de noms.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions
object
Facultatif
matchExpressions est une liste d'exigences concernant le sélecteur d'étiquettes. Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.key
string
Obligatoire
key est la clé de libellé à laquelle le sélecteur s'applique.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces
string
Facultatif
namespaces spécifie une liste statique de noms d'espaces de noms auxquels le terme s'applique. Le terme s'applique à l'union des espaces de noms listés dans ce champ et de ceux sélectionnés par namespaceSelector. Une liste d'espaces de noms vide ou nulle et un namespaceSelector nul signifient "espace de noms de ce pod".
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey
string
Obligatoire
Ce pod doit être colocalisé (affinité) ou non colocalisé (anti-affinité) avec les pods correspondant au labelSelector dans les espaces de noms spécifiés. Un pod est défini comme colocalisé s'il s'exécute sur un nœud dont la valeur du libellé avec la clé topologyKey correspond à celle de n'importe quel nœud sur lequel l'un des pods sélectionnés s'exécute. La valeur "topologyKey" ne doit pas être vide.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
Obligatoire
pondération associée à la correspondance avec le podAffinityTerm correspondant, comprise entre 1 et 100.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
Facultatif
Si les exigences d'affinité spécifiées par ce champ ne sont pas respectées au moment de la planification, le pod ne sera pas planifié sur le nœud. Si les exigences d'affinité spécifiées par ce champ ne sont pas remplies à un moment donné de l'exécution du pod (par exemple, en raison d'une mise à jour du libellé du pod), le système peut essayer ou non d'éjecter le pod de son nœud. Lorsqu'il existe plusieurs éléments, les listes de nœuds correspondant à chaque podAffinityTerm se croisent, ce qui signifie que tous les termes doivent être satisfaits.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
Facultatif
Requête de libellé sur un ensemble de ressources, dans ce cas, des pods.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
Facultatif
Requête de libellé sur un ensemble de ressources, dans ce cas, des pods.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
object
Facultatif
Pour qu'une correspondance soit effectuée, toutes les expressions de correspondance de la liste doivent être vraies.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
string
Obligatoire
key est la clé de libellé à laquelle le sélecteur s'applique.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
Facultatif
Requête d'étiquette sur l'ensemble des espaces de noms auxquels le terme s'applique. Ce terme s'applique à l'union des espaces de noms sélectionnés par ce champ et de ceux listés dans le champ "espaces de noms". Un sélecteur nul et une liste d'espaces de noms nulle ou vide signifient "espace de noms de ce pod". Un sélecteur vide ("{}") correspond à tous les espaces de noms.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
object
Facultatif
matchExpressions est une liste d'exigences concernant le sélecteur d'étiquettes. Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
string
Obligatoire
key est la clé de libellé à laquelle le sélecteur s'applique.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists, DoesNotExist, Gt et Lt.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
string
Facultatif
namespaces spécifie une liste statique de noms d'espaces de noms auxquels le terme s'applique. Le terme s'applique à l'union des espaces de noms listés dans ce champ et de ceux sélectionnés par namespaceSelector. Une liste d'espaces de noms vide ou nulle et un namespaceSelector nul signifient "espace de noms de ce pod".
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
string
Obligatoire
Ce pod doit être colocalisé (affinité) ou non colocalisé (anti-affinité) avec les pods correspondant au labelSelector dans les espaces de noms spécifiés. Un pod est défini comme colocalisé s'il s'exécute sur un nœud dont la valeur du libellé avec la clé topologyKey correspond à celle de n'importe quel nœud sur lequel l'un des pods sélectionnés s'exécute. La valeur "topologyKey" ne doit pas être vide.
podSpec.schedulingConfig.podAntiAffinity
object
Facultatif
PodAntiAffinity décrit les règles de planification d'anti-affinité des pods pour l'instance.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
Facultatif
Le planificateur préfère planifier les pods sur les nœuds qui répondent aux expressions d'anti-affinité spécifiées par ce champ, mais il peut choisir un nœud qui ne respecte pas une ou plusieurs de ces expressions. Le nœud le plus préféré est celui qui présente la somme des poids la plus élevée. En d'autres termes, pour chaque nœud qui répond à toutes les exigences de planification (demande de ressources, expressions d'anti-affinité requiredDuringScheduling, etc.), calculez une somme en itérant les éléments de ce champ et en ajoutant "weight" à la somme, si le nœud contient des pods correspondant au podAffinityTerm correspondant. Le ou les nœuds ayant la somme la plus élevée sont les plus privilégiés.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm
object
Obligatoire
Terme d'affinité de pod, associé à la pondération correspondante.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector
object
Facultatif
Requête de libellé sur un ensemble de ressources, dans ce cas, des pods.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions
object
Facultatif
matchExpressions est une liste d'exigences concernant le sélecteur d'étiquettes. Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.key
string
Obligatoire
key est la clé de libellé à laquelle le sélecteur s'applique.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector
object
Facultatif
Requête d'étiquette sur l'ensemble des espaces de noms auxquels le terme s'applique. Ce terme s'applique à l'union des espaces de noms sélectionnés par ce champ et de ceux listés dans le champ "espaces de noms". Un sélecteur nul et une liste d'espaces de noms nulle ou vide signifient "espace de noms de ce pod". Un sélecteur vide ("{}") correspond à tous les espaces de noms.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions
object
Facultatif
matchExpressions est une liste d'exigences concernant le sélecteur d'étiquettes. Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.key
string
Obligatoire
key est la clé de libellé à laquelle le sélecteur s'applique.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabels
object
Facultatif
Carte des paires clé-valeur. Chaque paire clé-valeur joue le rôle d'exigence. Le planificateur fait correspondre les pods aux nœuds qui comportent tous les libellés spécifiés dans matchLabels.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces
string
Facultatif
namespaces spécifie une liste statique de noms d'espaces de noms auxquels le terme s'applique. Le terme s'applique à l'union des espaces de noms listés dans ce champ et de ceux sélectionnés par namespaceSelector. Une liste d'espaces de noms vide ou nulle et un namespaceSelector nul signifient "espace de noms de ce pod".
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey
string
Obligatoire
Ce pod doit être colocalisé (affinité) ou non colocalisé (anti-affinité) avec les pods correspondant au labelSelector dans les espaces de noms spécifiés. Un pod est défini comme colocalisé s'il s'exécute sur un nœud dont la valeur du libellé avec la clé topologyKey correspond à celle de n'importe quel nœud sur lequel l'un des pods sélectionnés s'exécute. La valeur "topologyKey" ne doit pas être vide.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
Obligatoire
pondération associée à la correspondance avec le podAffinityTerm correspondant, comprise entre 1 et 100.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
Facultatif
Si les exigences d'anti-affinité spécifiées par ce champ ne sont pas respectées au moment de la planification, le pod n'est pas planifié sur le nœud. Si les exigences d'anti-affinité spécifiées par ce champ ne sont plus respectées à un moment donné pendant l'exécution du pod (par exemple, en raison d'une mise à jour du libellé du pod), le système peut essayer ou non d'éjecter le pod de son nœud. Lorsque plusieurs éléments sont spécifiés, les listes de nœuds correspondant à chaque podAffinityTerm se croisent, ce qui signifie que tous les termes doivent être satisfaits.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
Facultatif
Requête de libellé sur un ensemble de ressources, dans ce cas, des pods.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
object
Facultatif
matchExpressions est une liste d'exigences concernant le sélecteur d'étiquettes. Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
string
Obligatoire
key est la clé de libellé à laquelle le sélecteur s'applique.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
Facultatif
Requête d'étiquette sur l'ensemble des espaces de noms auxquels le terme s'applique. Ce terme s'applique à l'union des espaces de noms sélectionnés par ce champ et de ceux listés dans le champ "espaces de noms". Un sélecteur nul et une liste d'espaces de noms nulle ou vide signifient "espace de noms de ce pod". Un sélecteur vide ("{}") correspond à tous les espaces de noms.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
object
Facultatif
matchExpressions est une liste d'exigences concernant le sélecteur d'étiquettes. Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
string
Obligatoire
key est la clé de libellé à laquelle le sélecteur s'applique.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
string
Obligatoire
L'opérateur représente la relation d'une clé avec un ensemble de valeurs. Les opérateurs valides sont In, NotIn, Exists et DoesNotExist.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
string
Facultatif
values est un tableau de valeurs de chaîne. Si l'opérateur est "In" ou "NotIn", le tableau de valeurs ne doit pas être vide. Si l'opérateur est "Exists" ou "DoesNotExist", le tableau des valeurs doit être vide. Ce tableau est remplacé lors d'un correctif de fusion stratégique.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
Facultatif
matchLabels est une carte de paires {clé,valeur}. Un seul élément {key,value} dans le mappage matchLabels équivaut à un élément de matchExpressions, dont le champ de clé est "key", l'opérateur est "In" et le tableau de valeurs ne contient que "value". Les exigences sont combinées par "AND".
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
string
Facultatif
namespaces spécifie une liste statique de noms d'espaces de noms auxquels le terme s'applique. Le terme s'applique à l'union des espaces de noms listés dans ce champ et de ceux sélectionnés par namespaceSelector. Une liste d'espaces de noms vide ou nulle et un namespaceSelector nul signifient "espace de noms de ce pod".
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
string
Obligatoire
Ce pod doit être colocalisé (affinité) ou non colocalisé (anti-affinité) avec les pods correspondant au labelSelector dans les espaces de noms spécifiés. Un pod est défini comme colocalisé s'il s'exécute sur un nœud dont la valeur du libellé avec la clé topologyKey correspond à celle de n'importe quel nœud sur lequel l'un des pods sélectionnés s'exécute. La valeur "topologyKey" ne doit pas être vide.
podSpec.schedulingConfig.tolerations
object
Facultatif
Les tolérances permettent de gérer l'autorisation ou l'interdiction de planifier une instance sur un nœud Kubernetes auquel une altération spécifique est appliquée.
podSpec.schedulingConfig.tolerations.effect
string
Facultatif
Effect indique l'effet de rejet à faire correspondre. Une valeur vide signifie que tous les effets de rejet sont acceptés. Si elles sont spécifiées, les valeurs autorisées sont NoSchedule, PreferNoSchedule et NoExecute.
podSpec.schedulingConfig.tolerations.key
string
Facultatif
Key est la clé de rejet à laquelle la tolérance s'applique. Un champ vide signifie que toutes les clés de contamination sont prises en compte. Si la clé est vide, l'opérateur doit être Exists. Cette combinaison signifie que toutes les valeurs et toutes les clés doivent correspondre.
podSpec.schedulingConfig.tolerations.operator
string
Facultatif
L'opérateur représente la relation d'une clé avec la valeur. Les opérateurs valides sont Exists et Equal. La valeur par défaut est Equal. Exists équivaut à un caractère générique pour la valeur, de sorte qu'un pod puisse tolérer tous les taints d'une catégorie particulière.
podSpec.schedulingConfig.tolerations.tolerationSeconds
integer
Facultatif
TolerationSeconds représente la période pendant laquelle la tolérance (qui doit avoir pour effet "NoExecute", sinon ce champ est ignoré) tolère le rejet. Par défaut, ce champ n'est pas défini, ce qui signifie que le rejet est toléré indéfiniment (ne pas expulser). Les valeurs nulles et négatives sont traitées comme des valeurs 0 (suppression immédiate) par le système.
podSpec.schedulingConfig.tolerations.value
string
Facultatif
La valeur correspond à la valeur de rejet à laquelle la tolérance correspond. Si l'opérateur est "Exists", la valeur doit être vide. Sinon, il doit s'agir d'une chaîne normale.
replicaCount
integer
Facultatif
ReplicaCount définit le nombre d'instances répliquées PgBouncer à déployer.
serverTLS
object
Facultatif
ServerTLSSpec définit le secret du certificat pour la communication chiffrée utilisée par PgBouncer pour se connecter au cluster de base de données pour la requête d'authentification.
serverTLS.certSecret
object
Facultatif
CertSecret fait référence au secret du certificat dans le même espace de noms. Le secret doit contenir les entrées ca.crt (certificat de l'autorité de certification), tls.key (clé privée) et tls.crt (certificat de l'entité finale). Les valeurs de ce secret sont utilisées pour renseigner les fichiers server_tls_ca_file, server_tls_cert_file et server_tls_key_file dans pgbouncer.ini. Le certificat de l'autorité de certification doit correspondre à celui qui a signé le certificat de la feuille du cluster de base de données. Le certificat de feuille doit contenir le nom commun "alloydbpgbouncer".
serverTLS.certSecret.name
string
Facultatif
Nom du référent. Pour en savoir plus, consultez Utiliser des objets#Noms.
serviceOptions
object
Obligatoire
ServiceOptions définit les options de connectivité pour accéder aux pods PgBouncer.
serviceOptions.annotations
object
Facultatif
L'annotation fournie par le client sera ajoutée à l'objet de service de type loadbalancer.
serviceOptions.gcp
object
Facultatif
GCP contient des attributs spécifiques à Google Cloud pour le LoadBalancer Kubernetes.
serviceOptions.gcp.loadBalancerIP
integer or string
Facultatif
LoadBalancerIP est une adresse IP statique. Pour en savoir plus, consultez Réserver une adresse IP externe statique.
serviceOptions.gcp.loadBalancerType
string
Facultatif
Un LoadBalancer peut être interne ou externe. Consultez la section Équilibreur de charge interne.
serviceOptions.type
string
Obligatoire
Type de service Kubernetes pour accéder au pod PgBouncer. Il peut avoir les valeurs suivantes: LoadBalancer ou ClusterIP.

Schéma d'état

PgBouncerStatus définit l'état observé de PgBouncer.

ipAddress: string
phase: string

Champ

Type
Obligatoire ou facultatif

 

Description
ipAddress
string
Obligatoire
ipAddress est le point de terminaison PgBouncer auquel vous pouvez vous connecter pour accéder à la base de données.
phase
string
Obligatoire
La phase décrit l'état du déploiement de PgBouncer. Des valeurs telles que "WaitingForDeploymentReady", "Acquiring IP" et "Ready" s'affichent ici.