美文网首页
pv & pvc 部署discuz

pv & pvc 部署discuz

作者: 慕知 | 来源:发表于2021-04-13 08:41 被阅读0次

,StorageClass

根据pvc的要求,去自动创建符合要求的pv。

1、按照pvc创建pv

2、减少资源浪费

安装存储库

1, 部署存储类

https://github.com/helm/helm

# 下载helm(helm相当于kubernetes中的yum)
[root@k8s-m-01 ~]# wget https://get.helm.sh/helm-v3.5.3-linux-amd64.tar.gz

[root@k8s-m-01 ~]# tar -xf helm-v3.3.4-linux-amd64.tar.gz 
[root@k8s-m-01 ~]# cd linux-amd64/
[root@k8s-m-01 ~]# for i in m1 n1 n2;do scp helm root@$i:/usr/local/bin/; done
helm                                                                                             100%   38MB 103.4MB/s   00:00    
helm                                                                                             100%   38MB 105.7MB/s   00:00    
helm                                                                                             100%   38MB  73.5MB/s   00:00 



测试安装 (出现内容代表安装成功)
[root@k8s-m-01 ~]# helm 
The Kubernetes package manager

Common actions for Helm:

- helm search:    search for charts
- helm pull:      download a chart to your local directory to view
- helm install:   upload the chart to Kubernetes
- helm list:      list releases of charts





# 安装存储类

## 安装一个helm的存储库
[root@\ k8s-m-01~]# helm repo add ckotzbauer https://ckotzbauer.github.io/helm-charts
"ckotzbauer" has been added to your repositories
[root@\ k8s-m-01~]# helm repo list
NAME        URL                                     
ckotzbauer  https://ckotzbauer.github.io/helm-charts



百度进入helm官网   --> 应用中心 --> 搜索nfs-client(点击收藏多的,如上图)




方式一:
1) 部署    
[root@\ k8s-m-01~]# helm install nfs-client --set nfs.server=172.16.1.31 --set nfs.path=/nfs/v6  ckotzbauer/nfs-client-provisioner
NAME: nfs-client
LAST DEPLOYED: Fri Apr  9 17:13:46 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None


2) 查看部署结果,会多出以下这个pod
[root@\ k8s-m-01~]# kubectl get pod
NAME                                                 READY   STATUS              RESTARTS   AGE
nfs-client-nfs-client-provisioner-7bf9895898-6lfmb   0/1     ContainerCreating   0          19s


[root@\ k8s-m-01~]# kubectl get storageclasses.storage.k8s.io 
等同于
[root@\ k8s-m-01~]# kubectl get sc
NAME         PROVISIONER                                       RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client   cluster.local/nfs-client-nfs-client-provisioner   Delete          Immediate           true                   57s





方式二:直接使用配置清单(推荐)

[root@\ k8s-m-01/opt/linux-amd64]# helm pull ckotzbauer/nfs-client-provisioner
[root@\ k8s-m-01/opt/linux-amd64]# ll
-rw-r--r--. 1 root root     4802 Apr  9 17:22 nfs-client-provisioner-1.0.2.tgz

[root@\ k8s-m-01/opt/linux-amd64]# tar xf nfs-client-provisioner-1.0.2.tgz 
[root@\ k8s-m-01/opt/linux-amd64]# ll
drwxr-xr-x. 3 root root       77 Apr  9 17:22 nfs-client-provisioner
-rw-r--r--. 1 root root     4802 Apr  9 17:22 nfs-client-provisioner-1.0.2.tgz

[root@\ k8s-m-01/opt/linux-amd64]# cd nfs-client-provisioner/
[root@\ k8s-m-01/opt/linux-amd64/nfs-client-provisioner]# ll
-rw-r--r--. 1 root root  538 Nov 16 04:41 Chart.yaml
-rw-r--r--. 1 root root 5874 Nov 16 04:41 README.md
drwxr-xr-x. 2 root root 4096 Apr  9 17:22 templates
-rw-r--r--. 1 root root 1796 Nov 16 04:41 values.yaml

