1
0
Fork 0
mirror of https://github.com/arangodb/kube-arangodb.git synced 2024-12-14 11:57:37 +00:00
kube-arangodb/README.md

131 lines
7.1 KiB
Markdown
Raw Normal View History

2018-02-06 07:16:21 +00:00
# ArangoDB Kubernetes Operator
2018-09-11 13:03:30 +00:00
[![Docker Pulls](https://img.shields.io/docker/pulls/arangodb/kube-arangodb.svg)](https://hub.docker.com/r/arangodb/kube-arangodb/)
2018-04-06 11:58:19 +00:00
ArangoDB Kubernetes Operator helps do run ArangoDB deployments
on Kubernetes clusters.
2018-02-06 07:16:21 +00:00
2018-04-06 11:58:19 +00:00
To get started, follow the Installation instructions below and/or
read the [tutorial](./docs/Manual/Tutorials/Kubernetes/README.md).
## State
The ArangoDB Kubernetes Operator is still in **development**.
2018-04-06 11:58:19 +00:00
Running ArangoDB deployments (single, active-failover or cluster)
is reasonably stable, and we're in the process of validating
production readiness of various Kubernetes platforms.
2018-04-06 11:58:19 +00:00
The feature set of the ArangoDB Kubernetes Operator is close to what
it is intended to be.
2018-02-06 07:16:21 +00:00
[Documentation](./docs/README.md)
2018-03-12 11:18:50 +00:00
2018-06-19 10:02:21 +00:00
### Production readiness state
2019-04-06 18:06:28 +00:00
| Platform | Kubernetes version | ArangoDB version | ArangoDB K8s Operator Version | State | Production ready | Remarks |
|----------------------|--------------------|------------------|-------------------------------|-------|------------------|-----------------------|
| Google GKE | 1.10 | >= 3.3.13 | | Runs | Yes | Don't use micro nodes |
| Google GKE | 1.11 | >= 3.3.13 | | Runs | Yes | Don't use micro nodes |
| Amazon EKS | 1.11 | >= 3.3.13 | | Runs | Yes | |
| Pivotal PKS | 1.11 | >= 3.3.13 | | Runs | Yes | |
2019-05-13 10:54:08 +00:00
| IBM Cloud | 1.11 | >= 3.4.5 | >= 0.3.11 | Runs | Yes | |
2019-05-28 09:40:56 +00:00
| IBM Cloud | 1.12 | >= 3.4.5 | >= 0.3.11 | Runs | Yes | |
2019-04-06 18:06:28 +00:00
| Amazon & Kops | 1.10 | >= 3.3.13 | | Runs | No | |
| Azure AKS | 1.10 | >= 3.3.13 | | Runs | No | |
| OpenShift | 1.10 | >= 3.3.13 | | Runs | No | |
| Bare metal (kubeadm) | 1.10 | >= 3.3.13 | | Runs | Yes | |
| Bare metal (kubeadm) | 1.11 | >= 3.3.13 | | Runs | Yes | |
2019-04-30 11:48:12 +00:00
| Bare metal (kubeadm) | 1.12 | >= 3.3.13 | | Runs | In progress | |
2019-05-13 11:56:40 +00:00
| Bare metal (kubeadm) | 1.13 | >= 3.3.13 | | Runs | Yes | |
2019-04-06 18:06:28 +00:00
| Bare metal (kubeadm) | 1.14 | >= 3.3.13 | | Runs | In progress | |
| Minikube | 1.10 | >= 3.3.13 | | Runs | Not intended | |
| Docker for Mac Edge | 1.10 | >= 3.3.13 | | Runs | Not intended | |
2019-04-30 11:50:11 +00:00
| Scaleway Kubernetes | 1.10 | >= 3.3.13 | ? | No | | |
2018-06-19 10:02:21 +00:00
## WARNING
2018-08-20 14:25:07 +00:00
2019-03-04 11:01:19 +00:00
**WARNING**: There is a problem with rolling upgrades in version 0.3.8.
**DO NOT USE 0.3.8 FOR ROLLING UPGRADES.** If you are still using 0.3.8,
then upgrade to 0.3.9 of the operator first before running any rolling
upgrade.
## Installation of latest release using Kubectl
```bash
2019-04-08 09:56:17 +00:00
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.10/manifests/arango-crd.yaml
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.10/manifests/arango-deployment.yaml
# To use `ArangoLocalStorage`, also run
2019-04-08 09:56:17 +00:00
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.10/manifests/arango-storage.yaml
# To use `ArangoDeploymentReplication`, also run
2019-04-08 09:56:17 +00:00
kubectl apply -f https://raw.githubusercontent.com/arangodb/kube-arangodb/0.3.10/manifests/arango-deployment-replication.yaml
```
This procedure can also be used for upgrades and will not harm any
running ArangoDB deployments.
## Installation of latest release using Helm
Only use this procedure for a new install of the operator. See below for
upgrades.
2018-08-20 14:25:07 +00:00
```bash
2018-10-30 16:13:06 +00:00
# The following will install the custom resources required by the operators.
2019-04-08 09:56:17 +00:00
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.10/kube-arangodb-crd.tgz
2018-08-20 14:25:07 +00:00
# The following will install the operator for `ArangoDeployment` &
2018-11-09 04:34:54 +00:00
# `ArangoDeploymentReplication` resources.
2019-04-08 09:56:17 +00:00
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.10/kube-arangodb.tgz
2018-08-20 14:25:07 +00:00
# To use `ArangoLocalStorage`, also run
2019-04-08 09:56:17 +00:00
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.10/kube-arangodb-storage.tgz
2018-08-20 14:25:07 +00:00
```
## Upgrading the operator using Helm
To upgrade the operator to the latest version with Helm, you have to
delete the previous deployment and then install the latest. **HOWEVER**:
You *must not delete* the deployment of the custom resource definitions
(CRDs), or your ArangoDB deployments will be deleted!
Therefore, you have to use `helm list` to find the deployments for the
operator (`kube-arangodb`) and of the storage operator
(`kube-arangodb-storage`) and use `helm delete` to delete them using the
automatically generated deployment names. Here is an example of a `helm
list` output:
```
% helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
intent-camel 1 Mon Apr 8 11:37:52 2019 DEPLOYED kube-arangodb-storage-0.3.10-preview default
steely-mule 1 Sun Mar 31 21:11:07 2019 DEPLOYED kube-arangodb-crd-0.3.9 default
vetoed-ladybird 1 Mon Apr 8 11:36:58 2019 DEPLOYED kube-arangodb-0.3.10-preview default
```
So here, you would have to do
2018-03-20 10:33:37 +00:00
```bash
helm delete intent-camel
helm delete vetoed-ladybird
```
but **not delete `steely-mule`**. Then you could install the new version
with `helm install` as normal:
```bash
# The following will install the operator for `ArangoDeployment` &
# `ArangoDeploymentReplication` resources.
2019-04-08 09:56:17 +00:00
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.10/kube-arangodb.tgz
2018-03-20 10:33:37 +00:00
# To use `ArangoLocalStorage`, also run
2019-04-08 09:56:17 +00:00
helm install https://github.com/arangodb/kube-arangodb/releases/download/0.3.10/kube-arangodb-storage.tgz
2018-03-20 10:33:37 +00:00
```
2018-03-12 11:18:50 +00:00
## Building
```bash
DOCKERNAMESPACE=<your dockerhub account> make
2018-03-19 10:09:20 +00:00
kubectl apply -f manifests/arango-deployment-dev.yaml
# To use `ArangoLocalStorage`, also run
kubectl apply -f manifests/arango-storage-dev.yaml
# To use `ArangoDeploymentReplication`, also run
kubectl apply -f manifests/arango-deployment-replication-dev.yaml
2018-03-12 11:18:50 +00:00
```