SlideShare a Scribd company logo
1 of 44
Download to read offline
1
Do we think of database
needs when planning our
Kubernetes infrastructure?
2
Running PostgreSQL in Kubernetes:
from day 0 to day 2 with
CloudNativePG
Gabriele Bartolini
VP & CTO of Cloud Native at EDB
3
About me
● VP/CTO of Cloud Native at EDB
○ Previously at 2ndQuadrant
● PostgreSQL user since ~2000
○ Community member since 2006
○ Co-founder of PostgreSQL Europe
● DevOps evangelist
● Open source contributor
○ Barman (2011)
○ CloudNativePG (2022)
Follow me: @_GBartolini_
4
Previous DoK talks
5
Running
PostgreSQL in
Kubernetes: from
day 0 to day 2 with
CloudNativePG
● Quick intro
● Day 0 operations
● Day 1 operations
● Day 2 operations
● Final remarks
Quick Intro
6
6
7
7
8
Stack Overflow Developer survey 2022
“PostgreSQL becomes
the most loved and
wanted database after
five years of Redis being
the most loved.”
9
Databases like PostgreSQL
are complex stateful
applications.
Operator pattern!
10
About CloudNativePG
● Kubernetes operator
● Day 1 & 2 operations of a PostgreSQL database
○ In traditional environments usually reserved to humans
● Open source
○ Originally created and developed by EDB
○ Vendor neutral/openly governed community
○ Apache 2.0 license
○ Submitted to the CNCF Sandbox
● Production ready
○ BigAnimal - EDB’s DBaaS
○ Several EDB customers
● Latest minor version is 1.17
○ Version 1.18 is expected for KubeCon NA
11
cloudnative-pg.io
12
github.com/cloudnative-pg/cloudnative-pg
Leave a ⭐ now! 🙏
13
Semantic versioning 2.0
<major>.<minor>.<patch>
Major = change of API
Minor = new features
14
Support policy from the community
Type Support Level Quality and Recommended Use
Development
Build
No support
Dangerous, may not be fully reliable. Useful to
experiment with.
Minor
Release
Support provided until 1 month after the N+2 minor
release (ex. 1.15 supported until 1 month after 1.17.0
is released)
Patch Same as the corresponding Minor release
Users are encouraged to adopt patch releases as
soon as they are available for a given release.
Security
Patch
Same as a Patch, however, it will not contain any
additional code other than the security fix from the
previous patch
Given the nature of security fixes, users are strongly
encouraged to adopt security patches after release.
15
Support status of CloudNativePG releases
Version
Currently
Supported
Release Date End of Life
Supported
Kubernetes
Versions
Tested, but not
supported
1.17.x Yes
September 6,
2022
~ February 12,
2023
1.22, 1.23, 1.24 1.19, 1.20, 1.21
1.16.x Yes July 7, 2022
~ November 25,
2022
1.22, 1.23, 1.24 1.19, 1.20, 1.21
1.15.x Yes April 21, 2022 October 6, 2022 1.21, 1.22, 1.23 1.19, 1.20, 1.24
main
No,
development
only
Day 0
operations
16
16
17
Plan your K8s infrastructure for PostgreSQL workloads
● First impressions last
○ K8s infrastructure often planned for stateless-only workloads
○ Common choice: database outside Kubernetes - DBaaS
● You can run databases inside Kubernetes
○ Fully leverage devops
○ Shared/Shared nothing architectures
○ Storage sector in K8s is growing fast
● Choose your storage wisely
○ Like you are used to in VMs and bare metal
18
KubeCon NA 2022 - talk with Chris Milsted (Ondat)
19
● Single vs Multi-region
● Availability zones
● Dedicated nodes vs Shared nodes
● Connection pooling
● Applications and databases
● Microservice or Monolith databases
I will cover some of these topics at KubeCon!
Beyond storage
Kubernetes cluster
Availability zone 1 Availability zone 2 Availability zone 3
20
Node Node
Node
Disclaimer: this is a simplified view
Shared nothing architecture
21
kubectl apply -f 
https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/releases/cnpg-1.17.0.yaml
Installing CloudNativePG
Declarative configuration via YAML manifest
22
● Monitoring platform
○ CloudNativePG has native Prometheus exporters
● Log management
○ CloudNativePG makes sure all logs are in stdout and in JSON
● TLS certificates
○ CloudNativePG supports TLS connections and authentication
○ CloudNativePG can be integrated with cert-manager
There’s more
Day 1
operations
23
23
24
Objective for day 1 is a 3 node Postgres cluster
● Install the latest minor version of PostgreSQL 14
● Create a new PostgreSQL 14 Cluster
● One primary and two standby servers
● mTLS authentication with replicas
● 4GB of RAM, 8 cores, 50Gb of storage
● 1GB of shared buffers
● A way to access the primary via network
● A user for the application
● A database for the application
25
Install a Postgres cluster
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: myapp-db
spec:
instances: 3
postgresql:
parameters:
shared_buffers: "1GB"
resources:
requests:
memory: "4Gi"
cpu: 8
limits:
memory: "4Gi"
cpu: 8
storage:
size: 50Gi
myapp-db.yaml
26
kubectl apply -f myapp-db.yaml
How to deploy the Cluster
Kubernetes cluster
Availability zone 1 Availability zone 2 Availability zone 3
27
Node Node
Node
Service
myapp-db-rw
Pod
my-app-db-1
PVC
my-app-db-1
pgdata
Pod
my-app-db-2
PVC
my-app-db-2
pgdata
Pod
my-app-db-3
PVC
my-app-db-3
pgdata
(m)TLS
mTLS
28
There’s more
● A service to access read-only replicas (myapp-db-ro)
● A service to access any instance for reads (myapp-db-r)
● Many other Kubernetes objects are created:
○ Secrets
○ ConfigMaps
○ Roles
○ RoleBindings
○ ServiceAccounts
○ …
● Convention over configuration
● Separate volume for WAL files
● Import existing databases
○ Even outside Kubernetes
○ Performing major upgrades of Postgres
29
PostgreSQL configuration
● Most GUCs are configurable
○ .postgresql.parameters section
○ Some cannot be changed (e.g. log_destination )
○ Some have defaults
● Host-Based Authentication can be configured
○ .postgresql.pg_hba section
○ By default:
■ Requires TLS authentication for streaming replicas
■ Fallback sets sha-256/md5 authentication
● CloudNativePG supports changes of configuration
○ Reload
○ Rolling updates if restart is required
○ Update of standby sensitive parameters
30
31
Install a Postgres cluster
apiVersion:
postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: myapp-db
spec:
instances: 3
[...]
storage:
size: 50Gi
walStorage:
size: 5Gi
Example with
WAL volume
Day 2
operations
32
32
33
The role of a Kubernetes operator for Postgres
● Simulate the work of a human DBA
● Do it in a programmatic and automated way
● Extend the Kubernetes API server
○ The only authority for the whole infrastructure
○ Single source of truth of the status of the infrastructure
■ Current status
■ Desired status
34
Rolling updates
● Update of a deployment with ~zero downtime
○ Standby servers are updated first
○ Then the primary:
■ supervised / unsupervised
■ switchover / restart
● When they are triggered:
○ Security update of Postgres images
○ Minor update of PostgreSQL
○ Configuration changes when restart is required
○ Update of the operator
■ Unless in-place upgrade is enabled
35
Backup and recovery
● Continuous physical backup on “backup object stores”
○ Scheduled and on-demand base backups
○ Continuous WAL archiving (including parallel)
● Support for recovery window retention policies (e.g. 30 days)
● Recovery means creating a new cluster starting from a “recovery object store”
○ Then pull WAL files (including in parallel) and replay them
○ Full (End of the WAL) or PITR
● Both rely on Barman Cloud technology
○ AWS S3
○ Azure Storage compatible
○ Google Cloud Storage
36
Synchronous replication
● Quorum-based synchronous streaming replication
● Controlled by two options:
○ minSyncReplicas
○ maxSyncReplicas
● CloudNativePG takes care of synchronous_standby_names
○ ANY q (pod1, pod2, ...)
○ Where:
■ 1 <= minSyncReplicas <= q <= maxSyncReplicas <= readyReplicas
■ pod1, pod2, ... is the list of all PostgreSQL pods in the cluster
● Reduce risk of data loss
37
Monitoring
● Native support for Prometheus
● Built-in metrics at the operator level
● Built-in metrics at the Postgres instance level
● Customizable metrics at the Postgres instance level
○ Via ConfigMap(s) and/or Secret(s)
○ Syntax compatible with the PostgreSQL Prometheus Exporter
○ Auto-discovery of databases
○ Queries are:
■ transactionally atomic and read-only
■ executed with the pg_monitor role
■ executed with application_name set to cnp_metrics_exporter
● Support for pg_stat_statementsand auto_explain
Kubernetes cluster
Availability zone 1 Availability zone 2 Availability zone 3
38
Node Node
Node
Service
myapp-db-rw
Pod
my-app-db-1
PVC
my-app-db-1
pgdata
Pod
my-app-db-2
PVC
my-app-db-2
pgdata
Pod
my-app-db-3
PVC
my-app-db-3
pgdata
Service
myapp-db-ro
PRIMARY PRIMARY
X
Final remarks
39
39
40
Future plans
● Version 1.18 (~ 25 October 2022):
○ Kubernetes 1.25 support
○ PostgreSQL 15 support
○ Cluster managed replication slots for HA
○ Cluster hibernation
● Beyond 1.18:
○ Declarative roles
○ Declarative databases
○ Declarative tablespaces
41
Reshaping the DBA role
● Most infrastructure related problems are automated
● You as a DBA are crucial in the organization
○ Leverage skills and experience from traditional environments
○ Subject Matter Expert of PostgreSQL in DevOps teams
● Unlearn to learn
● Protect Postgres, from Day 0:
○ Infrastructure: choose the right storage!
○ Application: model the database with developers!
● Examples of day 2 operations:
○ Infrastructure: monitoring, alerting, backup verification
○ Application: query optimization, index optimization, data modeling
42
Join us!
● We adopt the CNCF code of conduct
● Simple governance model based on maintainers for the initial phase
● Public roadmap using GitHub Projects beta
● Start from the CONTRIBUTING.md file
○ GitHub issues and discussions primarily
○ Slack channel
○ Participate to the biweekly developer meetings
● Special instructions for source code contributions
○ Work in progress
○ Setup of the dev environment
○ Setup of the test environment to run E2E tests with kind and k3d
○ Developer Certificate of Origin (DCO) required
43
Originally created and sponsored by
44
Thank you! Questions?
github.com/cloudnative-pg
@_GBartolini_
@CloudNativePG

