K8s 持久化存储 PV PVC

K8s实现wordpress项目
PV

所有节点都要装nfs
yum install -y nfs-utils-*
mkdir /wp/data /wp/code -p

vim /etc/exports
/wp/data 192.168.2.0/24(rw,async,no_root_squash,no_all_squash)
/wp/code 192.168.2.0/24(rw,async,no_root_squash,no_all_squash)

systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

定义mysql pv
[root@k8s-m yml]# cat mysql_pv.yml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvdata
  labels:
    type: pvdata
spec:
  capacity:
    storage: 10Gi 
  accessModes:
    - ReadWriteMany 
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: "/wp/data"
    server: 192.168.2.50
    readOnly: false

定义wordpress pv
[root@k8s-m yml]# cat nfs_pv.yml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pvcode
  labels:
    type: pvcode
spec:
  capacity:
    storage: 10Gi 
  accessModes:
    - ReadWriteMany 
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: "/wp/code"
    server: 192.168.2.50
    readOnly: false

创建pv
kubectl create -f mysql_pv.yml
kubectl create -f nfs_pv.yml
在这里插入图片描述

定义 Mysql pvc
[root@k8s-m yml]# cat mysqlpvc.yml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: data-mysql
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

[root@k8s-m yml]# cat wppvc.yml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: wp-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

创建PVC
kubectl create -f mysqlpvc.yml
kubectl create -f wppvc.yml
在这里插入图片描述

定义mysql rc
把mysql5.7镜像推到私有仓库中
docker pull docker.io/alecchyi/mysq
docker tag docker.io/alecchyi/mysql 192.168.2.50:5000/k8images/mysql5.7:v1
docker push 192.168.2.50:5000/k8images/mysql5.7:v1

[root@k8s-m yml]# cat mysql-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: 192.168.2.50:5000/k8images/mysql5.7:v1
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: nfs-vol
          mountPath: /var/lib/mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "somewordpress"
        - name: MYSQL_DATABASE
          value: "wordpress"
        - name: MYSQL_USER
          value: "wordpress"
        - name: MYSQL_PASSWORD
          value: "wordpress"
      volumes:
      - name: nfs-vol
        persistentVolumeClaim:
		  claimName: data-mysql

定义mysql svc
[root@k8s-m yml]# cat mysql-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
    - port: 3306
  selector:
    app: mysql

创建 mysql rc svc
kubectl create -f mysql-rc.yaml
kubectl create -f mysql-svc.yaml

kubectl get rc
kubectl get svc
kubectl get pod
在这里插入图片描述

定义 wordpress rc svc
把wordpress镜像推到私有仓库
docker pull wordpress
docker tag docker.io/wordpress 192.168.2.50:5000/k8images/wordpress:v1

查看myscl svc 地址 填写到wordpress 连接数据库地址
kubectl get svc
在这里插入图片描述

[root@k8s-m yml]# cat myweb-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
  replicas: 1
  selector:
    app: myweb
  template:
    metadata:
      labels:
        app: myweb
    spec:
      containers:
      - name: myweb
        image: 192.168.2.50:5000/k8images/wordpress:v1
        ports:
        - containerPort: 80
        volumeMounts:
        - name: nfs-vol
          mountPath: /var/www/html
        env:
        - name: WORDPRESS_DB_HOST
          value: '10.254.191.64'
        - name: WORDPRESS_DB_USER
          value: 'wordpress'
        - name: WORDPRESS_DB_PASSWORD
          value: 'wordpress'
      volumes:
      - name: nfs-vol
        persistentVolumeClaim:
          claimName: wp-pvc

[root@k8s-m yml]# cat myweb-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30008
  selector:
    app: myweb

创建 WordPress rc svc
kubectl create -f myweb-rc.yaml
kubectl create -f myweb-svc.yaml
在这里插入图片描述
kubectl get pod
在这里插入图片描述

kubectl describe rc -l app=myweb
在这里插入图片描述

浏览器访问
http://192.168.2.51:30008/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值