【发布时间】:2019-06-20 08:49:02
【问题描述】:
我在这里有点困惑。它确实像普通的 docker 容器一样工作,但是当它进入 pod 时它不会。所以这就是我的做法。
Dockerfile 在我的本地创建镜像并发布到 docker 注册表
FROM alpine:3.7
COPY . /var/www/html
CMD tail -f /dev/null
现在,如果我只是拉出图像(删除本地图像后)并作为容器运行。它有效,我可以在 /var/www/html 中看到我的文件。
现在我想在我的 kubernetes 集群中使用它。
定义:Minikube --vm-driver=none
我在 minikube 中运行 kube,但没有驱动程序选项。所以对于单节点集群。
编辑
如果我从部署文件中删除卷挂载和声明,我可以在 /var/www/html 中看到我的数据。
部署文件
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
io.kompose.service: app
name: app
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
io.kompose.service: app
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
containers:
- image: kingshukdeb/mycode
name: pd-mycode
resources: {}
volumeMounts:
- mountPath: /var/www/html
name: claim-app-storage
restartPolicy: Always
volumes:
- name: claim-app-storage
persistentVolumeClaim:
claimName: claim-app-nginx
status: {}
PVC 文件
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: app-nginx1
name: claim-app-nginx
spec:
storageClassName: testmanual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
PV文件
apiVersion: v1
kind: PersistentVolume
metadata:
name: app-nginx1
labels:
type: local
spec:
storageClassName: testmanual
capacity:
storage: 100Mi
accessModes:
- ReadWriteOnce
hostPath:
path: "/data/volumes/app"
现在,当我运行这些文件时,它会创建 pod、pv、pvc 和 pvc 绑定到 pv。但如果我进入我的容器,我看不到我的文件。 hostpath 是 /data/volumes/app 。任何想法将不胜感激。
【问题讨论】:
-
转到
var/www/html数据将在那里 -
不是。这就是这个问题的原因。
-
签入那里可用的主机路径数据。
-
通常在 Kubernetes 中,您只需从构建的镜像中运行代码,而不是尝试手动将其复制到具有一致版本、一致路径的每个节点。如果您删除所有机制以覆盖图像内容,您的应用程序是否正常工作?
-
@DavidMaze 是的,你是对的。如果我删除 pv 和 pvc,我可以在 /var/www/html 中看到我的文件。
标签: docker kubernetes kubernetes-pod