Run the Satellite container using Kubernetes

Follow this step-by-step guide on how to download, install, and run the Ingestion Satellite container using Kubernetes on your system.

Prerequisites

  • A running Kubernetes cluster.

  • kubectl command-line tool configured to communicate with your cluster.

  • Access to the levelops/ingestion-satellite Docker image.

Prepare the Kubernetes Deployment

Use the following Kubernetes deployment template to create the necessary resources for the Satellite container:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: levelops-satellite
subjects:
  - kind: ServiceAccount
    name: levelops-satellite
    namespace: default
    apiGroup: ""
roleRef:
  kind: ClusterRole
  name: edit
  apiGroup: rbac.authorization.k8s.io
apiVersion: v1
kind: ServiceAccount
metadata:
  name: levelops-satellite
  namespace: default
  labels:
    app: levelops
apiVersion: apps/v1
kind: Deployment
metadata:
  name: levelops-satellite
  namespace: default
spec:
  selector:
    matchLabels:
      app: levelops-satellite
  template:
    metadata:
      labels:
        app: levelops-satellite
    spec:
      serviceAccountName: levelops-satellite
      containers:
        - name: levelops-satellite
          image: levelops/ingestion-satellite
          imagePullPolicy: Always
          resources:
            limits:
            memory: "5Gi"
            cpu: "1000m"
          volumeMounts:
            - name: config-volume
              mountPath: /levelops/config.yml
              subPath: config.yml
      volumes:
      - name: config-volume
        configMap:
          name: levelops-satellite-config
apiVersion: v1
kind: ConfigMap
metadata:
  name: levelops-satellite-config
  namespace: default
data:
  config.yml: |
    satellite:
      tenant: <TENANT>
      api_key: <API_KEY>
    integrations:
      - id: '<ID>'
        application: custom

Make sure to replace <TENANT>, <API_KEY>, and <ID> with your specific configuration values.

Apply the Deployment

Apply the deployment to your Kubernetes cluster using the kubectl apply command. Replace <your-name-space> with the desired Kubernetes namespace:

kubectl apply --namespace=<your-name-space> -f deployment.yml

Verify Satellite Container

Check if the Satellite container is running correctly by monitoring its logs. Use the following commands to find the pod and stream its logs:

kubectl get pods --namespace=<your-name-space> # Use this to find the pod.
kubectl logs -f <satellite-pod-name> --namespace=<your-name-space>

You should see heartbeats being sent in the logs, indicating that the Satellite container is operational.

The deployment is configured with imagePullPolicy: Always, which means it will always pull the latest image updates when the pod is restarted. To force a pod restart and get the latest updates, use the following command:

kubectl rollout restart deployment levelops-satellite

This ensures that your Satellite container stays up to date with the latest changes. Make sure to monitor the logs regularly to ensure the proper functioning of the container.

Last updated