Skip to content

1.2安装nextcloud

nextcloud服务端

pvc

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: nextcloud-server-data
  namespace: devops
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: basic-services
  volumeMode: Filesystem

service

kind: Service
apiVersion: v1
metadata:
  name: nextcloud-server-service
  namespace: devops
  labels:
    name: nextcloud-server-service
spec:
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30984
  selector:
    app: nextcloud-server
  type: NodePort

deployment

kind: Deployment
apiVersion: apps/v1
metadata:
  name: nextcloud-server
  namespace: devops
  labels:
    app: nextcloud-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nextcloud-server
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nextcloud-server
    spec:
      volumes:
        - name: nextcloud-data
          persistentVolumeClaim:
            claimName: nextcloud-server-data
      containers:
        - name: nextcloud-server
          image: registry.cn-chengdu.aliyuncs.com/liuchenyun/nextcloud:28.0.4
          ports:
            - containerPort: 80
              protocol: TCP
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: REDIS_HOST
              value: nextcloud-redis-service
            - name: REDIS_HOST_PORT
              value: '6379'
            - name: REDIS_HOST_PASSWORD
              value: online@123
          resources:
            requests:
              cpu: 10m
              memory: 500Mi
          volumeMounts:
            - name: nextcloud-data
              mountPath: /var/www/html
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      imagePullSecrets:
        - name: dockercfg-liuchenyun

nextcloud的pg数据库

pvc

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: nextcloud-pg-data
  namespace: devops
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: basic-services

service

kind: Service
apiVersion: v1
metadata:
  name: nextcloud-database-service
  namespace: devops
  labels:
    name: nextcloud-database-service
spec:
  ports:
    - protocol: TCP
      port: 5432
      targetPort: 5432
      nodePort: 30864
  selector:
    app: nextcloud-database
  type: NodePort

deployment

kind: Deployment
apiVersion: apps/v1
metadata:
  name: nextcloud-database
  namespace: devops
  labels:
    app: nextcloud-database
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nextcloud-database
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: nextcloud-database
    spec:
      volumes:
        - name: postgres-data
          persistentVolumeClaim:
            claimName: nextcloud-pg-data
      containers:
        - name: nextcloud-database
          image: registry.cn-chengdu.aliyuncs.com/liuchenyun/postgres:12
          ports:
            - containerPort: 5432
              protocol: TCP
          env:
            - name: POSTGRES_PASSWORD
              value: nextcloud
            - name: POSTGRES_USER
              value: nextcloud
            - name: POSTGRES_INITDB_ARGS
              value: '--encoding=UTF8'
            - name: TZ
              value: Asia/Shanghai
          resources:
            requests:
              cpu: 10m
              memory: 200Mi
          volumeMounts:
            - name: postgres-data
              mountPath: /var/lib/postgresql/data
          livenessProbe:
            tcpSocket:
              port: 5432
            initialDelaySeconds: 60
            timeoutSeconds: 20
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 5
          readinessProbe:
            tcpSocket:
              port: 5432
            initialDelaySeconds: 30
            timeoutSeconds: 20
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 5
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      imagePullSecrets:
        - name: dockercfg-liuchenyun

nextcloud的redis

pvc

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: nextcloud-redis-data
  namespace: devops
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Mi
  storageClassName: basic-services

service

kind: Service
apiVersion: v1
metadata:
  name: nextcloud-redis-service
  namespace: devops
  labels:
    app: redis
spec:
  ports:
    - name: redis
      protocol: TCP
      port: 6379
      targetPort: 6379
      nodePort: 32278
  selector:
    app: redis
  type: NodePort

configmap

kind: ConfigMap
apiVersion: v1
metadata:
  name: nextcloud-redis-config
  namespace: devops
  labels:
    app: redis
data:
  redis.conf: |-
    dir /data
    port 6379
    bind 0.0.0.0
    appendonly yes
    protected-mode no
    requirepass online@123
    pidfile /data/redis-6379.pid

deployment

kind: Deployment
apiVersion: apps/v1
metadata:
  name: nextcloud-redis
  namespace: devops
  labels:
    app: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: nextcloud-redis-data
        - name: config
          configMap:
            name: nextcloud-redis-config
            defaultMode: 420
      containers:
        - name: redis
          image: registry.cn-chengdu.aliyuncs.com/liuchenyun/redis:6.2.6
          command:
            - sh
            - '-c'
            - redis-server /usr/local/etc/redis/redis.conf
          ports:
            - containerPort: 6379
              protocol: TCP
          env:
            - name: TZ
              value: CST-8
          resources:
            requests:
              cpu: 10m
              memory: 100Mi
            limits:
              cpu: 100m
              memory: 200Mi
          volumeMounts:
            - name: data
              mountPath: /data
            - name: config
              mountPath: /usr/local/etc/redis/redis.conf
              subPath: redis.conf
          livenessProbe:
            tcpSocket:
              port: 6379
            initialDelaySeconds: 60
            timeoutSeconds: 1
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          readinessProbe:
            tcpSocket:
              port: 6379
            initialDelaySeconds: 5
            timeoutSeconds: 1
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      imagePullSecrets:
        - name: dockercfg-liuchenyun
  strategy:
    type: Recreate

设置域名信任

外挂config/config.php,新添域名

  array (
    0 => '192.168.31.157:30984',
    1 => 'nc.liuchenyun.com',
  ),