Compartir a través de


Mostrar la configuración de un servidor PostgreSQL habilitado para Azure Arc

En este artículo se explica cómo mostrar la configuración del servidor. Lo explica anticipando algunas preguntas que puede que se haga y que encuentre respuestas. En ocasiones, puede haber varias respuestas válidas. En este artículo se detallan las más comunes y otras de utilidad. Esas preguntas se agrupan por tema:

  • Desde el punto de vista de Kubernetes
  • Desde el punto de vista de los servicios de datos habilitados para Azure Arc

Nota:

Como característica en versión preliminar, la tecnología que se presenta en este artículo está sujeta a los términos de uso complementarios para las versiones preliminares de Microsoft Azure.

Las actualizaciones más recientes están disponibles en las notas de la versión.

Desde el punto de vista de Kubernetes

¿Cuáles son los servidores de Postgres implementados y cuántos pods usan?

Enumere los recursos de Kubernetes del tipo Postgres. Ejecute el comando:

kubectl get postgresqls -n <namespace>

La salida de este comando muestra la lista de grupos de servidores creados. Para cada uno, se indica el número de pods. Por ejemplo:

NAME         STATE   READY-PODS   PRIMARY-ENDPOINT     AGE
postgres01   Ready   1/1          20.101.12.221:5432   12d

En este ejemplo se muestra que se crea un servidor. Se ejecuta en un pod.

¿Qué pods se usan en servidores PostgreSQL habilitados para Azure Arc?

Ejecute:

kubectl get pods -n <namespace>

El comando devuelve la lista de pods. Verá los pods usados por servidores en función de los nombres asignados a esos servidores. Por ejemplo:

NAME                 READY   STATUS    RESTARTS   AGE
bootstrapper-4jrtl   1/1     Running   0          12d
control-kz8gh        2/2     Running   0          12d
controldb-0          2/2     Running   0          12d
logsdb-0             3/3     Running   0          12d
logsui-qjkgz         3/3     Running   0          12d
metricsdb-0          2/2     Running   0          12d
metricsdc-4jslw      2/2     Running   0          12d
metricsdc-4tl2g      2/2     Running   0          12d
metricsdc-fkxv2      2/2     Running   0          12d
metricsdc-hs4h5      2/2     Running   0          12d
metricsdc-tvz22      2/2     Running   0          12d
metricsui-7pcch      2/2     Running   0          12d
postgres01-0         3/3     Running   0          2d19h

¿Cuál es el estado de los pods?

Ejecute kubectl get pods -n <namespace> y examine la columna STATUS.

¿Qué notificaciones de volumen persistente (PVC) se usan?

Para comprender qué PVC se usan, y cuáles se usan para datos y registros, ejecute:

kubectl get pvc -n <namespace>

De forma predeterminada, el prefijo del nombre de una PVC indica su uso:

  • data-...: es una PVC que se usa para archivos de datos.
  • logs-...: es una PVC que se usa para los registros de transacciones y los archivos WAL.

Por ejemplo:

NAME                                            STATUS   VOLUME              CAPACITY   ACCESS MODES   STORAGECLASS    AGE
data-few7hh0k4npx9phsiobdc3hq-postgres01-0      Bound    local-pv-3c1a8cc5   1938Gi     RWO            local-storage   6d6h
data-few7hh0k4npx9phsiobdc3hq-postgres01-1      Bound    local-pv-8303ab19   1938Gi     RWO            local-storage   6d6h
data-few7hh0k4npx9phsiobdc3hq-postgres01-2      Bound    local-pv-55572fe6   1938Gi     RWO            local-storage   6d6h
...
logs-few7hh0k4npx9phsiobdc3hq-postgres01-0      Bound    local-pv-5e852b76   1938Gi     RWO            local-storage   6d6h
logs-few7hh0k4npx9phsiobdc3hq-postgres01-1      Bound    local-pv-55d309a7   1938Gi     RWO            local-storage   6d6h
logs-few7hh0k4npx9phsiobdc3hq-postgres01-2      Bound    local-pv-5ccd02e6   1938Gi     RWO            local-storage   6d6h
...

¿Cuánta memoria y núcleos virtuales usa un servidor?

Use kubectl para describir los recursos de Postgres. Para ello, necesita su tipo (nombre del recurso de Kubernetes, CRD, para Postgres en Azure Arc) y el nombre del grupo de servidores.

El formato general de este comando es:

kubectl describe <CRD name>/<server name> -n <namespace>

Por ejemplo:

kubectl describe postgresql/postgres01 -n arc

Este comando muestra la configuración del grupo de servidores:

Name:         postgres01
Namespace:    arc
Labels:       <none>
Annotations:  <none>
API Version:  arcdata.microsoft.com/v1beta2
Kind:         PostgreSql
Metadata:
  Creation Timestamp:  2021-10-13T01:09:25Z
  Generation:          29
  Managed Fields:
    API Version:  arcdata.microsoft.com/v1beta2
    Fields Type:  FieldsV1
    fieldsV1:
      f:spec:
        .:
        f:dev:
        f:scheduling:
          .:
          f:default:
            .:
            f:resources:
              .:
              f:limits:
                .:
                f:cpu:
                f:memory:
              f:requests:
                .:
                f:cpu:
                f:memory:
        f:services:
          .:
          f:primary:
            .:
            f:port:
            f:type:
        f:storage:
          .:
          f:data:
            .:
            f:volumes:
          f:logs:
            .:
            f:volumes:
    Manager:      OpenAPI-Generator
    Operation:    Update
    Time:         2021-10-22T22:37:51Z
    API Version:  arcdata.microsoft.com/v1beta2
    Fields Type:  FieldsV1
    fieldsV1:
      f:IsValid:
      f:status:
        .:
        f:lastUpdateTime:
        f:logSearchDashboard:
        f:metricsDashboard:
        f:observedGeneration:
        f:primaryEndpoint:
        f:readyPods:
        f:state:
    Manager:         unknown
    Operation:       Update
    Time:            2021-10-22T22:37:53Z
  Resource Version:  1541521
  UID:               23565e53-2e7a-4cd6-8f80-3a79397e1d7a
Spec:
  Dev:  false
  Scheduling:
    Default:
      Resources:
        Limits:
          Cpu:     2
          Memory:  1Gi
        Requests:
          Cpu:     1
          Memory:  256Mi
  Services:
    Primary:
      Port:  5432
      Type:  LoadBalancer
  Storage:
    Data:
      Volumes:
        Class Name:  managed-premium
        Size:        5Gi
    Logs:
      Volumes:
        Class Name:  managed-premium
        Size:        5Gi
Status:
  Last Update Time:      2021-10-22T22:37:53.000000Z
  Log Search Dashboard:  https://12.235.78.99:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:postgres01'))
  Metrics Dashboard:     https://12.346.578.99:3000/d/postgres-metrics?var-Namespace=arc&var-Name=postgres01
  Observed Generation:   29
  Primary Endpoint:      20.101.12.221:5432
  Ready Pods:            1/1
  State:                 Ready
Events:                  <none>

Interpretación de la información de configuración

Vamos a explicar algunos puntos específicos de interés de la descripción del elemento server mostrada anteriormente. ¿Qué nos informa sobre este servidor?

  • Se creó el 13 de octubre de 2021:

       Metadata:
       Creation Timestamp:  2021-10-13T01:09:25Z
    
  • Configuración de recursos: en este ejemplo, se garantizan 256 Mi de memoria. El servidor no puede usar más de 1 Gi de memoria. Se le garantiza un núcleo virtual y no puede consumir más de dos núcleos virtuales.

          Scheduling:
         Default:
           Resources:
              Limits:
                Cpu:     2
                Memory:  1Gi
              Requests:
                Cpu:     1
                Memory:  256Mi
    
  • ¿Cuál es el estado del servidor? ¿Está disponible para mis aplicaciones?

    Sí, los pods están listos.

    Ready Pods:                1/1
    

Desde el punto de vista de los servicios de datos habilitados para Azure Arc

Use los comandos de la CLI de Az.

¿Cuáles son los servidores Postgres implementados?

Ejecute el siguiente comando:

az postgres server-arc list --k8s-namespace <namespace> --use-k8s

Enumera los servidores que hay implementados.

[
  {
    "name": "postgres01",
    "state": "Ready"
  }
]

¿Cuánta memoria y núcleos virtuales se usan?

Ejecute uno de los siguientes comandos:

az postgres server-arc show -n <server name>  --k8s-namespace <namespace> --use-k8s

Por ejemplo:

az postgres server-arc show -n postgres01 --k8s-namespace arc --use-k8s

Devuelve la información en un formato y contenido similar al devuelto por kubectl. Use la herramienta que prefiera para interactuar con el sistema.