์ฌ์ฉ์ ์ญํ ๊ด๋ฆฌ
AlloyDB Omni๋ PostgreSQL์ฉ AlloyDB์ ํฌํจ๋ ์ฌ์ ์ ์๋ PostgreSQL ์ฌ์ฉ์ ์ญํ ๊ณผ ๋์ผํ ์งํฉ์ ์ฌ์ฉํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
AlloyDB Omni์๋
alloydbadmin
๋ผ๋ ์ํผ์ ์ ์ญํ ๊ณผalloydbmetadata
๋ผ๋ ๋น์ํผ์ ์ ์ญํ ์ด ํฌํจ๋์ด ์์ต๋๋ค.๊ธฐ๋ณธ
postgres
์ฌ์ฉ์์๊ฒ๋ ์ํผ์ ์ ์ญํ ์ด ์์ต๋๋ค.๋ค๋ฅธ ๋ชจ๋ ์ฌ์ ์ ์๋ ์ฌ์ฉ์ ์ญํ ์๋ ๊ถํ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ฒ์๋ ํฅํ ์ฌ์ฉ์ ์ํด ์์ฝ๋์ด ์์ต๋๋ค.
AlloyDB์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์ ํ ๋๋ ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ข์ต๋๋ค.
postgres
์ฌ์ฉ์ ์ญํ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ํ๊ฑฐ๋ ๊ฐ์ ธ์ต๋๋ค. ์ ์ค์น์์ ์ด ์ญํ ์๋ ์ํผ์ ์ ๊ถํ์ด ์์ผ๋ฉฐ ๋น๋ฐ๋ฒํธ๊ฐ ํ์ํ์ง ์์ต๋๋ค.postgres
์ฌ์ฉ์ ์ญํ ์ ๋ค์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์ด๋ธ์ ๋ํ ์ฌ๋ฐ๋ฅธ ์ก์ธ์ค ์์ค์ด ์๋ ์ ์ฌ์ฉ์ ์ญํ ์ ๋ง๋ญ๋๋ค.์ด๋ฌํ ์๋ก์ด ์ ํ๋ ์ก์ธ์ค ์ญํ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํฉ๋๋ค.
ํ์ํ ๋งํผ ์ ์ฌ์ฉ์ ์ญํ ์ ๋ง๋ค์ด ์ ์ํ ์ ์์ต๋๋ค. AlloyDB Omni์ ํจ๊ป ์ ๊ณต๋๋ ์ฌ์ฉ์ ์ญํ ์ ์์ ํ๊ฑฐ๋ ์ญ์ ํ์ง ๋ง์ธ์.
์์ธํ ๋ด์ฉ์ AlloyDB Omni ์ฌ์ฉ์ ๋ฐ ์ญํ ๊ด๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
AlloyDB Omni ๋ชจ๋ํฐ๋ง
AlloyDB Omni ์ค์น ๋ชจ๋ํฐ๋ง์๋ AlloyDB Omni ๋ก๊ทธ ํ์ผ ์ฝ๊ธฐ ๋ฐ ๋ถ์์ด ํฌํจ๋ฉ๋๋ค.
Kubernetes์์ ์คํ๋๋ AlloyDB Omni๋ Prometheus ์๋ํฌ์ธํธ๋ก ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ณธ ์ธก์ ํญ๋ชฉ ์งํฉ์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ธก์ ํญ๋ชฉ ๋ชฉ๋ก์ AlloyDB Omni ์ธก์ ํญ๋ชฉ์ ์ฐธ๊ณ ํ์ธ์.
๋ํ Kubernetes์์ ์คํ๋๋ AlloyDB Omni๋ kube-state-metrics(KSM)๋ฅผ ํ์ฉํ๋ ์ปค์คํ ๋ฆฌ์์ค์ ์ธก์ ํญ๋ชฉ์ ๋ ธ์ถํฉ๋๋ค. ์ปค์คํ ๋ฆฌ์์ค ์ธก์ ํญ๋ชฉ์ ์ฌ์ฉ ์ค์ ํ๋ ค๋ฉด AlloyDB Omni Kubernetes ์ฐ์ฐ์ ์ปค์คํ ๋ฆฌ์์ค ๋ชจ๋ํฐ๋ง์ ์ฐธ๊ณ ํ์ธ์.
๋จ์ผ ์๋ฒ
๊ธฐ๋ณธ์ ์ผ๋ก AlloyDB Omni ๋ก๊ทธ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์์ ์คํํ์ธ์.
Docker
docker logs CONTAINER_NAME
CONTAINER_NAME
์ AlloyDB Omni ์ปจํ
์ด๋ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
AlloyDB Omni์ ๋ก๊น ๋์์ ๊ตฌ์ฑํ๋ ค๋ฉด AlloyDB Omni ์ค์น ๋ง์ถค์ค์ ์ ์ฐธ๊ณ ํ์ธ์.
Podman
podman logs CONTAINER_NAME
CONTAINER_NAME
์ AlloyDB Omni ์ปจํ
์ด๋ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
AlloyDB Omni์ ๋ก๊น ๋์์ ๊ตฌ์ฑํ๋ ค๋ฉด AlloyDB Omni ์ค์น ๋ง์ถค์ค์ ์ ์ฐธ๊ณ ํ์ธ์.
Kubernetes
๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ๋ก๊ทธ ํ์ผ ์ฐพ๊ธฐ
postgresql.audit
๋ฐ postgresql.log
ํ์ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๋์ ํ์ผ ์์คํ
์ ์์ต๋๋ค. postgresql.audit
์(๋) pgaudit์ ์ฌ์ฉ ์ค์ ํ ๊ฒฝ์ฐ์๋ง ํ์๋ฉ๋๋ค.
์ด๋ฌํ ํ์ผ์ ์ก์ธ์คํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๋ ์ด๋ฆ์ด ํฌํจ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ ์ํฉ๋๋ค.
export DB_POD=`kubectl get pod -l alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
DB_CLUSTER_NAME
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ ์ ์ธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ์ด๋ฆ๊ณผ ๋์ผํฉ๋๋ค.๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๋์์ ๋ฃจํธ๋ก ์ ธ์ ์คํํฉ๋๋ค.
kubectl exec ${DB_POD} -it -- /bin/bash
/obs/diagnostic/
๋๋ ํฐ๋ฆฌ์์ ๋ก๊ทธ ํ์ผ์ ์ฐพ์ต๋๋ค./obs/diagnostic/postgresql.audit
/obs/diagnostic/postgresql.log
๋ชจ๋ํฐ๋ง ์๋น์ค ๋์ด
v1.0
๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๋ฉด AlloyDB Omni๋ ๋์ผํ ๋ค์์คํ์ด์ค์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์ ๊ฐ ์ธ์คํด์ค CR์ ๋ํด ๋ค์ ๋ชจ๋ํฐ๋ง ์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค.
al-INSTANCE_NAME-monitoring-system
๋ชจ๋ํฐ๋ง ์๋น์ค๋ฅผ ๋์ดํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
kubectl get svc -n NAMESPACE | grep monitoring
NAMESPACE
์ ํด๋ฌ์คํฐ๊ฐ ์ํ ๋ค์์คํ์ด์ค๋ก ๋ฐ๊ฟ๋๋ค.
๋ค์ ์์ ์๋ต์ al-1060-dbc-monitoring-system
, al-3de6-dbc-monitoring-system
, al-4bc0-dbc-monitoring-system
์๋น์ค๋ฅผ ๋ณด์ฌ์ค๋๋ค. ๊ฐ ์๋น์ค๋ ํ๋์ ์ธ์คํด์ค์ ํด๋นํฉ๋๋ค.
al-1060-dbc-monitoring-system ClusterIP 10.0.15.227 <none> 9187/TCP 7d20h
al-3de6-dbc-monitoring-system ClusterIP 10.0.5.205 <none> 9187/TCP 7d19h
al-4bc0-dbc-monitoring-system ClusterIP 10.0.15.92 <none> 9187/TCP 7d19h
๋ฒ์ < 1.0
๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๋ฉด AlloyDB Omni๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์ ๋์ผํ ๋ค์์คํ์ด์ค์ ๋ค์ ๋ชจ๋ํฐ๋ง ์๋น์ค๋ฅผ ๋ง๋ญ๋๋ค.
DB_CLUSTER-monitoring-db
DB_CLUSTER-monitoring-system
๋ชจ๋ํฐ๋ง ์๋น์ค๋ฅผ ๋์ดํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
kubectl get svc -n NAMESPACE | grep monitoring
NAMESPACE
์ ํด๋ฌ์คํฐ๊ฐ ์ํ ๋ค์์คํ์ด์ค๋ก ๋ฐ๊ฟ๋๋ค.
๋ค์ ์์ ์๋ต์ al-2953-dbcluster-foo7-monitoring-system
๋ฐ al-2953-dbcluster-foo7-monitoring-db
์๋น์ค๋ฅผ ๋ณด์ฌ์ค๋๋ค.
al-2953-dbcluster-foo7-monitoring-db ClusterIP 10.36.3.243 <none> 9187/TCP 44m
al-2953-dbcluster-foo7-monitoring-system ClusterIP 10.36.7.72 <none> 9187/TCP 44m
๋ช ๋ น์ค์์ Prometheus ์ธก์ ํญ๋ชฉ ๋ณด๊ธฐ
ํฌํธ 9187
์ ๋ชจ๋ ๋ชจ๋ํฐ๋ง ์๋น์ค์์ metricsalloydbomni
๋ก ์ด๋ฆ์ด ์ง์ ๋ฉ๋๋ค.
๋ก์ปฌ ํ๊ฒฝ์์ ๋ชจ๋ํฐ๋ง ์๋น์ค๋ก ํฌํธ ์ ๋ฌ์ ์ค์ ํฉ๋๋ค.
kubectl port-forward service/MONITORING_SERVICE -n NAMESPACE MONITORING_METRICS_PORT:metricsalloydbomni
๋ค์์ ๋ฐ๊ฟ๋๋ค.
MONITORING_SERVICE
: ์ ๋ฌํ๋ ค๋ ๋ชจ๋ํฐ๋ง ์๋น์ค์ ์ด๋ฆ์ ๋๋ค(์:al-1060-dbc-monitoring-system
).NAMESPACE
: ํด๋ฌ์คํฐ๊ฐ ์ํ ๋ค์์คํ์ด์ค์ ๋๋ค.MONITORING_METRICS_PORT
: ์ฌ์ฉ ๊ฐ๋ฅํ ๋ก์ปฌ TCP ํฌํธ์ ๋๋ค.
๋ค์ ์๋ต์ ์๋น์ค๊ฐ ์ ๋ฌ๋๊ณ ์์์ ๋ณด์ฌ์ค๋๋ค.
Forwarding from 127.0.0.1:9187 -> 9187 Forwarding from [::1]:9187 -> 9187
์ด์ ๋ช ๋ น์ด๊ฐ ์คํ๋๋ ๋์ ์ง์ ํ ํฌํธ์ HTTP๋ฅผ ํตํด ๋ชจ๋ํฐ๋ง ์ธก์ ํญ๋ชฉ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด
curl
์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ธก์ ํญ๋ชฉ์ ์ผ๋ฐ ํ ์คํธ๋ก ๋ณผ ์ ์์ต๋๋ค.curl http://localhost:MONITORING_METRICS_PORT/metrics
Prometheus API๋ฅผ ์ฌ์ฉํ์ฌ ์ธก์ ํญ๋ชฉ ๋ณด๊ธฐ
alloydbomni.internal.dbadmin.goog/task-type
๋ผ๋ฒจ ํค์ metricsalloydbomni
ํฌํธ๋ AlloyDB Omni์ ๋ชจ๋ ๋ชจ๋ํฐ๋ง ์๋น์ค์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ๋จ์ผ serviceMonitor
์ปค์คํ
๋ฆฌ์์ค์ ํจ๊ป ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ค์์คํ์ด์ค์ ์๋ ๋ชจ๋ ์๋น์ค๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
Prometheus API ์ฌ์ฉ์ ๋ํ ์์ธํ ๋ด์ฉ์ Prometheus Operator ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๋ค์์ alloydbomni.internal.dbadmin.gdc.goog/task-type
๋ผ๋ฒจ ํค์ metricsalloydbomni
ํฌํธ๋ฅผ ํฌํจํ๋ serviceMonitor
์ปค์คํ
๋ฆฌ์์ค์ spec
ํ๋์ ์์์
๋๋ค. serviceMonitor
์ปค์คํ
๋ฆฌ์์ค๋ ๋ชจ๋ ๋ค์์คํ์ด์ค์ ๋ชจ๋ Kubernetes ์๋น์ค๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์์งํฉ๋๋ค.
์ ์ฒด ServiceMonitor
์ ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ServiceMonitor
์ปค์คํ
๋ฆฌ์์ค ์ ์ ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
v1.0
spec:
selector:
matchLabels:
alloydbomni.internal.dbadmin.goog/task-type: monitoring
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
๋ฒ์ < 1.0
spec:
selector:
matchExpressions:
- key: alloydbomni.internal.dbadmin.gdc.goog/task-type
operator: Exists
values: []
namespaceSelector:
any: true
endpoints:
- port: metricsalloydbomni
Grafana๋ฅผ ์ฌ์ฉํ์ฌ ์ธก์ ํญ๋ชฉ ๋ณด๊ธฐ
Kubernetes์ AlloyDB Omni์์ ์ธก์ ํญ๋ชฉ์ ์๊ฐ์ ์ผ๋ก ํํํ๋ ค๋ฉด ๋ชจ๋ํฐ๋ง ๋์๋ณด๋๋ฅผ ์ฌ์ฉํ์ธ์. ๋ชจ๋ํฐ๋ง ๋์๋ณด๋๋ Prometheus์ Grafana๋ก ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ๊ด์ธก ๊ฐ๋ฅ์ฑ ์คํ์ ์ฌ์ฉํฉ๋๋ค. AlloyDB Omni์์ ์ธก์ ํญ๋ชฉ์ ์์งํ๋๋ก ๋ชจ๋ํฐ๋ง ๋์๋ณด๋๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
Grafana ๋์๋ณด๋๋ฅผ ๋ค์ด๋ก๋ํ๋ ค๋ฉด
wget
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.wget https://raw.githubusercontent.com/GoogleCloudPlatform/alloydb-omni-samples/refs/heads/main/monitoring-dashboards/grafana/alloydbomni_dashboard.yaml
Kubernetes์ Grafana๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ ์ grafana-operator๋ฅผ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ค์น๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๋์๋ณด๋๋ฅผ ์ค์นํ Grafana ์ธ์คํด์ค์
monitoring.dashboard/product=alloydb-omni
๋ผ๋ฒจ์ ์ถ๊ฐํฉ๋๋ค.kubectl label grafana/GRAFANA_INSTANCE_NAME monitoring.dashboard/product=alloydb-omni -n NAMESPACE
๋ค์์ ๋ฐ๊ฟ๋๋ค.
GRAFANA_INSTANCE_NAME
: ๋์๋ณด๋๋ฅผ ๋ฐฐ์นํ Grafana ์ธ์คํด์ค์ ์ด๋ฆ์ ๋๋ค.NAMESPACE
: Grafana ์ด์์๋ฅผ ๋ฐฐํฌํ ๋ค์์คํ์ด์ค์ ๋๋ค.
Kubernetes์ AlloyDB Omni ํด๋ฌ์คํฐ์ Grafana ๋์๋ณด๋ ๊ตฌ์ฑ์ ์ ์ฉํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ธ์.
kubectl apply -f alloydbomni_dashboard.yaml -n NAMESPACE
Grafana ์ฐ์ฐ์ ์ฌ์ฉ์ ๊ดํ ์์ธํ ๋ด์ฉ์ Grafana ์ฐ์ฐ์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Prometheus๋ฅผ ๋ฐ์ดํฐ ์์ค๋ก ์ฌ์ฉํ๋๋ก Grafana๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๋ฐ์ดํฐ ์์ค๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Grafana๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์ค ํ๋๋ฅผ ์ํํ์ธ์.
- AlloyDB Omni ๋์๋ณด๋์์ Grafana ํจ๋ ๋ชจ์์ ํ์ธํฉ๋๋ค.
Kubernetes ํด๋ฌ์คํฐ์์ Grafana ๋์๋ณด๋์ ๊ดํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
kubectl get grafanadashboard alloydb-omni-dashboard -n NAMESPACE -o jsonpath='{.status.conditions[?(@.type=="DashboardSynchronized")].status}'
๋ช ๋ น์ด๊ฐ
True
๋ฅผ ๋ฐํํ๋ฉดalloydb-omni-dashboard
์ด Grafana ์ธ์คํด์ค์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๋ ๊ฒ์ ๋๋ค.
AlloyDB Omni ์ ๊ทธ๋ ์ด๋
AlloyDB Omni 15.5.2 ์ดํ์์ 15.5.4๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ค๋ฉด ์ด์ ๋ฒ์ ์ AlloyDB Omni์์ ์ต์ ๋ฒ์ ์ผ๋ก ์ด์ ์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
15.5.4 ์ด์์์ ์ ๊ทธ๋ ์ด๋ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
์ ์ด๋ฏธ์ง ๋ฒ์ ์ ์ฌ์ฉํ์ฌ AlloyDB Omni๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
์ด์ ๋ฒ์ ์ AlloyDB Omni์์ ์ฌ์ฉ๋ ๊ฒฝ๋ก์ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
AlloyDB Omni ์ ๊ฑฐ
๋จ์ผ ์๋ฒ
AlloyDB Omni๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ AlloyDB Omni ์ปจํ ์ด๋๋ฅผ ์ค์งํ๊ณ ์ญ์ ํฉ๋๋ค.
Docker
docker container stop CONTAINER_NAME
docker container rm CONTAINER_NAME
CONTAINER_NAME
์ AlloyDB Omni ์ปจํ
์ด๋ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
Podman
podman container stop CONTAINER_NAME
podman container rm CONTAINER_NAME
CONTAINER_NAME
์ AlloyDB Omni ์ปจํ
์ด๋ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
Podman
podman container stop CONTAINER_NAME
podman container rm CONTAINER_NAME
CONTAINER_NAME
์ AlloyDB Omni ์ปจํ
์ด๋ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
AlloyDB Omni๋ฅผ ์ ๊ฑฐํ ํ ๋ฐ์ดํฐ๋ฅผ ๋ณด์กดํ ์ง ์ฌ๋ถ์ ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ์ธ๋ถ ๋ฐ์ดํฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ด๋, ๋ณด๊ด ๋๋ ์ญ์ ํ ์ ์์ต๋๋ค.
Kubernetes
๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ์ญ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋งค๋ํ์คํธ์์ isDeleted
๋ฅผ true
๋ก ์ค์ ํฉ๋๋ค.
๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค.
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"isDeleted":true}}' --type=merge
DB_CLUSTER_NAME
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค ๋ ์ ์ธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ์ด๋ฆ๊ณผ ๋์ผํฉ๋๋ค.
AlloyDB Omni ์ฐ์ฐ์ ์ ๊ฑฐ
Kubernetes ํด๋ฌ์คํฐ์์ AlloyDB Omni Kubernetes ์ฐ์ฐ์๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅด์ธ์.
๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ์ญ์ ํฉ๋๋ค.
for ns in $(kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces -o=jsonpath='{range .items[*]}{.metadata.namespace}{"\n"}{end}'); do for cr in $(kubectl get dbclusters.alloydbomni.dbadmin.goog -n $ns -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do kubectl patch dbclusters.alloydbomni.dbadmin.goog $cr -n $ns --type=merge -p '{"spec":{"isDeleted":true}}' done done
AlloyDB Omni Kubernetes ์ฐ์ฐ์๊ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ฅผ ์ญ์ ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌ์์ค๊ฐ ๋จ์ ์๋์ง ํ์ธํฉ๋๋ค.
kubectl get dbclusters.alloydbomni.dbadmin.goog --all-namespaces
AlloyDB Omni Kubernetes ์ฐ์ฐ์๊ฐ ๋ง๋ ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํฉ๋๋ค.
kubectl delete failovers.alloydbomni.dbadmin.goog --all --all-namespaces
kubectl delete restores.alloydbomni.dbadmin.goog --all --all-namespaces
kubectl delete switchovers.alloydbomni.dbadmin.goog --all --all-namespaces
AlloyDB Omni Kubernetes ์ฐ์ฐ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
helm uninstall alloydbomni-operator --namespace alloydb-omni-system
AlloyDB Omni Kubernetes ์ฐ์ฐ์์ ๊ด๋ จ๋ ๋ณด์ ๋น๋ฐ, ์ปค์คํ ๋ฆฌ์์ค ์ค๋ช , ๋ค์์คํ์ด์ค๋ฅผ ์ ๋ฆฌํฉ๋๋ค.
kubectl delete certificate -n alloydb-omni-system --all
kubectl get secrets --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,ANNOTATION:.metadata.annotations.cert-manager\.io/issuer-name | grep -E 'alloydbomni|dbs-al' | awk '{print $1 " " $2}' | xargs -n 2 kubectl delete secret -n
kubectl delete crd -l alloydb-omni=true
kubectl delete ns alloydb-omni-system
Kubernetes ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ํฌ๊ธฐ ์กฐ์
Kubernetes ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์ CPU, ๋ฉ๋ชจ๋ฆฌ ๋๋ ์คํ ๋ฆฌ์ง๋ฅผ ํฌ๊ธฐ ์กฐ์ ํ๋ ค๋ฉด ํฌ๋๋ฅผ ์ ์ํ๋ ๋งค๋ํ์คํธ์ resources
ํ๋๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค. AlloyDB Omni ์ฐ์ฐ์๋ ์ ์ฌ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๋์ ์ฆ์ ์ ์ฉํฉ๋๋ค.
AlloyDB Omni ์ฐ์ฐ์ ๋งค๋ํ์คํธ ๊ตฌ๋ฌธ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์คํ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์ ๋ฆฌ์์ค ์์ ์๋ ๋ค์ ์ ํ์ฌํญ์ด ์ ์ฉ๋ฉ๋๋ค.
- ์ง์ ๋
storageClass
๊ฐ ๋ณผ๋ฅจ ํ์ฅ์ ์ง์ํ๋ ๊ฒฝ์ฐ์๋ง ๋์คํฌ ํฌ๊ธฐ๋ฅผ ๋๋ฆด ์ ์์ต๋๋ค. - ๋์คํฌ ํฌ๊ธฐ๋ฅผ ์ค์ผ ์๋ ์์ต๋๋ค.