[root@\ k8s-m-01/opt/linux-amd64/nfs-client-provisioner]# vim values.yaml 
#修改以下内容
nfs:
  server: 172.16.1.51
  path: /nfs/v6
storageClass:
  accessModes: ReadWriteMany
  reclaimPolicy: Retain



# 先卸载掉方式一安装的nfs-client
[root@\ k8s-m-01/opt/linux-amd64/nfs-client-provisioner]# helm uninstall nfs-client ./

[root@\ k8s-m-01/opt/linux-amd64/nfs-client-provisioner]# helm install nfs-client ./
NAME: nfs-client
LAST DEPLOYED: Fri Apr  9 17:28:43 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

[root@\ k8s-m-01/opt/linux-amd64/nfs-client-provisioner]# helm list
NAME        NAMESPACE   REVISION    UPDATED                                 STATUS      CHART                           APP VERSION
nfs-client  default     1           2021-04-09 17:28:43.309216084 +0800 CST deployed    nfs-client-provisioner-1.0.2    3.1.0      








测试存储类:
[root@\ k8s-m-01~]# vim sc.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-discuz-pvc
spec:
  storageClassName: nfs-client
  accessModes:
    - "ReadWriteMany"
  resources:
    requests:
      storage: "18Gi"



[root@\ k8s-m-01~]# kubectl apply -f sc.yaml 
persistentvolumeclaim/pv-discuz-pvc created


[root@\ k8s-m-01~]# kubectl get pvc
NAME            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pv-discuz-pvc   Bound    pvc-385e751f-7008-4a7d-b178-4d4adf411bb9   18Gi       RWX            nfs-client     8m5s

[root@\ k8s-m-01~]# kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS     CLAIM                   STORAGECLASS   REASON   AGE
pvc-385e751f-7008-4a7d-b178-4d4adf411bb9   18Gi       RWX            Retain           Bound      default/pv-discuz-pvc   nfs-client              8m48s

[root@\ k8s-m-01~]# ll /nfs/v6/
drwxrwxrwx.  2 root    root    6 Apr  9 19:23 default-pv-discuz-pvc-pvc-385e751f-7008-4a7d-b178-4d4adf411bb9




测试部署discuz

[root@\ k8s-m-01~]# vim discuz-sv.yaml 
apiVersion: v1
kind: Namespace
metadata:
  name: mysql
---
kind: Service
apiVersion: v1
metadata:
  name: mysql-svc
  namespace: mysql
spec:
  ports:
    - port: 3306
      targetPort: 3306
      name: mysql
      protocol: TCP
  selector:
    app: mysql
    deploy: discuz
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-mysql-pvc
  namespace: mysql
spec:
  storageClassName: nfs-client
  accessModes:
    - "ReadWriteMany"
  resources:
    requests:
      storage: "20Gi"

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql-deployment
  namespace: mysql
spec:
  selector:
    matchLabels:
      app: mysql
      deploy: discuz
  template:
    metadata:
      labels:
        app: mysql
        deploy: discuz
    spec:
      containers:
        - name: mysql
          image: mysql:5.7
          livenessProbe:
            tcpSocket:
              port: 3306
          readinessProbe:
            tcpSocket:
              port: 3306
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: "123456"
            - name: MYSQL_DATABASE
              value: "discuz"
          volumeMounts:
            - mountPath: /var/lib/mysql
              name: mysql-data
      volumes:
        - name: mysql-data
          persistentVolumeClaim:
            claimName: pv-mysql-pvc
---
kind: Namespace
apiVersion: v1
metadata:
  name: discuz
---
kind: Service
apiVersion: v1
metadata:
  name: discuz-svc
  namespace: discuz
spec:
  clusterIP: None
  ports:
    - port: 80
      targetPort: 80
      name: http
  selector:
    app: discuz
    deploy: discuz
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-discuz-pvc
  namespace: discuz
