Giter VIP home page Giter VIP logo

crunchy-operator's Introduction

Crunchy Data PostgreSQL Operator

Logo

The Crunchy PostgreSQL Operator automates and simplifies deploying and managing open source PostgreSQL clusters on Kubernetes and other Kubernetes-enabled Platforms by providing the essential features you need to keep your PostgreSQL clusters up and running.

Operator's features are as follows:

Create, Scale, & Delete PostgreSQL clusters with ease, while fully customizing your Pods and PostgreSQL configuration!

Safe, automated failover backed by a distributed consensus based high-availability solution. Uses Pod Anti-Affinity to help resiliency; you can configure how aggressive this can be! Failed primaries automatically heal, allowing for faster recovery time.

Support for standby PostgreSQL clusters that work both within and across multiple Kubernetes clusters.

Backups and restores leverage the open source pgBackRest utility and includes support for full, incremental, and differential backups as well as efficient delta restores. Set how long you want your backups retained for. Works great with very large databases!

  • TLS :

Secure communication between your applications and data servers by enabling TLS for your PostgreSQL servers, including the ability to enforce that all of your connections to use TLS.

Track the health of your PostgreSQL clusters using the open source pgMonitor library.

  • PostgreSQL User Management:

Quickly add and remove users from your PostgreSQL clusters with powerful commands. Manage password expiration policies or use your preferred PostgreSQL authentication scheme.

  • Upgrade Management:

Safely apply PostgreSQL updates with minimal availability impact to your PostgreSQL clusters.

  • Advanced Replication Support:

Choose between asynchronous replication and synchronous replication for workloads that are sensitive to losing transactions.

  • Clone:

Create new clusters from your existing clusters or backups with pgo create cluster --restore-from.

  • Connection Pooling:

Use pgBouncer for connection pooling

  • Node Affinity:

Have your PostgreSQL clusters deployed to Kubernetes Nodes of your preference

  • Scheduled Backups:

Choose the type of backup (full, incremental, differential) and how frequently you want it to occur on each PostgreSQL cluster.

  • Backup to S3:

Store your backups in Amazon S3 or any object storage system that supports the S3 protocol. The PostgreSQL Operator can backup, restore, and create new clusters from these backups.

  • Multi-Namespace Support:

You can control how the PostgreSQL Operator leverages Kubernetes Namespaces with several different deployment models:

1.Deploy the PostgreSQL Operator and all PostgreSQL clusters to the same namespace

2.Deploy the PostgreSQL Operator to one namespaces, and all PostgreSQL clusters to a different namespace

3.Deploy the PostgreSQL Operator to one namespace, and have your PostgreSQL clusters managed across multiple namespaces

4.Dynamically add and remove namespaces managed by the PostgreSQL Operator using the pgo create namespace and pgo delete namespace commands

  • Full Customizability:

The Crunchy PostgreSQL Operator makes it easy to get your own PostgreSQL-as-a-Service up and running on Kubernetes-enabled platforms, but we know that there are further customizations that you can make. As such, the Crunchy PostgreSQL Operator allows you to further customize your deployments, including:

1.Selecting different storage classes for your primary, replica, and backup storage

2.Select your own container resources class for each PostgreSQL cluster deployment; differentiate between resources applied for primary and replica clusters!

3.Use your own container image repository, including support imagePullSecrets and private repositories

4.Customize your PostgreSQL configuration

5.Bring your own trusted certificate authority (CA) for use with the Operator API server

6.Override your PostgreSQL configuration for each cluster

Deployment Requirements :

The PostgreSQL Operator is validated for deployment on Kubernetes, OpenShift, and VMware Enterprise PKS clusters. Some form of storage is required like NFS, hostPath, and Storage Classes are currently supported.

Architecture :

The PostgreSQL Operator includes various components that get deployed to your Kubernetes cluster as shown in the following diagram and detailed in the Design section of the documentation for the version you are running.

Architecture

The PostgreSQL Operator is developed and tested on CentOS and RHEL Linux platforms but is known to run on other Linux variants.

Supported Platforms:

The Crunchy PostgreSQL Operator is tested on the following Platforms:

  • Kubernetes 1.13+
  • OpenShift 3.11+
  • Google Kubernetes Engine (GKE), including Anthos
  • Amazon EKS
  • VMware Enterprise PKS 1.3+

Storage:

The Crunchy PostgreSQL Operator is tested with a variety of different types of Kubernetes storage and Storage Classes, including:

  • Google Compute Engine persistent volumes
  • HostPath
  • NFS
  • Rook
  • StorageOS

and more.

Installations methods include:

pgo Client Installation:

If you have the PostgreSQL Operator installed in your environment, and are interested in installation of the client interface, please start here:

There is also a pgo-client container if you wish to deploy the client directly to your Kubernetes environment.

Included Components:

PostgreSQL containers deployed with the PostgreSQL Operator include the following components:

In addition to the above, the geospatially enhanced PostgreSQL + PostGIS container adds the following components:

PostgreSQL Operator Monitoring uses the following components:

Additional containers that are not directly integrated with the PostgreSQL Operator but can work alongside it include:

For more information about which versions of the PostgreSQL Operator include which components, please visit the compatibility section of the documentation.

Using the PostgreSQL Operator

If you are new to the PostgreSQL Operator, you can follow along the tutorial to learn how to install the PostgreSQL Operator and how to use many of its features!

If you have the PostgreSQL and Client Interface installed in your environment and are interested in guidance on the use of the Crunchy PostgreSQL Operator, please start here:

Documentation:

For additional information regarding design, configuration and operation of the PostgreSQL Operator, pleases see the Official Project Documentation.

If you are looking for the nightly builds of the documentation, you can view them at:

https://crunchydata.github.io/postgres-operator/latest/

Releases:

When a PostgreSQL Operator general availability (GA) release occurs, the container images are distributed on the following platforms in order:

The image rollout can occur over the course of several days.

To stay up-to-date on when releases are made available in the Crunchy Data Developer Portal, please sign up for the Crunchy Data Developer Program Newsletter

Objective of tutorial:

In this tutorial,we are going to cover following topics:

  • How to Install Crunchy PostgreSQL Operator and verify its successful installation.
  • How to create a DB using Crunchy PostgreSQL Operator
  • How to use a PostgreSQL DB cluster created by the operator in an application.
  • How to use Crunchy PostgreSQL Operator (PGO)

crunchy-operator's People

Contributors

saeelparsekar avatar imdurgadas avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.