GithubHelp home page GithubHelp logo

crunchydata / crunchy-containers Goto Github PK

View Code? Open in Web Editor NEW
1.0K 40.0 327.0 146.41 MB

Containers for Managing PostgreSQL on Kubernetes by Crunchy Data

Home Page: https://www.crunchydata.com/

License: Apache License 2.0

Makefile 8.87% Go 8.48% Shell 64.18% Python 0.52% Roff 0.70% Dockerfile 17.25%
postgresql docker kubernetes openshift

crunchy-containers's Introduction

Crunchy Container Suite

General

The Crunchy Container Suite provides Docker containers that enable rapid deployment of PostgreSQL, including administration and monitoring tools. Multiple styles of deploying PostgreSQL clusters are supported.

Please view the official Crunchy Data Container Suite documentation:

https://access.crunchydata.com/documentation/crunchy-containers/

If you are interested in contributing, please read the Contribution Guidelines.

Getting Started

Complete build and install documentation is found here. The provided Dockerfiles build the containers on a Ubi 8 base image and use the community PostgreSQL RPMs.

Crunchy provides a commercially supported version of these containers built upon RHEL 7 and the Crunchy supported PostgreSQL. Contact Crunchy for more details at:

https://www.crunchydata.com/contact/

Further descriptions of each of these containers and environment variables that can be used to tune them can be found in the Container Specifications document.

Usage

Various examples are provided in the Examples documentation for running in Docker, Kubernetes, and OpenShift environments.

You will need to set up your environment as per the Installation documentation in order to execute the examples.

crunchy-containers's People

Contributors

abrightwell avatar andrewlecuyer avatar benjaminjb avatar bverschueren avatar cahoonpwork avatar cbandy avatar chrira avatar crunchyheath avatar crunchyjohn avatar dsessler7 avatar flamingdumpster avatar goby avatar jasonodonnell avatar jkatz avatar jmccormick2001 avatar jmckulk avatar jsoref avatar konstantincodes avatar matthiaswinzeler avatar prlaurence avatar pvacca avatar scrummyin avatar steve-hetzel avatar thesteve0 avatar tjmoore4 avatar tony-landreth avatar valclarkson avatar wilybrace avatar xenophenes avatar xqianwang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crunchy-containers's Issues

execute cannot be used while an asynchronous query is underway

I have created a transaction which has 1000 inserts and executed it via pgpool but before the transaction completed I force terminated the client.
Now, I can able to SELECT that table via pgpool as well as directly via master. But on replica when I execute SELECT query I get the following error.

execute cannot be used while an asynchronous query is underway********** Error **********

I installed my cluster using kubehelm(1 crunchy-master, 3 crunchy-replicas) and pgpool seprately. I don't even added persistent volumes. Its been a while now but I'm still getting the same error.

logs:

$ kubectl logs pgpool
...
2016-10-28 10:49:43: pid 29: LOG:  statement: BEGIN
2016-10-28 10:49:43: pid 29: LOG:  statement: 
2016-10-28 10:49:43: pid 29: LOG:  statement: INSERT INTO "public"."test" ("text") VALUES (E'0')
...
2016-10-28 10:51:15: pid 29: LOG:  statement: 
2016-10-28 10:51:15: pid 29: LOG:  statement: INSERT INTO "public"."test" ("text") VALUES (E'502')
2016-10-28 10:51:15: pid 29: ERROR:  unable to read data from frontend
2016-10-28 10:51:15: pid 29: DETAIL:  socket read failed with an error "Connection reset by peer"
2016-10-28 10:51:30: pid 30: LOG:  new connection received
2016-10-28 10:51:30: pid 30: DETAIL:  connecting host=gke-cluster-1-default-pool-14ed9ed5-r6c7.c.container-1372.internal port=53435
...

Then I also truncated that table and inserted 1000 records in single INSERT via using pgpool. It successfully completed and I can able to SELECT the inserted records via pgpool and master. But still having error on replica.

