Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[SRETT #7] KubernetesでDBを動かしたい

nnaka2992
October 12, 2023

[SRETT #7] KubernetesでDBを動かしたい

3-shake SRE Tech Talk #7のLT枠で発表した内容の資料です
https://3-shake.connpass.com/event/293432/

LTでは以下の二点を扱っています
1. PostgreSQL Operatorの一つであるZalando PostgreSQL Operatorの紹介
2. GKEで動かしたZalando PostgreSQL OperatorとCloud SQLと見比べる

nnaka2992

October 12, 2023
Tweet

More Decks by nnaka2992

Other Decks in Programming

Transcript

  1. \du 2 株式会社スリーシェイク Sreake事業部 業務内容 - DBRE兼SRE見習い - クラウドもオンプレも分からない -

    Kubernetesも分からない - データベースも分からない - 自称データ雑用係 - DBAでもDBREでもデータエンジニアでも 興味あること - データベース関連ならなんでも 中楯 直希 @nnaka2992 @nnaka2992.bsky.social
  2. 実際のManifest Zalando PostgreSQL Operator 6 kind: "postgresql" apiVersion: "acid.zalan.do/v1" metadata:

    name: "nnaka2992-performance-comparison-cluster" namespace: "default" labels: team: nnaka2992 spec: teamId: "nnaka2992" postgresql: version: "15" numberOfInstances: 1 volume: size: "5Gi" users: test: [] databases: test: test enableMasterLoadBalancer: true resources: requests: cpu: 4000m # 4vCPU memory: 15258Mi # 16GB limits: cpu: 4000m memory: 15258Mi
  3. 動作確認 Zalando PostgreSQL Operator 7 2023-10-12 01:06:21 ⌚ nnaka2992-Dev in

    ~/Dev/gcloud/nnaka2992-kube-poc/manifests ◦ → kubectl get pods NAME READY STATUS RESTARTS AGE nnaka2992-performance-comparison-cluster-0 1/1 Running 0 176m postgres-operator-77f6d658c-wwrc6 1/1 Running 0 14h postgres-operator-ui-7bf9676b84-gb7fh 1/1 Running 0 14h # ここより下はProxyサーバ $ export PGPASSWORD=$(kubectl get secret test.nnaka2992-performance-comparison-cluster.credentials.postgresql.acid.zalan.do -o 'jsonpath={.data.password}' | base64 -d) $ host=$(kubectl get node -ojson | jq -r '.items[0].status.addresses[0].address') $ port=$(kubectl get svc nnaka2992-performance-comparison-cluster -ojson | jq -r '.spec.ports[0].nodePort') $ export PGSSLMODE=require $ psql -U test -h $host -p $port psql -U test -h $host -p $port psql (15.4 (Debian 15.4-2.pgdg110+1), server 15.2 (Ubuntu 15.2-1.pgdg22.04+1)) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off) Type "help" for help. test=> select schemaname as schema, viewname as name, 'view' as type from pg_views limit 3; schema | name | type ----------------+-------------------------+------ public | pg_stat_statements_info | view public | pg_stat_statements | view public | pg_stat_kcache_detail | view
  4. ただ動かすだけでは芸がないのでCloud SQL(VM)と比較 Cloud SQL for PostgreSQLとの比較 8 Kubernetes(GKE)のスペック - IOPS

    <=4000(2000x2) - Throughput <= 26MB - CPU 4000m - Memory 15258MiB IOPSとThroughputはiostatからの推定値 Cloud SQLのスペック - IOPS <=4500(2250x2) - Throughput <= 36MB - CPU 4vCPU - Memory 16GB
  5. 参考資料 12 - Google Joins Data on Kubernetes Community |

    Data on Kubernetes Comunity - https://dok.community/newsroom/google-joins-data-on-kubernetes-community/ - Postgres Operator - https://postgres-operator.readthedocs.io/en/latest/ - Quickstart | Postgres Operator - https://postgres-operator.readthedocs.io/en/latest/quickstart/ - PostgreSQLをKubernetes上で活用するための Operator紹介!(Cloud Native Database Meetup #3 発表資料) - https://www.slideshare.net/nttdata-tech/postgresql-kubernetes-operator-cloud-native-database-meetup-3-nttdata - Zalando Postgres Operatorの紹介 | SRA OSS Tech Blog - https://www.sraoss.co.jp/tech-blog/pgsql/zalando-postgres-operator/ - pgbench | PostgreSQL Documentation 16 - https://www.postgresql.org/docs/current/pgbench.html