Installation¶
Prerequisites¶
- Kubernetes >= 1.18
- Helm 2.x
Installing the runtime¶
The runtime is the collective controllers, components, and custom resources Atomix uses to configure and manage Atomix-enabled applications in Kubernetes. To use Atomix in your Kubernetes applications, you first must deploy the Atomix runtime. The runtime can be deployed via a Helm chart.
First, add the Atomix Helm charts repo to your Helm client:
helm repo add atomix https://charts.atomix.io
If you’ve already added the Atomix repo, ensure you have the latest charts in your Helm cache:
helm repo update
Once you’ve configured your Helm client, deploy the Atomix runtime by installing the atomix-runtime umbrella chart:
helm install -n kube-system atomix-runtime atomix/atomix-runtime
The atomix-runtime
chart is an umbrella chart that includes controllers and CRDs for various storage types supported by Atomix. It’s strongly recommended that you deploy the runtime in the kube-system
namespace to prevent controllers from being deleted when namespaces are deleted.
Proxy injection¶
To enable Atomix runtime integration for your Kubernetes application, pods must be annotated with the proxy.atomix.io/inject
annotation.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
namespace: default
annotations:
proxy.atomix.io/inject: "true"
When annotated pods are deployed, the runtime controller will inject the Atomix sidecar proxy container into the pods. The proxy is a mediation layer between the application and data stores, decoupling the application layer from the storage layer to make the latter configurable without any modifications to the former.