是否可以将磁盘同时安装到gke pod和计算引擎。
我有一个10 GB的Ubunut磁盘
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-demo
spec:
capacity:
storage: 10G
accessModes:
- ReadWriteOnce
claimRef:
name: pv-claim-demo
gcePersistentDisk:
pdName: pv-test1
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-claim-demo
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10G
deploment.yaml
spec:
containers:
- image: wordpress
name: wordpress
ports:
- containerPort: 80
name: wordpress
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /app/logs
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: pv-claim-demo
这个想法是将pod生成的日志文件挂载到磁盘,并从计算引擎访问它。 我无法使用NFS或主机路径来解决问题。另一个挑战是多个Pod将写入同一PV。
答案 0 :(得分:2)
另一个挑战是多个Pod将写入同一PV。
是的,除非您具有类似于NFS的存储类,否则这将无法正常工作。动态配置时,Google Kubernetes Engine中的默认storageClass仅支持access mode ReadWriteOnce-因此只有一个副本可以装载它。
想法是将pod生成的日志文件挂载到磁盘上,然后从计算引擎访问它。
这不是使用Kubernetes的日志的推荐解决方案。 Kubernetes上的应用程序应遵循12 factor principles,并且对于此问题,有一个关于logs的特定项-该应用程序应登录到stdout
。对于不遵循12要素原则的应用,可以通过sidecar that tails the log files解决,然后将其打印在stdout
上。
打印到stdout
的日志通常由平台转发到日志收集系统-即服务。因此,这不是应用程序开发人员需要负责的任何事情。
有关Google Kubernetes Engine中的平台如何处理日志,请参见Google Cloud Operations suite for GKE
答案 1 :(得分:0)
您不能在持久性磁盘上写很多。如果将磁盘设置为只读,则许多磁盘可以读取(但不能写入,与用例不符)。
唯一的解决方案是使用符合NFS的存储。在Google Cloud上,它是filestore service。它是完全根据您的用例设计的,并且您有tutorial for GKE
答案 2 :(得分:0)
最好使用Google Cloud's operations suite for GKE(以前称为StackDriver)。
会有两个API,可用于从GCE访问: