PgBouncer v1.3.0 커스텀 리소스 정의

문서 버전을 선택합니다.

사양 스키마

PgBouncerSpec은 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

필드

유형
필수 또는 선택사항

 

설명
accessMode
string
선택사항
PgBouncer 연결의 read-write 또는 read-only 액세스 모드를 정의합니다. 기본값은 read-only입니다.
allowSuperUserAccess
boolean
선택사항
AllowSuperUserAccess는 true 또는 false로 설정할 수 있습니다.
dbclusterRef
string
필수
DBClusterRef는 PgBouncer가 연결을 풀링하는 DBCluster 이름입니다. 참조하는 DBCluster와 동일한 네임스페이스에 PgBouncer 객체를 만들어야 합니다. 이 필드는 PgBouncer 연결 풀링에 필요합니다.
parameters
object
선택사항
매개변수에는 설정할 수 있는 다양한 PgBouncer 구성의 키-값 쌍이 포함됩니다. 사용 가능한 다양한 옵션은 https://www.pgbouncer.org/config.html을 참고하세요. PgBouncer 서비스 만들기 에서는 이 사양의 몇 가지 샘플 예시를 제공합니다.
podspec
object
필수
PodSpec에는 PgBouncer 포드의 사양이 포함됩니다. 여기에는 PgBouncer 포드를 제공하는 이미지, 컴퓨팅, 스토리지 리소스와 함께 일정 옵션이 포함됩니다.
podSpec.image
string
필수
이미지는 아티팩트 레지스트리 내 맞춤설정된 pgbouncer 이미지의 Uniform Resource Identifier입니다.
podSpec.resources
object
필수
리소스는 메모리 및 CPU의 현재 구성을 나타냅니다.
podSpec.resources.cpu
integer or string
필수
pgbouncer 컨테이너에 할당된 CPU 양입니다.
podSpec.resources.memory
integer or string
필수
PgBouncer 컨테이너에 할당된 메모리 양입니다.
podSpec.schedulingConfig
object
선택사항
SchedulingConfig 필드를 사용하여 Kubernetes 노드에서 인스턴스가 예약되는 방식을 지정합니다. 예약 구성 내의 필드를 변경하면 새 구성에 따라 Kubernetes에서 포드를 다른 노드로 다시 예약할 수 있습니다.
podSpec.schedulingConfig.nodeAffinity
object
선택사항
NodeAffinity는 인스턴스의 노드 어피니티 예약 규칙을 설명합니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
선택사항
이 필드를 사용하면 포드 예약의 선호도를 지정할 수 있습니다. 스케줄러는 선호도와 일치하는 노드에 포드를 배치하려고 합니다. 하지만 항상 가능한 것은 아닙니다. 스케줄러는 선호도와 얼마나 일치하는지에 따라 각 노드의 '가중치'를 계산하고 가중치가 가장 높은 노드를 선택합니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference
object
필수
해당 가중치와 연결된 노드 선택기 용어입니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions
object
선택사항
노드의 라벨별 노드 선택기 요구사항 목록입니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.key
string
필수
선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.operator
string
필수
키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist, Gt, Lt입니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions.values
string
선택사항
문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 연산자가 Gt 또는 Lt인 경우 값 배열에는 정수로 해석되는 단일 요소가 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields
object
선택사항
노드의 필드별 노드 선택기 요구사항 목록입니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.key
string
필수
선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.operator
string
필수
키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist, Gt, Lt입니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields.values
string
선택사항
문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 연산자가 Gt 또는 Lt인 경우 값 배열에는 정수로 해석되는 단일 요소가 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
필수
해당 nodeSelectorTerm과 일치하는 데 연결된 가중치는 1~100 (포함) 범위에 있습니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
선택사항
이 필드의 어피니티 요구사항이 충족되지 않으면 스케줄러는 포드를 노드에 예약하지 않습니다. 업데이트 등으로 인해 포드 실행 중에 이 필드에 지정된 어피니티 요구사항이 충족되지 않으면 시스템에서 결국 노드에서 포드를 제거하려고 시도할 수도 있고 시도하지 않을 수도 있습니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms
object
필수
노드 선택기 용어 목록입니다. 용어는 OR됩니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions
object
선택사항
노드의 라벨별 노드 선택기 요구사항 목록입니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.key
string
필수
선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.operator
string
필수
키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist, Gt, Lt입니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions.values
string
선택사항
문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 연산자가 Gt 또는 Lt인 경우 값 배열에는 정수로 해석되는 단일 요소가 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields
object
선택사항
노드의 필드별 노드 선택기 요구사항 목록입니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.key
string
필수
선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.operator
string
필수
키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist, Gt, Lt입니다.
podSpec.schedulingConfig.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields.values
string
선택사항
문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 연산자가 Gt 또는 Lt인 경우 값 배열에는 정수로 해석되는 단일 요소가 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAffinity
object
선택사항
PodAffinity는 인스턴스의 포드 어피니티 예약 규칙을 설명합니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
선택사항
스케줄러는 포드를 예약할 때 이 필드에 지정된 어피니티 표현식을 충족하는 노드에 우선순위를 부여합니다. 스케줄러는 기준을 완전히 충족하지 않는 노드를 선택할 수도 있습니다. 가장 선호하는 노드는 총 가중치가 가장 높은 노드입니다. 이 가중치는 모든 예약 요구사항 (예: 리소스 요청 또는 requiredDuringScheduling 어피니티 표현식)을 충족하는 각 노드의 값을 더하여 계산됩니다. 일치하는 각 podAffinityTerm에 대해 노드의 가중치가 증가하고 총 가중치가 가장 높은 노드가 가장 선호하는 노드로 선택됩니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm
object
필수
해당 가중치와 연결된 포드 어피니티 용어입니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector
object
선택사항
리소스 집합(이 경우 포드)에 대한 라벨 쿼리입니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions
object
선택사항
일치하려면 목록 내의 모든 matchExpression이 true여야 합니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.key
string
필수
선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist입니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector
object
선택사항
용어가 적용되는 네임스페이스 집합에 대한 라벨 쿼리입니다. 이 용어는 이 필드에서 선택한 네임스페이스와 namespaces 필드에 나열된 네임스페이스의 합집합에 적용됩니다. null 선택기와 null 또는 빈 네임스페이스 목록은 '이 포드의 네임스페이스'를 의미합니다. 빈 선택기 ({})는 모든 네임스페이스와 일치합니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions
object
선택사항
matchExpressions는 라벨 선택기 요구사항 목록입니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.key
string
필수
key는 선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist입니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces
string
선택사항
namespaces는 용어가 적용되는 네임스페이스 이름의 정적 목록을 지정합니다. 이 용어는 이 필드에 나열된 네임스페이스와 namespaceSelector로 선택된 네임스페이스의 합집합에 적용됩니다. null 또는 빈 네임스페이스 목록과 null namespaceSelector는 '이 포드의 네임스페이스'를 의미합니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey
string
필수
이 포드는 지정된 네임스페이스에서 labelSelector와 일치하는 포드와 함께 배치 (어피니티)되거나 함께 배치되지 않아야 합니다 (안티 어피니티). 동일한 위치는 키 topologyKey가 있는 라벨의 값이 선택한 포드 중 하나가 실행 중인 노드의 값과 일치하는 노드에서 실행되는 것으로 정의됩니다. 빈 topologyKey는 허용되지 않습니다.
podSpec.schedulingConfig.podAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
필수
해당 podAffinityTerm과 일치하는 데 관련된 가중치입니다(범위: 1~100).
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
선택사항
예약 시 이 필드에 지정된 어피니티 요구사항이 충족되지 않으면 포드가 노드에 예약되지 않습니다. 포드 실행 중에 이 필드에 지정된 어피니티 요구사항이 충족되지 않으면(예: 포드 라벨 업데이트로 인해) 시스템에서 결국 노드에서 포드를 제거하려고 시도할 수도 있고 시도하지 않을 수도 있습니다. 요소가 여러 개인 경우 각 podAffinityTerm에 해당하는 노드 목록이 교차되므로 모든 용어가 충족되어야 합니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
선택사항
리소스 집합(이 경우 포드)에 대한 라벨 쿼리입니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
선택사항
리소스 집합(이 경우 포드)에 대한 라벨 쿼리입니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
object
선택사항
일치하려면 목록 내의 모든 matchExpression이 true여야 합니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
string
필수
key는 선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist입니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
선택사항
용어가 적용되는 네임스페이스 집합에 대한 라벨 쿼리입니다. 이 용어는 이 필드에서 선택한 네임스페이스와 namespaces 필드에 나열된 네임스페이스의 합집합에 적용됩니다. null 선택기와 null 또는 빈 네임스페이스 목록은 '이 포드의 네임스페이스'를 의미합니다. 빈 선택기 ({})는 모든 네임스페이스와 일치합니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
object
선택사항
matchExpressions는 라벨 선택기 요구사항 목록입니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
string
필수
key는 선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist, Gt, Lt입니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
string
선택사항
namespaces는 용어가 적용되는 네임스페이스 이름의 정적 목록을 지정합니다. 이 용어는 이 필드에 나열된 네임스페이스와 namespaceSelector로 선택된 네임스페이스의 합집합에 적용됩니다. null 또는 빈 네임스페이스 목록과 null namespaceSelector는 '이 포드의 네임스페이스'를 의미합니다.
podSpec.schedulingConfig.podAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
string
필수
이 포드는 지정된 네임스페이스에서 labelSelector와 일치하는 포드와 함께 배치 (어피니티)되거나 함께 배치되지 않아야 합니다 (안티 어피니티). 동일한 위치는 키 topologyKey가 있는 라벨의 값이 선택한 포드 중 하나가 실행 중인 노드의 값과 일치하는 노드에서 실행되는 것으로 정의됩니다. 빈 topologyKey는 허용되지 않습니다.
podSpec.schedulingConfig.podAntiAffinity
object
선택사항
PodAntiAffinity는 인스턴스의 포드 안티어피니티 예약 규칙을 설명합니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution
object
선택사항
스케줄러는 이 필드에 지정된 비선호도 표현식을 충족하는 노드에 포드를 예약하는 것을 선호하지만, 하나 이상의 표현식을 위반하는 노드를 선택할 수도 있습니다. 가장 선호되는 노드는 가중치의 합이 가장 큰 노드입니다. 즉, 모든 예약 요구사항 (리소스 요청, requiredDuringScheduling 비선호도 표현식 등)을 충족하는 각 노드에 대해 이 필드의 요소를 반복하고 노드에 해당 podAffinityTerm과 일치하는 포드가 있는 경우 합계에 '가중치'를 더하여 합계를 계산합니다. 합계가 가장 높은 노드가 가장 선호됩니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm
object
필수
해당 가중치와 연결된 포드 어피니티 용어입니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector
object
선택사항
리소스 집합(이 경우 포드)에 대한 라벨 쿼리입니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions
object
선택사항
matchExpressions는 라벨 선택기 요구사항 목록입니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.key
string
필수
key는 선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist입니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector
object
선택사항
용어가 적용되는 네임스페이스 집합에 대한 라벨 쿼리입니다. 이 용어는 이 필드에서 선택한 네임스페이스와 namespaces 필드에 나열된 네임스페이스의 합집합에 적용됩니다. null 선택기와 null 또는 빈 네임스페이스 목록은 '이 포드의 네임스페이스'를 의미합니다. 빈 선택기 ({})는 모든 네임스페이스와 일치합니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions
object
선택사항
matchExpressions는 라벨 선택기 요구사항 목록입니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.key
string
필수
key는 선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist입니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector.matchLabels
object
선택사항
키-값 쌍의 맵입니다. 각 키-값 쌍은 요구사항으로 작동합니다. 스케줄러는 matchLabels에 지정된 모든 라벨이 있는 노드와 포드를 일치시킵니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces
string
선택사항
namespaces는 용어가 적용되는 네임스페이스 이름의 정적 목록을 지정합니다. 이 용어는 이 필드에 나열된 네임스페이스와 namespaceSelector로 선택된 네임스페이스의 합집합에 적용됩니다. null 또는 빈 네임스페이스 목록과 null namespaceSelector는 '이 포드의 네임스페이스'를 의미합니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey
string
필수
이 포드는 지정된 네임스페이스에서 labelSelector와 일치하는 포드와 함께 배치 (어피니티)되거나 함께 배치되지 않아야 합니다 (안티 어피니티). 동일한 위치는 키 topologyKey가 있는 라벨의 값이 선택한 포드 중 하나가 실행 중인 노드의 값과 일치하는 노드에서 실행되는 것으로 정의됩니다. 빈 topologyKey는 허용되지 않습니다.
podSpec.schedulingConfig.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.weight
integer
필수
해당 podAffinityTerm과 일치하는 데 관련된 가중치입니다(범위: 1~100).
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution
object
선택사항
예약 시간에 이 필드에 지정된 안티어피니티 요구사항이 충족되지 않으면 포드가 노드에 예약되지 않습니다. 이 필드에 지정된 반어피니티 요구사항이 포드 실행 중에 어느 시점에서 충족되지 않으면 (예: 포드 라벨 업데이트로 인해) 시스템에서 결국 노드에서 포드를 축출하려고 시도할 수도 있고 시도하지 않을 수도 있습니다. 요소가 여러 개인 경우 각 podAffinityTerm에 해당하는 노드 목록이 교차되므로 모든 용어가 충족되어야 합니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
object
선택사항
리소스 집합(이 경우 포드)에 대한 라벨 쿼리입니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions
object
선택사항
matchExpressions는 라벨 선택기 요구사항 목록입니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key
string
필수
key는 선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist입니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector
object
선택사항
용어가 적용되는 네임스페이스 집합에 대한 라벨 쿼리입니다. 이 용어는 이 필드에서 선택한 네임스페이스와 namespaces 필드에 나열된 네임스페이스의 합집합에 적용됩니다. null 선택기와 null 또는 빈 네임스페이스 목록은 '이 포드의 네임스페이스'를 의미합니다. 빈 선택기 ({})는 모든 네임스페이스와 일치합니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions
object
선택사항
matchExpressions는 라벨 선택기 요구사항 목록입니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.key
string
필수
key는 선택기가 적용되는 라벨 키입니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.operator
string
필수
연산자는 키와 값 집합의 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists, DoesNotExist입니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchExpressions.values
string
선택사항
values는 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 대체됩니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector.matchLabels
object
선택사항
matchLabels는 {key,value} 쌍의 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 'key'이고 연산자가 'In'이며 값 배열에 'value'만 포함된 matchExpressions 요소와 동일합니다. 요구사항은 AND로 연결됩니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.namespaces
string
선택사항
namespaces는 용어가 적용되는 네임스페이스 이름의 정적 목록을 지정합니다. 이 용어는 이 필드에 나열된 네임스페이스와 namespaceSelector로 선택된 네임스페이스의 합집합에 적용됩니다. null 또는 빈 네임스페이스 목록과 null namespaceSelector는 '이 포드의 네임스페이스'를 의미합니다.
podSpec.schedulingConfig.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey
string
필수
이 포드는 지정된 네임스페이스에서 labelSelector와 일치하는 포드와 함께 배치 (어피니티)되거나 함께 배치되지 않아야 합니다 (안티 어피니티). 동일한 위치는 키 topologyKey가 있는 라벨의 값이 선택한 포드 중 하나가 실행 중인 노드의 값과 일치하는 노드에서 실행되는 것으로 정의됩니다. 빈 topologyKey는 허용되지 않습니다.
podSpec.schedulingConfig.tolerations
object
선택사항
톨러레이션을 사용하면 특정 taint가 적용된 Kubernetes 노드에 인스턴스 예약을 허용할지 또는 허용하지 않을지 관리할 수 있습니다.
podSpec.schedulingConfig.tolerations.effect
string
선택사항
Effect는 일치할 taint 효과를 나타냅니다. 비어 있으면 모든 taint 효과가 일치함을 의미합니다. 지정된 경우 허용되는 값은 NoSchedule, PreferNoSchedule, NoExecute입니다.
podSpec.schedulingConfig.tolerations.key
string
선택사항
Key는 톨러레이션(toleration)이 적용되는 taint 키입니다. 비어 있으면 모든 taint 키와 일치합니다. 키가 비어 있으면 연산자는 Exists여야 합니다. 이 조합은 모든 값과 모든 키가 일치해야 함을 의미합니다.
podSpec.schedulingConfig.tolerations.operator
string
선택사항
Operator는 키와 값의 관계를 나타냅니다. 유효한 연산자는 ExistsEqual입니다. 기본값은 Equal입니다. Exists는 값의 와일드카드와 동일하므로 포드가 특정 카테고리의 모든 테인트를 허용할 수 있습니다.
podSpec.schedulingConfig.tolerations.tolerationSeconds
integer
선택사항
TolerationSeconds는 내결함성 (효과가 NoExecute여야 함, 그렇지 않으면 이 필드는 무시됨)이 taint를 허용하는 기간을 나타냅니다. 기본적으로 이 필드는 설정되지 않으며 이는 오염을 영원히 허용 (제거하지 않음)한다는 의미입니다. 0과 음수 값은 시스템에서 0 (즉시 삭제)으로 처리됩니다.
podSpec.schedulingConfig.tolerations.value
string
선택사항
Value는 톨러레이션(toleration)이 일치할 taint 값입니다. 연산자가 Exists인 경우 값은 비어 있어야 하고, 그렇지 않으면 일반 문자열이어야 합니다.
replicaCount
integer
선택사항
ReplicaCount는 배포할 PgBouncer 복제본 수를 정의합니다.
serverTLS
object
선택사항
ServerTLSSpec은 PgBouncer가 인증 쿼리를 위해 데이터베이스 클러스터에 연결하는 데 사용하는 암호화된 통신의 인증서 보안 비밀번호를 정의합니다.
serverTLS.certSecret
object
선택사항
CertSecret은 동일한 네임스페이스 내의 인증서 보안 비밀을 참조합니다. 보안 비밀에는 ca.crt (CA 인증서), tls.key (비공개 키), tls.crt (리프 인증서) 항목이 포함되어야 합니다. 이 보안 비밀 내의 값은 pgbouncer.ini에서 server_tls_ca_file, server_tls_cert_file, server_tls_key_file을 채우는 데 사용됩니다. CA 인증서는 데이터베이스 클러스터의 리프 인증서에 서명한 CA와 일치해야 합니다. 리프 인증서에는 CommonName 'alloydbpgbouncer'가 포함되어야 합니다.
serverTLS.certSecret.name
string
선택사항
'지칭 대상의 이름입니다. 자세한 내용은 객체 작업#이름을 참고하세요.
serviceOptions
object
필수
ServiceOptions는 PgBouncer 포드에 액세스하기 위한 연결 옵션을 정의합니다.
serviceOptions.annotations
object
선택사항
고객이 제공한 주석은 loadbalancer 유형의 서비스 객체에 추가됩니다.
serviceOptions.gcp
object
선택사항
GCP에는 Kubernetes LoadBalancer의 Google Cloud 관련 속성이 포함되어 있습니다.
serviceOptions.gcp.loadBalancerIP
integer or string
선택사항
LoadBalancerIP는 고정 IP 주소입니다(고정 외부 IP 주소 예약 참고).
serviceOptions.gcp.loadBalancerType
string
선택사항
LoadBalancer는 내부 또는 외부일 수 있습니다. 내부 부하 분산기를 참고하세요.
serviceOptions.type
string
필수
PgBouncer 포드에 액세스하는 Kubernetes 서비스 유형입니다. 값은 LoadBalancer 또는 ClusterIP일 수 있습니다.

상태 스키마

PgBouncerStatus는 PgBouncer의 관찰된 상태를 정의합니다.

ipAddress: string
phase: string

필드

유형
필수 또는 선택사항

 

설명
ipAddress
string
필수
ipAddress는 데이터베이스에 액세스하기 위해 연결할 수 있는 PgBouncer 엔드포인트입니다.
phase
string
필수
phase는 PgBouncer 배포의 상태를 설명합니다. WaitingForDeploymentReady, Acquiring IP, Ready와 같은 값이 여기에 표시됩니다.