More Related Content

What's hot

High Availability for OpenStack
High Availability for OpenStackHigh Availability for OpenStack
High Availability for OpenStackKamesh Pemmaraju
 
A crash course in CRUSH
A crash course in CRUSHA crash course in CRUSH
A crash course in CRUSHSage Weil
 
Migrating to Apache Spark at Netflix
Migrating to Apache Spark at NetflixMigrating to Apache Spark at Netflix
Migrating to Apache Spark at NetflixDatabricks
 
Network LACP/Bonding/Teaming with Mikrotik
Network LACP/Bonding/Teaming with MikrotikNetwork LACP/Bonding/Teaming with Mikrotik
Network LACP/Bonding/Teaming with MikrotikGLC Networks
 
Solving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache ArrowSolving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache ArrowWes McKinney
 
Practical learnings from running thousands of Flink jobs
Practical learnings from running thousands of Flink jobsPractical learnings from running thousands of Flink jobs
Practical learnings from running thousands of Flink jobsFlink Forward
 
Monitoring With Prometheus
Monitoring With PrometheusMonitoring With Prometheus
Monitoring With PrometheusKnoldus Inc.
 
Explore your prometheus data in grafana - Promcon 2018
Explore your prometheus data in grafana - Promcon 2018Explore your prometheus data in grafana - Promcon 2018
Explore your prometheus data in grafana - Promcon 2018Grafana Labs
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication confluent
 
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみようTakashi Kajinami
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)NTT DATA Technology & Innovation
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)NTT DATA Technology & Innovation
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Bo-Yi Wu
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking ShapeBlue
 
