Kubernetes - Sky Platform Integration
Run GPU-accelerated Kubernetes workloads on serverless infrastructure with Perian Sky Platform.
Overview
The Perian Virtual Kubelet Integration enables Kubernetes workloads to run seamlessly on the Perian Sky Platform, a cost-effective, GPU-powered serverless environment. With this integration, Pods scheduled through the Virtual Kubelet are automatically transformed into jobs executed on Perian Sky—no infrastructure management needed.
Key Features
- Effortless Integration: Minimal configuration required to transform Kubernetes Pods into Perian Sky jobs.
- Serverless GPU Acceleration: Access powerful GPU's without managing VMs or clusters.
- Kubernetes-Compatible: Use your existing Kubernetes setup to leverage Perian's scalable infrastructure.
- Step 1: Clone the repository
git clone https://github.com/Perian-io/perian-virtual-kubelet.git
cd perian-virtual-kubelet
- Step 2: Build the Virtual Kubelet image
- Step 2: Build the Virtual Kubelet image
make build-docker
- Step 3: Create a Perian config yaml file
- Step 3: Create a Perian config yaml file
PerianServerURL: "https://api.perian.cloud"
PerianOrg: "perian-org"
PerianAuthToken: "perian-bearer-auth-token"
KubeletPort: "8080"
NodeName: "perian-vk-node"
InternalIP: "127.0.0.1"
KubernetesSecretName: "my-docker-secret"
- Step 4: Create a Pod definition yaml file to deploy Virtual Kubelet
- Step 4: Create a Pod definition yaml file to deploy Virtual Kubelet
apiVersion: v1
kind: Pod
metadata:
name: perian-virtual-kubelet
namespace: kube-system
spec:
containers:
- name: perian-virtual-kubelet
image: perian-virtual-kubelet:latest
imagePullPolicy: Never
env:
- name: CONFIG
value: "/app/config/perian.yaml"
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
ports:
- containerPort: 8080
volumeMounts:
- name: config-volume
mountPath: "/app/config"
volumes:
- name: config-volume
configMap:
name: my-config
- Step 5: Deploy the Virtual Kubelet Pod to your cluster
- Step 5: Deploy the Virtual Kubelet Pod to your cluster
kubectl apply -f virtualkubelet_pod.yaml
- Step 6: Add node name to your Pod definition to select Virtual
- Step 6: Add node name to your Pod definition to select Virtual
apiVersion: v1
kind: Pod
metadata:
name: test-pod
namespace: default
spec:
nodeName: "node-name"
...
- Step 7: Deploy the Pod to your cluster on the Perian Sky Platform
- Step 7: Deploy the Pod to your cluster on the Perian Sky Platform
kubectl apply -f pod.yaml
- Optional: Adding docker registry credential as a secret
- Optional: Adding docker registry credential as a secret
apiVersion: v1
kind: Secret
metadata:
name: docker-secret
namespace: default
type: Opaque
data:
registryURL: "base64_encoded_url"
username: "base64_encoded_username"
password: "base64_encoded_password"
kubectl apply -f secret.yaml