spec:
  storageClassName: nfs-client
  accessModes:
    - "ReadWriteMany"
  resources:
    requests:
      storage: "18Gi"
---
kind: Deployment
apiVersion: apps/v1
metadata:
  name: discuz-deployment
  namespace: discuz
spec:
  replicas: 5
  selector:
    matchLabels:
      app: discuz
      deploy: discuz
  template:
    metadata:
      labels:
        app: discuz
        deploy: discuz
    spec:
      containers:
        - name: php
          image: alvinos/php:wordpress-v2
          livenessProbe:
            tcpSocket:
              port: 9000
          readinessProbe:
            tcpSocket:
              port: 9000
          volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: discuz-data
        - name: nginx
          image: alvinos/nginx:wordpress-v2
          livenessProbe:
            httpGet:
              port: 80
              path: /
          readinessProbe:
            httpGet:
              port: 80
              path: /
          volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: discuz-data
      volumes:
        - name: discuz-data
          persistentVolumeClaim:
            claimName: pv-discuz-pvc
---
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: discuz-ingress
  namespace: discuz
spec:
  tls:
    - hosts:
        - www.discuz.cluster.local.com
      secretName: discuz-secret
  rules:
    - host: www.discuz.cluster.local.com
      http:
        paths:
          - backend:
              serviceName: discuz-svc
              servicePort: 80



[root@\ k8s-m-01~]# kubectl apply -f discuz-sv.yaml
[root@\ k8s-m-01~]# kubectl get pods -n discuz
NAME                                 READY   STATUS    RESTARTS   AGE
discuz-deployment-64777f6694-988zn   2/2     Running   8          33m




PS:
[root@\ k8s-m-01~]# kubectl get sc -n discuz 
NAME         PROVISIONER                                       RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client   cluster.local/nfs-client-nfs-client-provisioner   Retain          Immediate           true                   134m
[root@\ k8s-m-01~]# kubectl get sc
NAME         PROVISIONER                                       RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client   cluster.local/nfs-client-nfs-client-provisioner   Retain          Immediate           true                   134m



# 以上可以看出pc是集群级资源






[root@\ k8s-m-01~]# cd /nfs/v6/
[root@\ k8s-m-01/nfs/v6]# ll
drwxrwxrwx.  2 root    root    6 Apr  9 19:50 discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9
drwxrwxrwx.  6 polkitd root 4096 Apr  9 19:50 mysql-pv-mysql-pvc-pvc-26db2bfc-4c6a-49eb-81e8-5510a4c77188




[root@\ k8s-m-01/nfs/v6]# cd mysql-pv-mysql-pvc-pvc-26db2bfc-4c6a-49eb-81e8-5510a4c77188/
[root@\ k8s-m-01/nfs/v6/mysql-pv-mysql-pvc-pvc-26db2bfc-4c6a-49eb-81e8-5510a4c77188]# ll
-rw-r-----. 1 polkitd input       56 Apr  9 19:50 auto.cnf
-rw-------. 1 polkitd input     1676 Apr  9 19:50 ca-key.pem
-rw-r--r--. 1 polkitd input     1112 Apr  9 19:50 ca.pem
-rw-r--r--. 1 polkitd input     1112 Apr  9 19:50 client-cert.pem
-rw-------. 1 polkitd input     1676 Apr  9 19:50 client-key.pem
drwxr-x---. 2 polkitd input       20 Apr  9 19:50 discuz
-rw-r-----. 1 polkitd input     1359 Apr  9 19:50 ib_buffer_pool
-rw-r-----. 1 polkitd input 79691776 Apr  9 19:50 ibdata1
-rw-r-----. 1 polkitd input 50331648 Apr  9 19:50 ib_logfile0
-rw-r-----. 1 polkitd input 50331648 Apr  9 19:50 ib_logfile1
-rw-r-----. 1 polkitd input 12582912 Apr  9 19:51 ibtmp1
drwxr-x---. 2 polkitd input     4096 Apr  9 19:50 mysql
drwxr-x---. 2 polkitd input     8192 Apr  9 19:50 performance_schema
-rw-------. 1 polkitd input     1676 Apr  9 19:50 private_key.pem
-rw-r--r--. 1 polkitd input      452 Apr  9 19:50 public_key.pem
-rw-r--r--. 1 polkitd input     1112 Apr  9 19:50 server-cert.pem
-rw-------. 1 polkitd input     1680 Apr  9 19:50 server-key.pem
drwxr-x---. 2 polkitd input     8192 Apr  9 19:50 sys