Efficient Data Formats for Analytics with Parquet and Arrow
Efficient Data Formats for Analytics with Parquet and ArrowEfficient Data Formats for Analytics with Parquet and Arrow
Efficient Data Formats for Analytics with Parquet and ArrowDataWorks Summit/Hadoop Summit
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlJiangjie Qin
 

What's hot (20)

High Availability for OpenStack
High Availability for OpenStackHigh Availability for OpenStack
High Availability for OpenStack
 
CephFS Update
CephFS UpdateCephFS Update
CephFS Update
 
A crash course in CRUSH
A crash course in CRUSHA crash course in CRUSH
A crash course in CRUSH
 
Migrating to Apache Spark at Netflix
Migrating to Apache Spark at NetflixMigrating to Apache Spark at Netflix
Migrating to Apache Spark at Netflix
 
Network LACP/Bonding/Teaming with Mikrotik
Network LACP/Bonding/Teaming with MikrotikNetwork LACP/Bonding/Teaming with Mikrotik
Network LACP/Bonding/Teaming with Mikrotik
 
Solving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache ArrowSolving Enterprise Data Challenges with Apache Arrow
Solving Enterprise Data Challenges with Apache Arrow
 
Practical learnings from running thousands of Flink jobs
Practical learnings from running thousands of Flink jobsPractical learnings from running thousands of Flink jobs
Practical learnings from running thousands of Flink jobs
 
