Skip to content

Instantly share code, notes, and snippets.

@mjmenger
Created April 25, 2024 18:42
Show Gist options
  • Save mjmenger/ba26557ace71824f5db5edee2863b83e to your computer and use it in GitHub Desktop.
Save mjmenger/ba26557ace71824f5db5edee2863b83e to your computer and use it in GitHub Desktop.
testload

Create the persistent volume

# pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: menger-experiment
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: menger
  hostPath:
    path: /var/lib/menger-experiment
    type: DirectoryOrCreate

kubectl apply -f pv.yaml

Create the persistent volument claim

# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: menger-experiment
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: menger
  volumeName: menger-experiment

kubectl apply -n mynamespace -f pvc.yaml

Create job to load volume

# job-load.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: load-models
spec:
  template:
    spec:
      volumes:
      - name: models
        persistentVolumeClaim:
          claimName: menger-experiment    
      containers:
      - name: load-triton-models
        image: ghcr.io/mjmenger/load-models
        env:
        - name: LOAD_INCEPTION_GRAPHDEF
          value: "1"
        - name: LOAD_DENSENET_ONNX
          value: "1"        
        volumeMounts:
        - name: models
          mountPath: /models      
      restartPolicy: Never
  backoffLimit: 4

kubectl apply -n mynamespace -f job-load.yaml
Wait for the job to complete
kubectl get -n mynamespace job load-models -o yaml
status -> conditions -> type

...
status:
  completionTime: "2024-04-25T18:30:17Z"
  conditions:
  - lastProbeTime: "2024-04-25T18:30:17Z"
    lastTransitionTime: "2024-04-25T18:30:17Z"
    status: "True"
    type: Complete
  ready: 0
  startTime: "2024-04-25T18:30:09Z"
  succeeded: 1
  uncountedTerminatedPods: {}

Check the logs
kubectl logs -n mynamespace load-models-aaaaa load-triton-models

Create the job to check on the models directory

# job-check.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: check-models
spec:
  template:
    spec:
      volumes:
      - name: models
        persistentVolumeClaim:
          claimName: menger-experiment    
      containers:
      - name: check-models
        image: ghcr.io/mjmenger/check-models
        volumeMounts:
        - name: models
          mountPath: /models  
      restartPolicy: Never
  backoffLimit: 4

kubectl apply -n mynamespace -f job-check.yaml

Check the logs
kubectl logs -n mynamespace check-models-aaaaa check-models

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment