[英]Kubernetes PetSet - FailedCreate of persistent volume
我正在嘗試按照文檔中的描述設置 Kubernetes PetSet。 當我創建 PetSet 時,我似乎無法將持久卷聲明綁定到持久卷。 這是我用於定義 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
如果我對我創建的 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 上有一個未解決的問題。 目前 minikube 中的持久卷配置支持似乎尚未完成。
為了使其與本地存儲一起使用,它需要控制器管理器上的以下標志,並且目前在 minikube 上未啟用。
--enable-hostpath-provisioner[=false]:在沒有雲提供商的情況下運行時啟用 HostPath PV 配置。 這允許測試和開發配置功能。 HostPath 配置不受任何支持,不能在多節點集群中工作,並且不應用於測試或開發以外的任何其他用途。
參考: http : //kubernetes.io/docs/admin/kube-controller-manager/
對於本地開發/測試,如果您在設置環境變量后使用hack/local_up_cluster.sh
啟動本地集群,它將起作用:
export ENABLE_HOSTPATH_PROVISIONER=true
您應該能夠在最新版本的 minikube 中使用 PetSets,因為它使用 kubernetes v1.4.1 作為默認版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.