你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
介绍已启用 Azure Arc 的 PostgreSQL 服务器的配置
本文介绍如何显示服务器的配置。 文章预测你可能会问自己的一些问题,并解答问题,以此进行说明。 有时问题可能会有多个有效答案。 本文介绍最常见或最有用的答案。 文章按主题对这些问题进行分组:
- 从 Kubernetes 的角度看
- 从已启用 Azure Arc 的数据服务的角度看
从 Kubernetes 的角度看
部署哪些 Postgres 服务器,它们使用多少个 Pod?
列出 Postgres 类型的 Kubernetes 资源。 运行以下命令:
kubectl get postgresqls -n <namespace>
此命令的输出显示已创建的服务器组的列表。 每个服务器组会显示 Pod 数。 例如:
NAME STATE READY-PODS PRIMARY-ENDPOINT AGE
postgres01 Ready 1/1 20.101.12.221:5432 12d
此示例显示已创建一个服务器。 它在一个 Pod 上运行。
已启用 Azure Arc 的 PostgreSQL 服务器使用什么 Pod?
运行:
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
Pod 的状态是什么?
运行 kubectl get pods -n <namespace>
并查看 STATUS
列
使用了哪些永久性卷声明(PVC)?
若要了解使用了哪些 PVC 以及哪些 PVC 用于数据和日志,请运行:
kubectl get pvc -n <namespace>
默认情况下,PVC 的名称前缀表示其用途:
data-
...:是用于数据文件的 PVClogs-
...:是用于事务日志/WAL 文件的 PVC
例如:
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
...
服务器在使用多少内存和 vCore?
使用 kubectl 描述 Postgres 资源。 为此,需要提供其种类(Azure Arc 中 Postgres 的 Kubernetes 资源 (CRD) 的名称)和服务器组的名称。
此命令的一般格式为:
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
说明中的一些具体兴趣点。 它告诉我们哪些有关此服务器的内容?
它是在 2021 年 10 月 13 日创建的:
Metadata: Creation Timestamp: 2021-10-13T01:09:25Z
资源配置:在此示例中,保证为它提供 256Mi 内存。 服务器不能使用 1Gi 以上的内存。 保证为它提供一个 vCore,它不能使用两个以上的 vCore。
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"
}
]
在使用多少内存和 vCore?
运行以下任一命令
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 返回的格式和内容返回信息。 使用所选的工具来与系统交互。