Kubernetes Installation
5 min
Before you begin
- Get access to a configured Kubernetes cluster.
- Get access to PersistentVolumeClaim (PVC). Learn more about Persistent Volumes from the Kubernetes documentation.
- Get administrative permissions to run the kubectl command-line tool.
- Depending on the specific requirements of your environment, you may need to get access to a storage class. Learn more about Storage Classes from the Kubernetes documentation.
- For full DeviceHub driver support, ensure your Linux host kernel is version 6 or higher
Step 1: Launch a Litmus Edge on Kubernetes
To launch a Litmus Edge on Kubernetes cluster:
1. Open a Command Prompt Terminal (CTRL+R). 2. Execute the following commands to create a new Kubernetes namespace.
kubectl create namespace le-prodThe command creates a namespace named le-prod.
Note: le-prod should be changed to an isolated namespace to suit deployment best.
3. Copy the following Litmus Edge deployment file and save it to litmusedge-deployment.yaml file.
# Create ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
name: litmusedge-docker
namespace: le-prod
labels:
app.kubernetes.io/name: litmusedge-docker
app.kubernetes.io/instance: litmusedge-instance
---
# Create PVC
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: litmusedge-data
namespace: le-prod
labels:
app.kubernetes.io/name: litmusedge-docker
app.kubernetes.io/instance: litmusedge-instance
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "10G"
---
# Create Service
apiVersion: v1
kind: Service
metadata:
name: litmusedge-docker
namespace: le-prod
labels:
app.kubernetes.io/name: litmusedge-docker
app.kubernetes.io/instance: litmusedge-instance
spec:
type: ClusterIP
ports:
- port: 443
targetPort: https
protocol: TCP
name: https
selector:
app.kubernetes.io/name: litmusedge-docker
app.kubernetes.io/instance: litmusedge-instance
---
# Create Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: litmusedge-docker
namespace: le-prod
labels:
app.kubernetes.io/name: litmusedge-docker
app.kubernetes.io/instance: litmusedge-instance
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: litmusedge-docker
app.kubernetes.io/instance: litmusedge-instance
template:
metadata:
labels:
app.kubernetes.io/name: litmusedge-docker
app.kubernetes.io/instance: litmusedge-instance
spec:
serviceAccountName: litmusedge-docker
securityContext:
{}
containers:
- name: litmusedge-docker
securityContext:
capabilities:
add:
- NET_ADMIN
image: "litmusedge.azurecr.io/litmusedge-std-docker:latest"
imagePullPolicy: IfNotPresent
ports:
- name: https
containerPort: 443
protocol: TCP
volumeMounts:
- mountPath: /var
mountPropagation:
name: litmusedge-data
subPath:
subPathExpr:
resources:
requests:
cpu: 1
memory: 1024Mi
limits:
cpu: 4
memory: 4096Mi
volumes:
- name: litmusedge-data
persistentVolumeClaim:
claimName: litmusedge-data4. Execute the following command to deploy a Litmus Edge Kubernetes cluster using the deployment file from Step 4.
kubectl apply -f litmusedge-deployment.yaml --namespace le-prodRefer to the command parameters:
- -f litmusedge-deployment.yaml uses the file litmusedge-deployment.yaml for deployment. This should not be changed.
- --namespace le-prod setsle-prod to be the deployment that Kubernetes will use.
Special and Additional Considerations:
- Litmus Edge can function in both single and multi Kubernetes node clusters, and can support various networking modes. Your Kubernetes admin has the responsibility to configure proper networking.
- Adjust CPU/RAM/Storage for the Kubernetes cluster as needed. Storage should be set to at least 10GB. Scale additional computing resources when using Litmus Edge features that require high-computing power, such as PLC drivers, integrations, and Flows.
- Review Kubernetes official documentation for best practices.
- Ensure credentials are stored properly with Kubernetes management.
- NET_ADMIN permissions are required.
Step 2: Log in to Litmus Edge
- See Access the Litmus Edge Web UI for details on logging in.
- See Access the Terminal User Interface for instructions on how to navigate and log in for the first time.
Note: To identify the port configured by the admin, use the following command: kubectl get svc -n le-prod