$ kubectl logs pgpool
...
2016-10-28 10:56:41: pid 30: LOG:  statement: INSERT INTO "public"."test" ("text") VALUES (E'0'),(E'1'),(E'2'),(E'3')
...
(E'9996'),(E'9997'),(E'9998'),(E'9999')
2016-10-28 10:57:27: pid 30: LOG:  statement: 

application not being able to connect via pgpool

While trying to run mattermost on openshift.
It's working successfully if connects directly to master postgresql instance
and when tries connecting via pgpool it is failing and throwing the below error:

[EROR] Failed to retrieve user profiles
team_id=5esim8ypjpbdub75hy693nwfny, err=SqlUserStore.GetProfiles:
store.sql_user.get_profiles.app_error, read tcp
x.x.x.x:49766->x.x.x.x:5432: i/o timeout

Postgres Data will be lost

There's a problem with postgres data that are stored in a volume. if by any reason I terminate the pod, Kubernetes will recreate it, maybe on the same node(everything's ok) or maybe on another node(all data will be lost).

what's your solution for this?

NFS permissions correction

in the docs and examples, make sure NFS permissions are realistic with nfsnobody as the group owner, and not 777 on the perms, but rather 775

liveliness and readiness probe broken in openshift

hi,
as the subject says, those probes are broken in the examples with image tag centos7-9.5-1.2.5.

it looks like you have to manually pass the username to the commands to make them work.

I've tested it with the latest version of minishift (0.9.0) and openshift (1.3.1) with the test environment you get with oc cluster up.

regards,
fernando

cleanup examples for consistency

general catch all issue to cover the cleanup of all examples and example docs, directories should match up better across environments, docs should match up across environments, removal of outdated or unsupported or unnecessary examples across all environments

allow checksums in the database

make this configurable, by default it is disabled, allow user to turn it on via env var, initdb section...see if Greg has some docs on the usage of this that can be added to the docs.

crunchy-postgres: unable to create /pgdata/$HOSTNAME when using PVC. CrashLoop.

Running on kubernetes 1.3. Set up pgdata volume as a PVC, which is getting served by an NFS system. Note: if I use emptyDir for the volumes, no issue. (But of course I can lose my data.)

Issue: Receiving a "mkdir: cannot create directory '/pgdata/postgres-deployment-1217853053-9wk6b': Permission denied", which finally causes a CrashLoopBackoff after enough attempts to retry. (Note: container's being set up as part of a deployment with replicas count of 1.)

Have cross-checked examples/kube/kitchensink, as well as other kube examples. Not catching any relevant differences.

Looking in rhel7/9.5/Dockerfile.postgres.rhel7, looks like the chown happens in the Dockerfile itself, which means that it can't actually apply (I think) to directories created by persistent volume mounts. In that same Dockerfile, I see commented out setcap calls against chown like someone was tinkering with this. Also see in notes/notes-priv.txt and notes/todo2 various wrestlings that look like they're related to this issue...

Feature Request: Point in Time Recovery (PITR)

I am interested in brining up production postgres databases in OpenShift (Origin). Part of our requirements include Point In Time Recovery (PITR) but I don't see any this feature in crunchy-postgresql. Is it on the roadmap? I have done some work with pghoard (https://github.com/ohmu/pghoard) to have it work in a docker and plan to do more work to allow it to serve archived WALs for recovery out of a docker (with object store backing). Does this fit architecturally with crunchy-postgresql? Do you have other ideas to provide PITR?

support GCE-Kube deployment

create examples and instructions on how to run the container in a GCE-Kube environment with persistent storage

Issue with a template

Hey there:
This template
https://github.com/CrunchyData/crunchy-containers/blob/master/examples/openshift/master-slave-dc/master-slave-rc-dc-ict.json

uses an image stream (with latest) but there is no image stream defined anywhere else. It seems almost all the other templates use an actual image with a tag rather than an image stream.

Also, what does ict stand for.

Can we get a readme for some of the examples so, you know, if you want to demo them or something we know which one to use ;)

I am going to pull the 1.2.1 images into my all-in-one for the workshop. Let me know if I need to rebuild my image

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.