デモで解説、Kubernetes上のPostgreSQLEDB Cloud Native PostgreSQL POCのすゝめ
サイオステクノロジー株式会社
DX Product & Integration Service Line
Tatsuhiro Murata

世界中の人々のために、不可能を可能に。
私たちサイオスグループは、イノベーションによって人々の課題を解決し、より良い社会の実現に貢献します。
2

講師紹介--- 講師紹介
Name：村田 龍洋Company：サイオステクノロジー株式会社

Dept：DX Product & Integration- Task
2002年 サイオステクノロジー（当時のテンアートニ）に入社
ハードウェア部門、Linux/OSSサポート部門を経て、現在の事業企画へエンタープライズ向けのOSSサブスクリプション製品（EnterpriseDB,Red Hat など）の事業企画を担当

SIOS Technology, Inc.

3

Cloud Native PostgreSQL

4

あるべき状態を定義する● オブジェクトおよびインフラストラクチャ全体の望ましい状態の定義に合わせてオペレーションを実施○ 調整のループ■ インフラストラクチャの現在の状態は、あるべき状態と一致するように■ あるべき状態ない場合、オペレーターは反応して目的の状態を復元します○ 自己回復の基盤

SIOS Technology, Inc.

Point! 命令型と宣言型
命令型
1.
2.
3.
4.
5.
6.

宣言型

PostgreSQL 13 インスタンスを作成する
レプリケーション用の構成
2 つ目のクローンを作成する
レプリカとして設定する
3 つ目のクローンを作成する
レプリカとして設定する

1.

SIOS Technology, Inc.

2つのレプリカを持つ
PostgreSQL13クラスターがありますコントローラーのインストール

Operator manifest
EDB Docsにて Installation on Kubernetes のページを開きます。ここにインストール手順が記載されています。詳細は以下URLをご参照ください。
https://www.enterprisedb.com/docs/kubernetes/cloud_native_postgresql/installation_upgrade/

SIOS Technology, Inc.

マニフェストとは？
マニフェスト【manifest】
船舶やトラックなどの積荷目録。運搬される貨物の目録。
マニフェスト【manifesto】 《「宣言（書）」「声明（書）」の意》
１ 国政選挙では政党が、地方選挙では候補者が政権獲得後に実施する政策を具体的に挙げ、実施時期と予算措置について明確に有権者に提示した文書。政権公約。政策宣言。→選挙公約
２ 「アメリカ独立宣言」「共産党宣言」などの政策宣言のこと。

SIOS Technology, Inc.

PostgreSQL Clusterのデプロイ

EDB.yaml は何を宣言しているのか？
EDB.yaml の内容を見てみると「apiVersion:」「kind: 」はこの後のデモで共通で使われます。
ここでは、APIのバージョンしていを「postgresql.k8s.enterprisedb.io/v1」と指定しています。
次に kind では種別を指定します。ここでは、Cluster に関する宣言であることを示しています。

apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: cluster-examplespec:
imageName:quay.io/enterprisedb/edb-postgres-advanced:13.1
licenseKey: AA====
instances: 3
minSyncReplicas: 1
maxSyncReplicas: 2
primaryUpdateStrategy: unsupervised
storage:size: 5Gi

SIOS Technology, Inc.

EDB.yaml は何を宣言しているのか？
EDB.yaml の内容を見てみると
yaml にて以下の状態を指定しています。

メタデータ
名前「cluster-example」
仕様
EPAS 13.1のイメージ
インスタンス数は 3
レプリカの同時同期数は最小 1、最大2
ローリングアップデートは自動的に実施
ストレージサイズは 5Gi

apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: cluster-example
spec:
imageName:quay.io/enterprisedb/edb-postgres-advanced:13.1
licenseKey: AA====instances: 3
minSyncReplicas: 1
maxSyncReplicas: 2
primaryUpdateStrategy: unsupervised
storage:size: 5Gi

実際の動作を見てみましょう
SIOS Technology, Inc.

バックアップBackupの設定
Backupの設定ファイルのサンプルです。保存先がs3となっています。

backup:barmanObjectStore:
destinationPath: s3://xxxxxx/
s3Credentials:
accessKeyId:
name: aws-creds
key: ACCESS_KEY_ID
secretAccessKey:
name: aws-creds
key: ACCESS_SECRET_KEY
wal:compression: gzip
encryption: AES256

data:
compression: gzip
encryption: AES256
immediateCheckpoint: false
jobs: 2kubectl create secret generic aws-creds \--from-literal=ACCESS_KEY_ID=AKIAxxxxxxxxxxxxxxx
x \--from-literal=ACCESS_SECRET_KEY=xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

SIOS Technology, Inc.

backup.yaml は何を宣言しているのか？
backup.yaml の内容を見てみるとyaml にて以下の状態を指定しています。

