Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ianlewis/memcached-operator
A Kubernetes operator for memcached
https://github.com/ianlewis/memcached-operator
kubernetes kubernetes-operator memcached
Last synced: about 1 month ago
JSON representation
A Kubernetes operator for memcached
- Host: GitHub
- URL: https://github.com/ianlewis/memcached-operator
- Owner: ianlewis
- License: apache-2.0
- Created: 2017-10-19T05:11:19.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-01-10T22:24:38.000Z (over 2 years ago)
- Last Synced: 2024-02-11T10:08:39.170Z (5 months ago)
- Topics: kubernetes, kubernetes-operator, memcached
- Language: Go
- Homepage:
- Size: 32.7 MB
- Stars: 150
- Watchers: 3
- Forks: 18
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Lists
- awesome-operators - ianlewis/memcached-operator
README
# Memcached Operator
[![](https://images.microbadger.com/badges/image/ianmlewis/memcached-operator:v0.0.2.svg)](https://hub.docker.com/r/ianmlewis/memcached-operator/ "memcached-operator on Docker hub") [![Go Report Card](https://goreportcard.com/badge/github.com/ianlewis/memcached-operator)](https://goreportcard.com/report/github.com/ianlewis/memcached-operator) [![](https://travis-ci.org/ianlewis/memcached-operator.svg?branch=master)](https://travis-ci.org/ianlewis/memcached-operator)
memcached-operator is a Kubernetes [Operator](https://coreos.com/blog/introducing-operators.html) for deploying and managing a cluster of [Memcached](https://memcached.org/) instances.
memcached-operator provides a single Service endpoint that memcached client applications can connect to to make use of the memcached cluster. It provides this via a memcached proxy which is automatically updated whenever memcached instances are added or removed from the cluster.
memcached-operator supports sharded and replicated pools of servers as well as combinations of both strategies.
![diagram](docs/design.png)
See the [documentation](docs/README.md) for more information.
## Project Status
**Project status:** *alpha*
memcached-operator is still under active development and has not been extensively tested yet. Use at your own risk. Backward-compatibility is not supported for alpha releases.
## Prerequisites
* Version >= 1.10 of Kubernetes.
memcached-operator relies on [subresources for CRDs](https://github.com/kubernetes/kubernetes/pull/55168) which is in 1.10+
## Quickstart
You can install the memcached-operator using the included helm chart. Check out the git repository and run this in the root directory.
$ helm install --name memcached-operator charts/memcached-operator
The easiest way to create a memcached cluster is using the [memcached helm chart](https://github.com/kubernetes/charts/tree/master/stable/memcached):
$ helm install --name sharded stable/memcached
You can then create a memcached proxy to connect to the cluster.
[embedmd]:# (docs/sharded-example.yaml yaml /apiVersion/ $)
```yaml
apiVersion: ianlewis.org/v1alpha1
kind: MemcachedProxy
metadata:
name: sharded-example
spec:
rules:
type: "sharded"
service:
name: "sharded-memcached"
port: 11211
```$ kubectl apply -f docs/sharded-example.yaml
You can then access your memcached cluster via the`sharded-memcached`service. Check the [documentation](docs/README.md) for more information.
## Removal
You can remove the memcached-operator by deleting the helm release.
$ helm delete --purge memcached-operator
## Development
Check out memcached-operator to your `GOPATH`
### Building
memcached-operator can be built using the normal Go build tools. This will build a binary dynamically linked to glibc.
$ go build
You can build a fully statically linked binary as well:
$ make build
[//]: # (TODO: Include dependencies for running tests for vendored libraries in vendor)
[//]: # (TODO: Create end-to-end tests and instructions)# Similar projects
- [mcrouter-kubernetes-provisioner](https://github.com/mlaccetti/mcrouter-kubernetes-provisioner)
- [KubeStack memcached operator](https://github.com/kbst/memcached)
- [KubeDB memcached operator](https://github.com/kubedb/memcached)## Disclaimers
This is not an official Google product