Kubernetes PetSet – Failed创build持久性卷

我试图设置一个Kubernetes PetSet,如文档中所述。 当我创buildPetSet时,我似乎无法获得永久卷声明绑定到持久卷。 这里是我定义PetSet的Yaml文件:

apiVersion: apps/v1alpha1 kind: PetSet metadata: name: 'ml-nodes' spec: serviceName: "ml-service" replicas: 1 template: metadata: labels: app: marklogic tier: backend annotations: pod.alpha.kubernetes.io/initialized: "true" spec: containers: - name: 'ml' image: "192.168.201.7:5000/dcgs-sof/ml8-docker-final:v1" imagePullPolicy: Always ports: - containerPort: 8000 name: ml8000 protocol: TCP - containerPort: 8001 name: ml8001 - containerPort: 7997 name: ml7997 - containerPort: 8002 name: ml8002 - containerPort: 8040 name: ml8040 - containerPort: 8041 name: ml8041 - containerPort: 8042 name: ml8042 volumeMounts: - name: ml-data mountPath: /data/vol-data lifecycle: preStop: exec: # SIGTERM triggers a quick exit; gracefully terminate instead command: ["/etc/init.d/MarkLogic stop"] volumes: - name: ml-data persistentVolumeClaim: claimName: ml-data terminationGracePeriodSeconds: 30 volumeClaimTemplates: - metadata: name: ml-data annotations: volume.alpha.kubernetes.io/storage-class: anything spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 2Gi 

如果我在创build的PetSet上进行“描述”,我会看到以下内容:

 Name: ml-nodes Namespace: default Image(s): 192.168.201.7:5000/dcgs-sof/ml8-docker-final:v1 Selector: app=marklogic,tier=backend Labels: app=marklogic,tier=backend Replicas: 1 current / 1 desired Annotations: <none> CreationTimestamp: Tue, 20 Sep 2016 13:23:14 -0400 Pods Status: 0 Running / 1 Waiting / 0 Succeeded / 0 Failed No volumes. Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 33m 33m 1 {petset } Warning FailedCreate pvc: ml-data-ml-nodes-0, error: persistentvolumeclaims "ml-data-ml-nodes-0" not found 33m 33m 1 {petset } Normal SuccessfulCreate pet: ml-nodes-0 

我试图在我的本地机器上的minikube环境中运行。 不知道我在这里失踪?

minikube有一个公开的问题 。 持续卷configuration支持目前在minikube中似乎尚未完成。

为了使用本地存储,控制器pipe理器上需要以下标志,并且当前未在minikube上启用该标志。

–enable-hostpath-provisioner [= false]:在没有云提供者的情况下运行时启用HostPath PV供应。 这允许testing和开发configurationfunction。 HostPathconfiguration不受任何支持,在多节点集群中不起作用,除了testing或开发之外,不应该用于任何其他用途。

参考: http : //kubernetes.io/docs/admin/kube-controller-manager/

对于本地开发/testing,如果在设置环境variables之后使用hack/local_up_cluster.sh来启动本地集群,它将会起作用:

 export ENABLE_HOSTPATH_PROVISIONER=true 

您应该能够在最新版本的minikube中使用PetSets,因为它使用kubernetes v1.4.1作为默认版本。