# discuz目录里没有内容
[root@\ k8s-m-01/nfs/v6]# cd discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9/
[root@\ k8s-m-01/nfs/v6/discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9]# ll
total 0


# 把discuz包里的upload目录复制到挂载的当前文件夹
[root@\ k8s-m-01/nfs/v6/discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9]# tar -xf /opt/discuz/discuz.tar.gz -C ./
[root@\ k8s-m-01/nfs/v6/discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9]# ll
total 4
drwxr-xr-x. 12 root root 4096 Jul 27  2017 upload
[root@\ k8s-m-01/nfs/v6/discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9]# mv upload/* .
[root@\ k8s-m-01/nfs/v6/discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9]# ll
total 76
-rw-r--r--.  1 root root 2739 Jul 27  2017 admin.php
drwxr-xr-x. 11 root root  163 Jul 27  2017 api
-rw-r--r--.  1 root root  727 Jul 27  2017 api.php
drwxr-xr-x.  2 root root   23 Jul 27  2017 archiver
drwxr-xr-x.  2 root root   90 Jul 27  2017 config
-rw-r--r--.  1 root root  922 Jul 27  2017 connect.php
-rw-r--r--.  1 root root  253 Jul 27  2017 cp.php
-rw-r--r--.  1 root root  106 Jul 27  2017 crossdomain.xml
drwxr-xr-x. 12 root root  202 Jul 27  2017 data
-rw-r--r--.  1 root root 5558 Jul 27  2017 favicon.ico
-rw-r--r--.  1 root root 2242 Jul 27  2017 forum.php
-rw-r--r--.  1 root root  821 Jul 27  2017 group.php
-rw-r--r--.  1 root root 1290 Jul 27  2017 home.php
-rw-r--r--.  1 root root 5669 Jul 27  2017 index.php
drwxr-xr-x.  5 root root   64 Jul 27  2017 install
-rw-r--r--.  1 root root 1025 Jul 27  2017 member.php
-rw-r--r--.  1 root root 2462 Jul 27  2017 misc.php
-rw-r--r--.  1 root root 1757 Jul 27  2017 plugin.php
-rw-r--r--.  1 root root  988 Jul 27  2017 portal.php
-rw-r--r--.  1 root root  582 Jul 27  2017 robots.txt
-rw-r--r--.  1 root root 1161 Jul 27  2017 search.php
drwxr-xr-x. 10 root root  168 Jul 27  2017 source
drwxr-xr-x.  6 root root   72 Jul 27  2017 static
drwxr-xr-x.  3 root root   38 Jul 27  2017 template
drwxr-xr-x.  7 root root  106 Jul 27  2017 uc_client
drwxr-xr-x. 14 root root  256 Jul 27  2017 uc_server
drwxr-xr-x.  2 root root    6 Apr  9 20:12 upload
-rw-r--r--.  1 root root 1682 Jul 27  2017 userapp.php











当前状态不可写

# 增加挂载目录写权限
[root@\ k8s-m-01/nfs/v6/discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9]# chmod -R o+w /nfs/v6/discuz-pv-discuz-pvc-pvc-de1c756d-4490-41fa-8ace-b57542bbb8b9/

image.png

相关文章

网友评论

      本文标题:pv & pvc 部署discuz

      本文链接:https://www.haomeiwen.com/subject/fofwkltx.html