Вы должны создать VMDK , который является диском виртуальной машины.
Вы можете сделать это, используя govc , то есть vSphere CLI.
govc datastore.disk.create -ds datastore1 -size 2G volumes/myDisk.vmdk
Или используя ESXi CLI с помощью ssh в хосте как root
и выполнив:
vmkfstools -c 2G /vmfs/volumes/datastore1/volumes/myDisk.vmdk
Как только это будет сделано, вы должны создать PV, назовем его vsphere_pv.yaml
, который может выглядеть следующим образом:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0001
spec:
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
vsphereVolume:
volumePath: "[datastore1] volumes/myDisk"
fsType: ext4
datastore1
в этом примере было создано в корневой папке vCenter, если вы располагаете его в другом месте, вам нужно изменить volumePath
. Если он расположен в DatastoreCluster
, тогда установите volumePath
в "[DatastoreCluster/datastore1] volumes/myDisk"
.
Примените Ямл к Kubernetes kubectl apply -f vsphere_pv.yaml
Вы можете проверить, был ли он создан, описав его kubectl describe pv pv0001
Теперь вам нужен ПВХ, давайте назовем его vsphere_pvc.yaml
для потребления ПВ.
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc0001
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
Примените Ямл к Кубернетам по kubectl apply -f vsphere_pvc.yaml
Вы можете проверить, был ли он создан, описав его kubectl describe pvc pv0001
Как только это будет сделано, ваш yaml
может выглядеть следующим образом:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: jenkins-auto-ci
spec:
replicas: 1
template:
metadata:
labels:
app: jenkins-auto-ci
spec:
containers:
- name: jenkins-auto-ci
image: jenkins
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
ports:
- name: http-port
containerPort: 80
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins-home
mountPath: "/var"
volumes:
- name: jenkins-home
persistentVolumeClaim:
claimName: pvc0001
Все это хорошо объясняется на Vmware GitHub vsphere-storage-for-kubernetes .