我正在尝试按照文档中的描述设置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上执行'describe',我会看到以下内容:
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环境中运行它。不知道我在这里缺少什么???
答案 0 :(得分:2)
minikube上有一个open issue。目前,在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
答案 1 :(得分:0)
您应该可以在最新版本的minikube中使用PetSet,因为它使用kubernetes v1.4.1作为默认版本。