種類
Backup
メタデータ
名前「backup-on-demand」
仕様
対象クラスタ「 cluster-example」$ cat backup.yaml
apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Backup
metadata:
name: backup-on-demand
spec:cluster:
name: cluster-example

SIOS Technology, Inc.

restore.yaml は何を宣言しているのか？
restore.yaml の内容を見てみるとyaml にて以下の状態を指定しています。
種類Cluster
メタデータ
名前「cluster-restore」
仕様
EPAS 13.3 のイメージ、インスタンス数 3
ストレージ 5Gi
起動後に「backup-on-demand」のバックアップファイルよりリストア
実際の動作を見てみましょう

apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: cluster-restore
spec:
imageName:quay.io/enterprisedb/postgresql:13.3
instances: 3
storage:size: 5Gi
bootstrap:
recovery:backup:name: backup-on-demand

SIOS Technology, Inc.

スケジュールバックアップ

schedule.yaml は何を宣言しているのか？
schedule.yaml の内容を見てみると
yaml にて以下の状態を指定しています。

機能は「ScheduledBackup」
メタデータ
名前は「backup-every5min」
仕様
schedule にて5分毎に実行される指定$ cat schedule.yaml
apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: ScheduledBackup
metadata:
name: backup-every5min
spec:
schedule: "0 */5 * * * *" #5分ごとに実行
cluster:
name: cluster-example

SIOS Technology, Inc.

pitr.yaml は何を宣言しているのか？
pitr.yaml の内容を見てみると機能は「Cluster」
メタデータ
名前は「cluster-pitr」
仕様
PostgreSQL13.2のインスタンスが 3
ストレージ 5Gi
起動時にリカバリーを実施、バックアップ は
backup-every5min-1626258900を使用
リカバリーのポイントインターゲット
リカバリは2021-07-14 10:38:47

apiVersion: postgresql.k8s.enterprisedb.io/v1
kind: Cluster
metadata:
name: cluster-pitr
spec:
imageName: quay.io/enterprisedb/postgresql:13.2
instances: 3
storage:size: 5Gi
bootstrap:
recovery:backup:name: backup-every5min-1626258900
recoveryTarget:
targetTime: "2021-07-14 10:38:47.589206+00"

実際の動作を見てみましょう
SIOS Technology, Inc.

Free Trial

https://www.enterprisedb.com/products/postgresql-on-kubernetes-ha-clusters-k8s-containers-scalable
SIOS Technology, Inc.

SIOSDX
コンテナの窓口

コンテナ入門WebinarアンケートよりSIOS Technology, Inc.

22

SIOSのコンテナビジネスおよびSIOSDXのご紹介
お客様の課題サービス＆商材

デリバリー

リソース確保

IT自動化
支援

DX人材へ転向

DX具体化

DX
システム化

サービス
多様化

最適化

DX人材育成支援

Cloud
Native支援

Cloud
Nativeインフラ
設計・構築支援

システム
連携支援

運用支援

SIOS & Partners
SIOSDX コンテナの窓口

SIOS Technology, Inc.

ご支援内容概要
ご支援に関する提案事項として3形態のサービスをご用意

インシデント型
問い合わせサービス

コンサル型技術支援
サービス

コンテナエンジニア育成
トレーニングサービス

コンテナ化行う上での情報支援を QA対応数・対応時間に合わせた インシデント 形式でご支援を行います。

コンテナ化行う上でのよりサービスに準じた技術検証やアーキテクチャのご支援を行います。

コンテナを扱うエンジニアの育成を目的としたトレーニング (docker,k8s)のご支援を行います。

こちらのサービスでは一般的な技術情報や構成にベストプラクティスなどの問い合わせをメインのスコープとしております。

こちらのサービスではプリセットとして存在するコンテナ環境の導入やサービスの性質に有ったコンテナ検証環境の構築をメインのスコープとしております。

こちらのサービスでは 1~2ヶ月を目途とした期間で(docker,k8s)それぞれのコンテナ技術習得を目的としたトレーニングを提供させていただきます

コンテナ化対応時期イメージ

短期～中期

短期～中期
SIOS Technology, Inc.

中期〜長期
24ポータルサイト SIOSDXのご紹介
DXSLが企画運営するSIOSDXサイトにて最新情報を発信中です。
ビジネストピックスから技術トピックスまでDXとコンテナに関わるあらゆる情報を発信していきます。
公演や執筆の依頼についても承りしておりますので、お気軽にご相談ください。
SIOSDX コンテナの窓口
URL：https://container.sios.jp/

SIOS Technology, Inc.

DX・コンテナに関する情報を SIOSDX：Container.sios.jp にて発信中
本コンテンツの詳細をご希望の方は SIOSDXよりお問い合わせください。
サイオステクノロジー株式会社
DX Product & Integration Service Line
Tatsuhiro Murata