Отображение конфигурации сервера PostgreSQL с поддержкой Azure Arc
В этой статье объясняется, как отобразить конфигурацию сервера. Для этого следует задать себе определенные вопросы и ответить на них. Иногда может быть несколько допустимых ответов. В этой статье описываются наиболее распространенные или полезные варианты. Вопросы здесь сгруппированы по темам:
- С точки зрения Kubernetes
- С точки зрения служб данных с поддержкой Azure Arc
Примечание.
В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.
Последние обновления доступны в заметках о выпуске.
С точки зрения Kubernetes
Что такое развернутые серверы Postgres и сколько модулей pod они используют?
Составьте список ресурсов Kubernetes типа Postgres. Выполните команду:
kubectl get postgresqls -n <namespace>
Выходные данные этой команды содержат список созданных групп серверов. Для каждой из них указано число модулей. Например:
NAME STATE READY-PODS PRIMARY-ENDPOINT AGE
postgres01 Ready 1/1 20.101.12.221:5432 12d
В этом примере показано, что создается один сервер. Он выполняется на одном модуле pod.
Какие модули pod используются серверами PostgreSQL с поддержкой Azure Arc?
Запустить:
kubectl get pods -n <namespace>
Команда возвращает список модулей pod. Вы увидите модули pod, используемые серверами на основе имен, предоставленных этим серверам. Например:
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
Каково состояние модулей?
Выполните команду kubectl get pods -n <namespace>
и посмотрите на столбец STATUS
.
Какие используются утверждения постоянных томов (PVC)?
Чтобы понять, какие ПВК используются, и которые используются для данных и журналов, выполните следующую команду:
kubectl get pvc -n <namespace>
По умолчанию на использование PVC указывает префикс имени:
data-
...: PVC используется для файлов данныхlogs-
...: PVC используется для файлов журналов транзакций и WAL.
Например:
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
...
Сколько памяти и виртуальных ядер используется сервером?
Используйте kubectl для описания ресурсов Postgres. Для этого необходимо его тип (имя ресурса Kubernetes (CRD) для Postgres в Azure Arc) и имя группы серверов.
Необходимая команда имеет следующий формат:
kubectl describe <CRD name>/<server name> -n <namespace>
Например:
kubectl describe postgresql/postgres01 -n arc
Эта команда показывает конфигурацию группы серверов:
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>
Интерпретация сведений о конфигурации
Рассмотрим некоторые интересные моменты в описании server
выше. Что это говорит нам об этом сервере?
Он был создан в течение 13 октября 2021 г.:
Metadata: Creation Timestamp: 2021-10-13T01:09:25Z
Конфигурация ресурсов: в этом примере гарантируется 256Mi памяти. Сервер не может использовать больше 1Gi памяти. Это гарантируется один виртуальный ядер и не может использовать более двух виртуальных ядер.
Scheduling: Default: Resources: Limits: Cpu: 2 Memory: 1Gi Requests: Cpu: 1 Memory: 256Mi
Что такое состояние сервера? Доступно ли оно для моих приложений?
Да, модули pod готовы
Ready Pods: 1/1
С точки зрения служб данных с поддержкой Azure Arc
Используйте команды Az CLI.
Что такое развернутые серверы Postgres?
Выполните следующую команду.
az postgres server-arc list --k8s-namespace <namespace> --use-k8s
В нем перечислены развернутые серверы.
[
{
"name": "postgres01",
"state": "Ready"
}
]
Сколько памяти и виртуальных ядер используется?
Выполните любую из команд ниже.
az postgres server-arc show -n <server name> --k8s-namespace <namespace> --use-k8s
Например:
az postgres server-arc show -n postgres01 --k8s-namespace arc --use-k8s
Возвращает сведения в формате и содержимом, аналогичном тому, который возвращает kubectl. Используйте средство, выбранное для взаимодействия с системой.