Monitoring With Prometheus
Monitoring With PrometheusMonitoring With Prometheus
Monitoring With Prometheus
 
Explore your prometheus data in grafana - Promcon 2018
Explore your prometheus data in grafana - Promcon 2018Explore your prometheus data in grafana - Promcon 2018
Explore your prometheus data in grafana - Promcon 2018
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
Networking in Openstack - Neutron 101
Networking in Openstack - Neutron 101Networking in Openstack - Neutron 101
Networking in Openstack - Neutron 101
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication
 
最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう最近のOpenStackを振り返ってみよう
最近のOpenStackを振り返ってみよう
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
 
Docker 基礎介紹與實戰
Docker 基礎介紹與實戰Docker 基礎介紹與實戰
Docker 基礎介紹與實戰
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
 
Efficient Data Formats for Analytics with Parquet and Arrow
Efficient Data Formats for Analytics with Parquet and ArrowEfficient Data Formats for Analytics with Parquet and Arrow
Efficient Data Formats for Analytics with Parquet and Arrow
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 

Similar to Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - DoK #152

PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSVMware Tanzu
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSCarlos Andrés García
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKevin Lynch
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesDoKC
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesJonathan Katz
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4OpenEBS
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipsterJulien Dubois
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1Ruslan Meshenberg
 
Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for BeginnersDigitalOcean
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2Kaxil Naik
 
Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Idan Atias
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyJérémy Wimsingues
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kevin Lynch
 
Google Cloud - Stand Out Features
Google Cloud - Stand Out FeaturesGoogle Cloud - Stand Out Features
Google Cloud - Stand Out FeaturesGDG Cloud Bengaluru
 
Kubernetes from scratch at veepee sysadmins days 2019
Kubernetes from scratch at veepee   sysadmins days 2019Kubernetes from scratch at veepee   sysadmins days 2019
Kubernetes from scratch at veepee sysadmins days 2019🔧 Loïc BLOT
 
Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Jonathan Katz
 
WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017Imesh Gunaratne
 
2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific DashboardCeph Community
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsAmbassador Labs
 

Similar to Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - DoK #152 (20)

PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the Datacenter
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetes
 
Operating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with KubernetesOperating PostgreSQL at Scale with Kubernetes
Operating PostgreSQL at Scale with Kubernetes
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1
 
Kubernetes for Beginners
Kubernetes for BeginnersKubernetes for Beginners
Kubernetes for Beginners
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
 
Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)Introduction to Container Storage Interface (CSI)
Introduction to Container Storage Interface (CSI)
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success story
 
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
Kubernetes @ Squarespace (SRE Portland Meetup October 2017)
 
Google Cloud - Stand Out Features
Google Cloud - Stand Out FeaturesGoogle Cloud - Stand Out Features
Google Cloud - Stand Out Features
 
Kubernetes from scratch at veepee sysadmins days 2019
Kubernetes from scratch at veepee   sysadmins days 2019Kubernetes from scratch at veepee   sysadmins days 2019
Kubernetes from scratch at veepee sysadmins days 2019
 
Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018Using PostgreSQL With Docker & Kubernetes - July 2018
Using PostgreSQL With Docker & Kubernetes - July 2018
 
WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017
 
2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 

