Merge pull request #37294 from jsafrane/gluster-on-tmpfs

Automatic merge from submit-queue (batch tested with PRs 36626, 37294, 37463, 37943, 36541)

Use tmpfs for gluster-server container volumes.

Gluster server needs a filesystem that supports extended attributes for its data. Some distros (Debian, Ubuntu) ship Docker that runs containers on aufs, which does not support extended attributes and therefore Gluster server fails there.

We can use tmpfs for Gluster server data volumes. ~~This expects that host's /tmp is tmpfs, which is true for  Debian, Ubuntu, RHEL, CentOS and Fedora.~~

I reworked it to mount tmpfs inside the container, the server pod is privileged.

And *after* this PR is merged and new Gluster server container image is pushed we need to bump the image version in https://github.com/kubernetes/kubernetes/blob/master/test/e2e/volumes.go#L407

Edit: I also fixed Gluster server Dockerfile, it was not working at all.
pull/6/head
Kubernetes Submit Queue 2016-12-08 00:23:10 -08:00 committed by GitHub
commit ee55ea8e68
4 changed files with 10 additions and 54 deletions

View File

@ -14,8 +14,7 @@
FROM centos
MAINTAINER Jan Safranek, jsafrane@redhat.com
ADD gluster.repo /etc/yum.repos.d/
RUN yum -y install hostname glusterfs-server && yum clean all
RUN yum -y install hostname centos-release-gluster && yum -y install glusterfs-server && yum clean all
ADD glusterd.vol /etc/glusterfs/
ADD run_gluster.sh /usr/local/bin/
ADD index.html /vol/

View File

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
TAG = 0.3
TAG = 0.4
PREFIX = gcr.io/google_containers
all: push

View File

@ -1,50 +0,0 @@
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
[glusterfs-epel]
name=GlusterFS is a clustered file-system capable of scaling to several petabytes.
baseurl=http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/epel-$releasever/$basearch/
enabled=1
skip_if_unavailable=1
gpgcheck=1
gpgkey=http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/pub.key
[glusterfs-noarch-epel]
name=GlusterFS is a clustered file-system capable of scaling to several petabytes.
baseurl=http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/epel-$releasever/noarch
enabled=1
skip_if_unavailable=1
gpgcheck=1
gpgkey=http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/pub.key
[glusterfs-source-epel]
name=GlusterFS is a clustered file-system capable of scaling to several petabytes. - Source
baseurl=http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/epel-$releasever/SRPMS
enabled=0
skip_if_unavailable=1
gpgcheck=1
gpgkey=http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/pub.key

View File

@ -14,10 +14,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
DIR=`mktemp -d`
function start()
{
mount -t tmpfs test $DIR
chmod 755 $DIR
cp /vol/* $DIR/
/usr/sbin/glusterd -p /run/glusterd.pid
gluster volume create test_vol `hostname -i`:/vol force
gluster volume create test_vol `hostname -i`:$DIR force
gluster volume start test_vol
}
@ -25,6 +30,8 @@ function stop()
{
gluster --mode=script volume stop test_vol force
kill $(cat /run/glusterd.pid)
umount $DIR
rm -rf $DIR
exit 0
}