diff --git a/nomad/api/app.py b/nomad/api/app.py
index 69bc14a22487ab3d262b5b7d818e49a09afb046c..68daaaef3c2652a53cc159ae370086b4e5fbb05e 100644
--- a/nomad/api/app.py
+++ b/nomad/api/app.py
@@ -82,6 +82,12 @@ def handle(error: Exception):
     return response
 
 
+@app.route("%s/alive" % base_path)
+def alive():
+    """ Simply endpoint to utilize kubernetes liveness/readiness probing. """
+    return "I am, alive!"
+
+
 def with_logger(func):
     """
     Decorator for endpoint implementations that provides a pre configured logger and
diff --git a/ops/helm/nomad/templates/api-deployment.yaml b/ops/helm/nomad/templates/api-deployment.yaml
index ad7c74d05643089241a1699f46eaf5d9f7cac042..bbd3c322658ba4b6d4bd915e2bcd8ccf1b429f72 100644
--- a/ops/helm/nomad/templates/api-deployment.yaml
+++ b/ops/helm/nomad/templates/api-deployment.yaml
@@ -71,6 +71,18 @@ spec:
         - name: NOMAD_COE_REPO_DB_NAME
           value: "{{ .Values.dbname }}"
         command: ["python", "-m", "gunicorn.app.wsgiapp", "-b 0.0.0.0:8000", "nomad.api:app"]
+        livenessProbe:
+          httpGet:
+            path: "{{ .Values.proxy.external.path }}/alive"
+            port: 8000
+          initialDelaySeconds: 15
+          periodSeconds: 15
+        readinessProbe:
+          httpGet:
+            path: "{{ .Values.proxy.external.path }}/alive"
+            port: 8000
+          initialDelaySeconds: 5
+          periodSeconds: 5
       imagePullSecrets:
       - name: {{ .Values.images.secret }}
       imagePullPolicy: always
diff --git a/ops/helm/nomad/templates/worker-deployment.yaml b/ops/helm/nomad/templates/worker-deployment.yaml
index 92dd0546badb5ed157ca49b03d4ad972eb580e91..c28b04761a76c3e80f5731ab6d9d006fe856da55 100644
--- a/ops/helm/nomad/templates/worker-deployment.yaml
+++ b/ops/helm/nomad/templates/worker-deployment.yaml
@@ -59,6 +59,26 @@ spec:
         - name: NOMAD_COE_REPO_DB_NAME
           value: "{{ .Values.dbname }}"
         command: ["python", "-m", "celery", "worker", "-l", "info", "-A", "nomad.processing"]
+        livenessProbe:
+          exec:
+            env:
+            - name: NOMAD_LOGSTASH_LEVEL
+            - value: 30
+            command:
+            - sh -c
+            - celery -A nomad.processing status
+          initialDelaySeconds: 30
+          periodSeconds: 30
+        readinessProbe:
+          exec:
+            env:
+            - name: NOMAD_LOGSTASH_LEVEL
+            - value: 30
+            command:
+            - sh -c
+            - celery -A nomad.processing status
+          initialDelaySeconds: 5
+          periodSeconds: 5
       imagePullSecrets:
       - name: {{ .Values.images.secret }}
       imagePullPolicy: always
diff --git a/tests/test_api.py b/tests/test_api.py
index b593e6797c44063946fbe9e5691659614c77e7e8..0e2a98192663ed1bffdd83f84d0b6ef50795e297 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -56,6 +56,11 @@ def client(mockmongo):
     Upload._get_collection().drop()
 
 
+def test_alive(client):
+    rv = client.get('/alive')
+    assert rv.status_code == 200
+
+
 def create_auth_headers(user):
     basic_auth_str = '%s:password' % user.email
     basic_auth_bytes = basic_auth_str.encode('utf-8')