k8s glusterfs存储的应用
k8s glusterfs存储的应用
##################################################### #####################################################在所有节点安装 yum install -y ntpdate /usr/sbin/ntpdate ntp6.aliyun.com echo "*/3 * * * * /usr/sbin/ntpdate ntp6.aliyun.com &> /dev/null" > /tmp/crontab crontab /tmp/crontab ##################################################### #####################################################在所有节点安装 安装yum源 yum install -y centos-release-gluster ###查看版本列表 yum list --showduplicates glusterfs-server ##################################################### #####################################################在所有节点安装 yum install -y glusterfs-server-6.5 #在三个节点都安装glusterfs ##yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma #配置 GlusterFS 集群: #启动 glusterFS systemctl restart glusterd.service systemctl enable glusterd.service mkdir -p /gfs1 ##################################################### #####################################################只在主节点 gluster peer probe 192.168.3.223 gluster peer probe 192.168.3.224 gluster peer probe 192.168.3.225 gluster peer status #####################################################创建volume 只在主节点 gluster volume create gv1 replica 3 transport tcp 192.168.3.223:/gfs1 192.168.3.224:/gfs1 192.168.3.225:/gfs1 force #启动 gv1 gluster volume start gv1 ###再查看 volume 状态: gluster volume info gv1 umount -f /gv1 ##################################################### #####################################################客户端挂载volume 所有节点
yum install -y centos-release-gluster
#################查看版本列表
yum list --showduplicates glusterfs
yum install -y glusterfs-6.5 glusterfs-fuse-6.5 mkdir -p /gv1 mount -t glusterfs localhost:gv1 /gv1 echo 'localhost:/gv1 /gv1 glusterfs _netdev,rw,acl 0 0' >>/etc/fstab ##################################################### #####################################################配置gluster存储 只在一台控制节点操作 echo ' apiVersion: v1 kind: Endpoints metadata: name: gfs namespace: default subsets: - addresses: - ip: 192.168.3.223 - ip: 192.168.3.224 - ip: 192.168.3.225 ports: - port: 49152 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: gfs namespace: default spec: ports: - port: 49152 protocol: TCP targetPort: 49152 sessionAffinity: None --- apiVersion: v1 kind: PersistentVolume metadata: name: gfs-gv1-pydir-pv labels: type: glusterfs spec: storageClassName: gv1 capacity: storage: 1Gi accessModes: - ReadWriteMany glusterfs: endpoints: "gfs" path: "gv1/pydir" readOnly: false --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gfs-gv1-pydir-pvc namespace: default spec: storageClassName: gv1 accessModes: - ReadWriteMany resources: requests: storage: 1Gi ' >gluster_pydir.yaml kubectl apply -f gluster_pydir.yaml kubectl get pv,pvc ##################################################### #####################################################glusterfs 应用到部署实例中 只在一台控制节点操作 cat >pydemo.yaml <<EOF apiVersion: apps/v1 kind: Deployment metadata: name: pydemo namespace: default spec: replicas: 2 selector: matchLabels: app: pydemo template: metadata: labels: app: pydemo spec: containers: - name: pydemo image: k.meilele.com:30050/py-web6.8:1 ports: - containerPort: 8080 volumeMounts: - name: gfspydir mountPath: /data/pydir volumes: - name: gfspydir persistentVolumeClaim: claimName: gfs-gv1-pydir-pvc --- apiVersion: v1 kind: Service metadata: name: pydemo namespace: default spec: selector: app: pydemo ports: - port: 80 targetPort: 8080 --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-pydemo namespace: default annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - host: vpn.testweb.com http: paths: - path: / backend: serviceName: pydemo servicePort: 80 EOF kubectl apply -f pydemo.yaml kubectl get pod,svc,Ingress -o wide |grep pydemo kubectl describe pod $(kubectl get pod |grep pydemo |awk '{print $1}') #