Learn more about PKS and Pure Storage with these posts:
Getting started with Persistent Storage and PKS
Installing PSO in PKS with Helm
Installing PSO in PKS with the Operator
Use PKS + VMware SDDC + Pure Storage
Migrating PSO Volumes into vVols and PKS
Remember to have the K8s cluster created within PKS and remember to think about how those PKS vm’s can communicate with the FlashArray and FlashBlade.
More information and detail:
https://github.com/purestorage/helm-charts/tree/master/operator-k8s-plugin
First we must download the git repo with the installer for the Operator.
$ git clone --branch <version> https://github.com/purestorage/helm-charts.git $ cd helm-charts/operator-k8s-plugin $./install.sh --namespace=pso --orchestrator=k8s -f values.yaml $ kubectl get all -n pso NAME READY STATUS RESTARTS AGE pod/pso-operator-b96cfcfbb-zbwwd 1/1 Running 0 27s pod/pure-flex-dzpwm 1/1 Running 0 17s pod/pure-flex-ln6fh 1/1 Running 0 17s pod/pure-flex-qgb46 1/1 Running 0 17s pod/pure-flex-s947c 1/1 Running 0 17s pod/pure-flex-tzfn7 1/1 Running 0 17s pod/pure-provisioner-6c9f69dcdc-829zq 1/1 Running 0 17s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/pure-flex 5 5 5 5 5 <none> 17s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/pso-operator 1/1 1 1 27s deployment.apps/pure-provisioner 1/1 1 1 17s NAME DESIRED CURRENT READY AGE replicaset.apps/pso-operator-b96cfcfbb 1 1 1 27s replicaset.apps/pure-provisioner-6c9f69dcdc 1 1 1 17s
Sample deployment you can copy this all to a file called deployment.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minio-pv-claim-rwx
labels:
app: minio
spec:
storageClassName: pure-file
accessModes:
- ReadWriteMany
resources:
requests:
storage: 101Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
# This name uniquely identifies the Deployment
name: minio-deployment
spec:
selector:
matchLabels:
app: minio
strategy:
type: Recreate
template:
metadata:
labels:
# Label is used as selector in the service.
app: minio
spec:
# Refer to the PVC created earlier
volumes:
- name: storage
persistentVolumeClaim:
# Name of the PVC created earlier
claimName: minio-pv-claim-rwx
containers:
- name: minio
# Pulls the default Minio image from Docker Hub
image: minio/minio:latest
args:
- server
- /storage
env:
# Minio access key and secret key
- name: MINIO_ACCESS_KEY
value: "minio"
- name: MINIO_SECRET_KEY
value: "minio123"
ports:
- containerPort: 9000
hostPort: 9000
# Mount the volume into the pod
volumeMounts:
- name: storage
mountPath: "/storage"
---
apiVersion: v1
kind: Service
metadata:
name: minio-service
spec:
type: LoadBalancer
ports:
- port: 9000
targetPort: 9000
protocol: TCP
selector:
app: minio
Now apply the file to the cluster
# kubectl apply -f deployment.yaml
Check the pod status
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
minio-deployment-95b9d8474-xmtk2 1/1 Running 0 4h19m
pure-flex-9hbfj 1/1 Running 2 3d4h
pure-flex-w4fvq 1/1 Running 1 3d23hpure-flex-zbqvz 1/1 Running 1 3d23h
pure-provisioner-dd4c4ccb7-dp76c 1/1 Running 7 3d23h
Check the PVC status
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
minio-pv-claim-rwx Bound pvc-04817b75-f98b-11e9-8402-005056a975c2 101Gi RWX pure-file 4h19m
Learn more about PKS and Pure Storage with these posts:
Getting started with Persistent Storage and PKS
Installing PSO in PKS with Helm
Installing PSO in PKS with the Operator
Use PKS + VMware SDDC + Pure Storage
Migrating PSO Volumes into vVols and PKS