diff --git a/Federated-Deployment/kubernetes/README.md b/Federated-Deployment/kubernetes/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..447daa46a159c43ba88715c4ac95a4fab8300448
--- /dev/null
+++ b/Federated-Deployment/kubernetes/README.md
@@ -0,0 +1,2 @@
+# Deploy exareme with Kubernetes
+
diff --git a/Federated-Deployment/kubernetes/exareme-keystore.yaml b/Federated-Deployment/kubernetes/exareme-keystore.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d9e907db627cb7b1f9d3dad1e4de8308466673f7
--- /dev/null
+++ b/Federated-Deployment/kubernetes/exareme-keystore.yaml
@@ -0,0 +1,49 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: exareme-keystore-deployment
+  labels:
+    app: exareme-keystore
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: exareme-keystore
+  template:
+    metadata:
+      labels:
+        app: exareme-keystore
+    spec:
+      nodeSelector:
+        nodeType: master
+      containers:
+      - name: exareme-keystore
+        image: bitnami/consul:1.8.3
+        ports:
+          - containerPort: 8500
+        env:
+        - name: CONSUL_AGENT_MODE
+          value: "server"
+        - name: CONSUL_BOOTSTRAP_EXPECT
+          value: "1"
+        - name: CONSUL_CLIENT_LAN_ADDRESS
+          value: "0.0.0.0"
+        - name: CONSUL_ENABLE_UI
+          value: "true"
+      
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: exareme-keystore-service
+spec:
+  type: LoadBalancer
+  selector:
+    app: exareme-keystore
+  ports:
+    - protocol: TCP
+      port: 8500
+      targetPort: 8500
+      nodePort: 30000
\ No newline at end of file
diff --git a/Federated-Deployment/kubernetes/exareme-master.yaml b/Federated-Deployment/kubernetes/exareme-master.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4a0b3672a7acf4863cbd471d3c4d63977ab6347c
--- /dev/null
+++ b/Federated-Deployment/kubernetes/exareme-master.yaml
@@ -0,0 +1,63 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: exareme-master-deployment
+  labels:
+    app: exareme-master
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: exareme-master
+  template:
+    metadata:
+      labels:
+        app: exareme-master
+    spec:
+      nodeSelector:
+        nodeType: master
+      containers:
+      - name: exareme-master
+        image: hbpmip/exareme:24.1.2
+        ports:
+          - containerPort: 9090
+        volumeMounts:
+        - mountPath: /root/exareme/data
+          name: csvs
+        env:
+        - name: CONSULURL
+          value: "exareme-keystore-service:8500"
+        - name: FEDERATION_ROLE
+          value: "master"
+        - name: NODE_NAME
+          value: "master"
+        - name: TEMP_FILES_CLEANUP_TIME
+          value: "30"
+        - name: NODE_COMMUNICATION_TIMEOUT
+          value: "30000"
+        - name: ENVIRONMENT_TYPE
+          value: "PROD"
+        - name: LOG_LEVEL
+          value: "INFO"
+        - name: CONVERT_CSVS
+          value: "TRUE"
+      volumes:
+      - name: csvs
+        hostPath:
+          path: /etc/exareme
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: exareme-master-service
+spec:
+  type: LoadBalancer
+  selector:
+    app: exareme-master
+  ports:
+    - protocol: TCP
+      port: 9090
+      targetPort: 9090
+      nodePort: 30090
diff --git a/Federated-Deployment/kubernetes/exareme-worker.yaml b/Federated-Deployment/kubernetes/exareme-worker.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..74a2c9e84dc4fdf29e9ef5bb54123028a5f02f92
--- /dev/null
+++ b/Federated-Deployment/kubernetes/exareme-worker.yaml
@@ -0,0 +1,59 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: exareme-worker-deployment
+  labels:
+    app: exareme-worker
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: exareme-worker
+  template:
+    metadata:
+      labels:
+        app: exareme-worker
+    spec:
+      nodeSelector:
+        nodeType: worker
+      affinity:
+        podAntiAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+          - labelSelector:
+              matchExpressions:
+              - key: app
+                operator: In
+                values:
+                - exareme-worker
+            topologyKey: "kubernetes.io/hostname"
+      containers:
+      - name: exareme-worker
+        image: hbpmip/exareme:24.1.2
+        ports:
+          - containerPort: 9090
+        volumeMounts:
+        - mountPath: /root/exareme/data
+          name: csvs
+        env:
+        - name: NODE_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: spec.nodeName
+        - name: CONSULURL
+          value: "exareme-keystore-service:8500"
+        - name: FEDERATION_ROLE
+          value: "worker"
+        - name: TEMP_FILES_CLEANUP_TIME
+          value: "30"
+        - name: NODE_COMMUNICATION_TIMEOUT
+          value: "30000"
+        - name: ENVIRONMENT_TYPE
+          value: "PROD"
+        - name: LOG_LEVEL
+          value: "INFO"
+        - name: CONVERT_CSVS
+          value: "TRUE"
+      volumes:
+      - name: csvs
+        hostPath:
+          path: /etc/exareme