More from DoKC

Distributed Vector Databases - What, Why, and How
Distributed Vector Databases - What, Why, and HowDistributed Vector Databases - What, Why, and How
Distributed Vector Databases - What, Why, and HowDoKC
 
Is It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes OperatorsIs It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes OperatorsDoKC
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryDoKC
 
Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...
Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...
Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...DoKC
 
The State of Stateful on Kubernetes
The State of Stateful on KubernetesThe State of Stateful on Kubernetes
The State of Stateful on KubernetesDoKC
 
Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...
Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...
Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...DoKC
 
Make Your Kafka Cluster Production-Ready
Make Your Kafka Cluster Production-ReadyMake Your Kafka Cluster Production-Ready
Make Your Kafka Cluster Production-ReadyDoKC
 
Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...
Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...
Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...DoKC
 
Run PostgreSQL in Warp Speed Using NVMe/TCP in the Cloud
Run PostgreSQL in Warp Speed Using NVMe/TCP in the CloudRun PostgreSQL in Warp Speed Using NVMe/TCP in the Cloud
Run PostgreSQL in Warp Speed Using NVMe/TCP in the CloudDoKC
 
The Kubernetes Native Database
The Kubernetes Native DatabaseThe Kubernetes Native Database
The Kubernetes Native DatabaseDoKC
 
ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023DoKC
 
Implementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch governmentImplementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch governmentDoKC
 
StatefulSets in K8s - DoK Talks #154
StatefulSets in K8s - DoK Talks #154StatefulSets in K8s - DoK Talks #154
StatefulSets in K8s - DoK Talks #154DoKC
 
Analytics with Apache Superset and ClickHouse - DoK Talks #151
Analytics with Apache Superset and ClickHouse - DoK Talks #151Analytics with Apache Superset and ClickHouse - DoK Talks #151
Analytics with Apache Superset and ClickHouse - DoK Talks #151DoKC
 
Overcoming challenges with protecting and migrating data in multi-cloud K8s e...
Overcoming challenges with protecting and migrating data in multi-cloud K8s e...Overcoming challenges with protecting and migrating data in multi-cloud K8s e...
Overcoming challenges with protecting and migrating data in multi-cloud K8s e...DoKC
 
Evaluating Cloud Native Storage Vendors - DoK Talks #147
Evaluating Cloud Native Storage Vendors - DoK Talks #147Evaluating Cloud Native Storage Vendors - DoK Talks #147
Evaluating Cloud Native Storage Vendors - DoK Talks #147DoKC
 
Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...
Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...
Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...DoKC
 
We will Dok You! - The journey to adopt stateful workloads on k8s
We will Dok You! - The journey to adopt stateful workloads on k8sWe will Dok You! - The journey to adopt stateful workloads on k8s
We will Dok You! - The journey to adopt stateful workloads on k8sDoKC
 
Mastering MongoDB on Kubernetes, the power of operators
Mastering MongoDB on Kubernetes, the power of operators Mastering MongoDB on Kubernetes, the power of operators
Mastering MongoDB on Kubernetes, the power of operators DoKC
 
Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...
Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...
Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...DoKC
 

More from DoKC (20)

Distributed Vector Databases - What, Why, and How
Distributed Vector Databases - What, Why, and HowDistributed Vector Databases - What, Why, and How
Distributed Vector Databases - What, Why, and How
 
Is It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes OperatorsIs It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes Operators
 
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster RecoveryStop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
Stop Worrying and Keep Querying, Using Automated Multi-Region Disaster Recovery
 
Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...
Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...
Transforming Data Processing with Kubernetes: Journey Towards a Self-Serve Da...
 
The State of Stateful on Kubernetes
The State of Stateful on KubernetesThe State of Stateful on Kubernetes
The State of Stateful on Kubernetes
 
Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...
Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...
Colocating Data Workloads and Web Services on Kubernetes to Improve Resource ...
 
Make Your Kafka Cluster Production-Ready
Make Your Kafka Cluster Production-ReadyMake Your Kafka Cluster Production-Ready
Make Your Kafka Cluster Production-Ready
 
Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...
Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...
Dynamic Large Scale Spark on Kubernetes: Empowering the Community with Argo W...
 
