Docker 无法在glusterfs上运行卷为的容器
我有一个kubernetes集群,它有一个主节点和3个仆从,我已经有了一个glusterfs集群,kubernetes集群的每个节点都安装了glusterfs客户机并开始工作。 我试图在glusterfs上运行一个pod(一个简单的mysql)挂载/var/lib/mysql,但我看到:Docker 无法在glusterfs上运行卷为的容器,docker,kubernetes,glusterfs,Docker,Kubernetes,Glusterfs,我有一个kubernetes集群,它有一个主节点和3个仆从,我已经有了一个glusterfs集群,kubernetes集群的每个节点都安装了glusterfs客户机并开始工作。 我试图在glusterfs上运行一个pod(一个简单的mysql)挂载/var/lib/mysql,但我看到: Image: mysql:5.6 is ready, container is creating 我运行: kubectl get事件 我明白了: 如果我跑 kubectl描述了mysql-9ym10吊舱
Image: mysql:5.6 is ready, container is creating
我运行:
kubectl get事件
我明白了:
如果我跑
kubectl描述了mysql-9ym10吊舱
我明白了:
这是容器的yaml文件:
apiVersion: v1
kind: ReplicationController
metadata:
name: mysql
spec:
replicas: 1
selector:
app: mysql
template:
metadata:
name: mysql
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.6
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: password
volumeMounts:
- mountPath: /var/lib/mysql
name: glusterfsvol
volumes:
- glusterfs:
endpoints: glusterfs-cluster
path: glustervolume
readOnly: false
name: glusterfsvol
您需要配置端点,否则kubernetes不知道如何访问您的gluster集群 我有一个配置了glusterfs ip地址的和端点
我知道发布的链接,我已经关注了它,但结果是在我的第一篇文章 首先:要使用GlusterFS,不需要在kubernetes节点上安装GlusterFS客户端。默认情况下,Kubernetes具有glusterfs的卷装载选项 要使用glusterfs和kubernetes,您需要了解一些事情
$ gluster volume create <volume-name> replica 2 transport tcp \
peer1:/directory \
peer2:/directory \
force
$ gluster volume start <vonlume-name>
$ sudo gluster volume info
containers:
- name: mysql
image: mysql:5.6
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: password
volumeMounts:
- mountPath: /var/lib/mysql
name: glusterfsvol
volumes:
- glusterfs:
endpoints: glusterfs-cluster
path: <volume-name>
name: glusterfsvol
容器:
-名称:mysql
图片:mysql:5.6
端口:
-集装箱港口:3306
环境:
-名称:MYSQL\u ROOT\u密码
值:密码
体积数量:
-mountPath:/var/lib/mysql
名称:glusterfsvol
卷数:
-glusterfs:
端点:glusterfs群集
路径:
名称:glusterfsvol
这一切都应该可以正常工作。我有所有这些配置,还有奴才上的glusterfs客户端。在端点上,我将尝试修改配置,但非常相似…我将尽快更新。谢谢。请用卷名检查路径。并检查vloume状态。如果调用gluster端点gluster,pod上端点的名称必须匹配!我也有同样的问题。我甚至成功地手动在kubernetes节点上挂载了glusterfs卷
mount-t glusterfs gluster节点ip:glustervolume/mnt
,但它仍然没有挂载在上面配置的pod中。好吧,在我发布这篇文章5分钟后,我成功地让它工作。我的本地kubernetes环境基于vagrant部署(基于Fedora23)。minikube部署基于boot2docker,它基于Tiny Linux,据我所知,Tiny Linux没有打包的glusterfs客户端。所以minikube不会和glusterfs一起工作。
$ gluster volume create <volume-name> replica 2 transport tcp \
peer1:/directory \
peer2:/directory \
force
$ gluster volume start <vonlume-name>
$ sudo gluster volume info
kind: Endpoints
apiVersion: v1
metadata:
name: glusterfs
subsets:
- addresses:
- ip: peer1
ports:
- port: 1
- addresses:
- ip: peer2
ports:
- port: 1
containers:
- name: mysql
image: mysql:5.6
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: password
volumeMounts:
- mountPath: /var/lib/mysql
name: glusterfsvol
volumes:
- glusterfs:
endpoints: glusterfs-cluster
path: <volume-name>
name: glusterfsvol