Run PostgreSQL in Warp Speed Using NVMe/TCP in the Cloud
Run PostgreSQL in Warp Speed Using NVMe/TCP in the CloudRun PostgreSQL in Warp Speed Using NVMe/TCP in the Cloud
Run PostgreSQL in Warp Speed Using NVMe/TCP in the Cloud
 
The Kubernetes Native Database
The Kubernetes Native DatabaseThe Kubernetes Native Database
The Kubernetes Native Database
 
ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023ING Data Services hosted on ICHP DoK Amsterdam 2023
ING Data Services hosted on ICHP DoK Amsterdam 2023
 
Implementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch governmentImplementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch government
 
StatefulSets in K8s - DoK Talks #154
StatefulSets in K8s - DoK Talks #154StatefulSets in K8s - DoK Talks #154
StatefulSets in K8s - DoK Talks #154
 
Analytics with Apache Superset and ClickHouse - DoK Talks #151
Analytics with Apache Superset and ClickHouse - DoK Talks #151Analytics with Apache Superset and ClickHouse - DoK Talks #151
Analytics with Apache Superset and ClickHouse - DoK Talks #151
 
Overcoming challenges with protecting and migrating data in multi-cloud K8s e...
Overcoming challenges with protecting and migrating data in multi-cloud K8s e...Overcoming challenges with protecting and migrating data in multi-cloud K8s e...
Overcoming challenges with protecting and migrating data in multi-cloud K8s e...
 
Evaluating Cloud Native Storage Vendors - DoK Talks #147
Evaluating Cloud Native Storage Vendors - DoK Talks #147Evaluating Cloud Native Storage Vendors - DoK Talks #147
Evaluating Cloud Native Storage Vendors - DoK Talks #147
 
Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...
Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...
Kubernetes Cluster Upgrade Strategies and Data: Best Practices for your State...
 
We will Dok You! - The journey to adopt stateful workloads on k8s
We will Dok You! - The journey to adopt stateful workloads on k8sWe will Dok You! - The journey to adopt stateful workloads on k8s
We will Dok You! - The journey to adopt stateful workloads on k8s
 
Mastering MongoDB on Kubernetes, the power of operators
Mastering MongoDB on Kubernetes, the power of operators Mastering MongoDB on Kubernetes, the power of operators
Mastering MongoDB on Kubernetes, the power of operators
 
Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...
Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...
Leveraging Running Stateful Workloads on Kubernetes for the Benefit of Develo...
 

Recently uploaded

WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2
 

Recently uploaded (20)

WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 

Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - DoK #152

  • 1. 1 Do we think of database needs when planning our Kubernetes infrastructure?
  • 2. 2 Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG Gabriele Bartolini VP & CTO of Cloud Native at EDB
  • 3. 3 About me ● VP/CTO of Cloud Native at EDB ○ Previously at 2ndQuadrant ● PostgreSQL user since ~2000 ○ Community member since 2006 ○ Co-founder of PostgreSQL Europe ● DevOps evangelist ● Open source contributor ○ Barman (2011) ○ CloudNativePG (2022) Follow me: @_GBartolini_
  • 5. 5 Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG ● Quick intro ● Day 0 operations ● Day 1 operations ● Day 2 operations ● Final remarks
  • 7. 7 7
  • 8. 8 Stack Overflow Developer survey 2022 “PostgreSQL becomes the most loved and wanted database after five years of Redis being the most loved.”
  • 9. 9 Databases like PostgreSQL are complex stateful applications. Operator pattern!
  • 10. 10 About CloudNativePG ● Kubernetes operator ● Day 1 & 2 operations of a PostgreSQL database ○ In traditional environments usually reserved to humans ● Open source ○ Originally created and developed by EDB ○ Vendor neutral/openly governed community ○ Apache 2.0 license ○ Submitted to the CNCF Sandbox ● Production ready ○ BigAnimal - EDB’s DBaaS ○ Several EDB customers ● Latest minor version is 1.17 ○ Version 1.18 is expected for KubeCon NA
  • 13. 13 Semantic versioning 2.0 <major>.<minor>.<patch> Major = change of API Minor = new features
  • 14. 14 Support policy from the community Type Support Level Quality and Recommended Use Development Build No support Dangerous, may not be fully reliable. Useful to experiment with. Minor Release Support provided until 1 month after the N+2 minor release (ex. 1.15 supported until 1 month after 1.17.0 is released) Patch Same as the corresponding Minor release Users are encouraged to adopt patch releases as soon as they are available for a given release. Security Patch Same as a Patch, however, it will not contain any additional code other than the security fix from the previous patch Given the nature of security fixes, users are strongly encouraged to adopt security patches after release.
  • 15. 15 Support status of CloudNativePG releases Version Currently Supported Release Date End of Life Supported Kubernetes Versions Tested, but not supported 1.17.x Yes September 6, 2022 ~ February 12, 2023 1.22, 1.23, 1.24 1.19, 1.20, 1.21 1.16.x Yes July 7, 2022 ~ November 25, 2022 1.22, 1.23, 1.24 1.19, 1.20, 1.21 1.15.x Yes April 21, 2022 October 6, 2022 1.21, 1.22, 1.23 1.19, 1.20, 1.24 main No, development only
  • 17. 17 Plan your K8s infrastructure for PostgreSQL workloads ● First impressions last ○ K8s infrastructure often planned for stateless-only workloads ○ Common choice: database outside Kubernetes - DBaaS ● You can run databases inside Kubernetes ○ Fully leverage devops ○ Shared/Shared nothing architectures ○ Storage sector in K8s is growing fast ● Choose your storage wisely ○ Like you are used to in VMs and bare metal
  • 18. 18 KubeCon NA 2022 - talk with Chris Milsted (Ondat)
  • 19. 19 ● Single vs Multi-region ● Availability zones ● Dedicated nodes vs Shared nodes ● Connection pooling ● Applications and databases ● Microservice or Monolith databases I will cover some of these topics at KubeCon! Beyond storage
  • 20. Kubernetes cluster Availability zone 1 Availability zone 2 Availability zone 3 20 Node Node Node Disclaimer: this is a simplified view Shared nothing architecture
  • 21. 21 kubectl apply -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/main/releases/cnpg-1.17.0.yaml Installing CloudNativePG Declarative configuration via YAML manifest
  • 22. 22 ● Monitoring platform ○ CloudNativePG has native Prometheus exporters ● Log management ○ CloudNativePG makes sure all logs are in stdout and in JSON ● TLS certificates ○ CloudNativePG supports TLS connections and authentication ○ CloudNativePG can be integrated with cert-manager There’s more
  • 24. 24 Objective for day 1 is a 3 node Postgres cluster ● Install the latest minor version of PostgreSQL 14 ● Create a new PostgreSQL 14 Cluster ● One primary and two standby servers ● mTLS authentication with replicas ● 4GB of RAM, 8 cores, 50Gb of storage ● 1GB of shared buffers ● A way to access the primary via network ● A user for the application ● A database for the application
  • 25. 25 Install a Postgres cluster apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: myapp-db spec: instances: 3 postgresql: parameters: shared_buffers: "1GB" resources: requests: memory: "4Gi" cpu: 8 limits: memory: "4Gi" cpu: 8 storage: size: 50Gi myapp-db.yaml
  • 26. 26 kubectl apply -f myapp-db.yaml How to deploy the Cluster
  • 27. Kubernetes cluster Availability zone 1 Availability zone 2 Availability zone 3 27 Node Node Node Service myapp-db-rw Pod my-app-db-1 PVC my-app-db-1 pgdata Pod my-app-db-2 PVC my-app-db-2 pgdata Pod my-app-db-3 PVC my-app-db-3 pgdata (m)TLS mTLS
  • 28. 28 There’s more ● A service to access read-only replicas (myapp-db-ro) ● A service to access any instance for reads (myapp-db-r) ● Many other Kubernetes objects are created: ○ Secrets ○ ConfigMaps ○ Roles ○ RoleBindings ○ ServiceAccounts ○ … ● Convention over configuration ● Separate volume for WAL files ● Import existing databases ○ Even outside Kubernetes ○ Performing major upgrades of Postgres
  • 29. 29 PostgreSQL configuration ● Most GUCs are configurable ○ .postgresql.parameters section ○ Some cannot be changed (e.g. log_destination ) ○ Some have defaults ● Host-Based Authentication can be configured ○ .postgresql.pg_hba section ○ By default: ■ Requires TLS authentication for streaming replicas ■ Fallback sets sha-256/md5 authentication ● CloudNativePG supports changes of configuration ○ Reload ○ Rolling updates if restart is required ○ Update of standby sensitive parameters
  • 30. 30
  • 31. 31 Install a Postgres cluster apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: myapp-db spec: instances: 3 [...] storage: size: 50Gi walStorage: size: 5Gi Example with WAL volume
  • 33. 33 The role of a Kubernetes operator for Postgres ● Simulate the work of a human DBA ● Do it in a programmatic and automated way ● Extend the Kubernetes API server ○ The only authority for the whole infrastructure ○ Single source of truth of the status of the infrastructure ■ Current status ■ Desired status
  • 34. 34 Rolling updates ● Update of a deployment with ~zero downtime ○ Standby servers are updated first ○ Then the primary: ■ supervised / unsupervised ■ switchover / restart ● When they are triggered: ○ Security update of Postgres images ○ Minor update of PostgreSQL ○ Configuration changes when restart is required ○ Update of the operator ■ Unless in-place upgrade is enabled
  • 35. 35 Backup and recovery ● Continuous physical backup on “backup object stores” ○ Scheduled and on-demand base backups ○ Continuous WAL archiving (including parallel) ● Support for recovery window retention policies (e.g. 30 days) ● Recovery means creating a new cluster starting from a “recovery object store” ○ Then pull WAL files (including in parallel) and replay them ○ Full (End of the WAL) or PITR ● Both rely on Barman Cloud technology ○ AWS S3 ○ Azure Storage compatible ○ Google Cloud Storage
  • 36. 36 Synchronous replication ● Quorum-based synchronous streaming replication ● Controlled by two options: ○ minSyncReplicas ○ maxSyncReplicas ● CloudNativePG takes care of synchronous_standby_names ○ ANY q (pod1, pod2, ...) ○ Where: ■ 1 <= minSyncReplicas <= q <= maxSyncReplicas <= readyReplicas ■ pod1, pod2, ... is the list of all PostgreSQL pods in the cluster ● Reduce risk of data loss
  • 37. 37 Monitoring ● Native support for Prometheus ● Built-in metrics at the operator level ● Built-in metrics at the Postgres instance level ● Customizable metrics at the Postgres instance level ○ Via ConfigMap(s) and/or Secret(s) ○ Syntax compatible with the PostgreSQL Prometheus Exporter ○ Auto-discovery of databases ○ Queries are: ■ transactionally atomic and read-only ■ executed with the pg_monitor role ■ executed with application_name set to cnp_metrics_exporter ● Support for pg_stat_statementsand auto_explain
  • 38. Kubernetes cluster Availability zone 1 Availability zone 2 Availability zone 3 38 Node Node Node Service myapp-db-rw Pod my-app-db-1 PVC my-app-db-1 pgdata Pod my-app-db-2 PVC my-app-db-2 pgdata Pod my-app-db-3 PVC my-app-db-3 pgdata Service myapp-db-ro PRIMARY PRIMARY X
  • 40. 40 Future plans ● Version 1.18 (~ 25 October 2022): ○ Kubernetes 1.25 support ○ PostgreSQL 15 support ○ Cluster managed replication slots for HA ○ Cluster hibernation ● Beyond 1.18: ○ Declarative roles ○ Declarative databases ○ Declarative tablespaces
  • 41. 41 Reshaping the DBA role ● Most infrastructure related problems are automated ● You as a DBA are crucial in the organization ○ Leverage skills and experience from traditional environments ○ Subject Matter Expert of PostgreSQL in DevOps teams ● Unlearn to learn ● Protect Postgres, from Day 0: ○ Infrastructure: choose the right storage! ○ Application: model the database with developers! ● Examples of day 2 operations: ○ Infrastructure: monitoring, alerting, backup verification ○ Application: query optimization, index optimization, data modeling
  • 42. 42 Join us! ● We adopt the CNCF code of conduct ● Simple governance model based on maintainers for the initial phase ● Public roadmap using GitHub Projects beta ● Start from the CONTRIBUTING.md file ○ GitHub issues and discussions primarily ○ Slack channel ○ Participate to the biweekly developer meetings ● Special instructions for source code contributions ○ Work in progress ○ Setup of the dev environment ○ Setup of the test environment to run E2E tests with kind and k3d ○ Developer Certificate of Origin (DCO) required