当前位置: 首页 > article >正文

Kubernetes部署OwnCloud网盘服务

目录

1.创建PV和PVC

2. 配置ConfigMap

3.创建Secret

4.部署owncloud Deployment应用

5.创建Service


ownCloud 是一个开源免费专业的私有云存储项目,它能帮你快速在个人电脑或服务器上架设一套专属的私有云文件同步网盘,可以像 百度云那样实现文件跨平台同步、共享、版本控制、团队协作等。

1.创建PV和PVC

编写yaml文件(文件名自定义)创建PV和PVC来提供持久化存储,以便保存 ownCloud 服务中的文件和数据。

要求:PV(访问模式为读写,只能被单个节点挂载;存储为5Gi;存储类型为hostPath,存储路径自定义);PVC(访问模式为读写,只能被单个节点挂载;申请存储空间大小为5Gi)。

[root@master ~]# cat pv-pvc.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: owncloud-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /owncloud/
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: owncloud-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
[root@master ~]# mkdir /owncloud
[root@master ~]# kubectl apply -f pv-pvc.yaml 

2. 配置ConfigMap

编写yaml文件(文件名自定义)创建一个configMap对象,指定OwnCloud的环境变量。登录账号对应的环境变量为OWNCLOUD_ADMIN_USERNAME,密码对应的环境变量为OWNCLOUD_ADMIN_PASSWORD。(变量值自定义)

[root@master ~]# cat configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: owncloud-config
data:
  OWNCLOUD_ADMIN_USERNAME: "admin"
  OWNCLOUD_ADMIN_PASSWORD: "abc123"
[root@master ~]# kubectl apply -f configmap.yaml 
configmap/owncloud-config created

3.创建Secret

编写yaml文件(文件名自定义)创建一个Secret对象,以保存OwnCloud数据库的密码。对原始密码采用base64编码格式进行加密。

[root@master ~]# echo "aaa111" | base64
YWFhMTExCg==
[root@master ~]# vi secret.yaml 
apiVersion: v1
kind: Secret
metadata: 
  name: owncloud-db-password
type: Opaque
data:
  OWN_CLOUD_DB_PASSWORD: YWFhMTExCg==

4.部署owncloud Deployment应用

编写yaml文件(文件名自定义) 创建Deployment对象, 指定OwnCloud的容器和相关的环境变量。(Deployment资源命名为owncloud-deployment,镜像为Harbor仓库中的owncloud:latest,存储的挂载路径为/var/www/html,其它根据具体情况进行配置)

[root@master ~]# cat deployments.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: owncloud-deployment
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: owncloud
  template:
    metadata:
      labels:
        app: owncloud
    spec:
      containers:
      - name: owncloud
        image: 192.168.100.30/library/owncloud:latest
        ports:
        - containerPort: 80
        env:
        - name: OWNCLOUD_ADMIN_USERNAME
          valueFrom:
            configMapKeyRef:
              name: owncloud-config
              key: OWNCLOUD_ADMIN_USERNAME
        - name: OWNCLOUD_ADMIN_PASSWORD
          valueFrom:
            configMapKeyRef:
              name: owncloud-config
              key: OWNCLOUD_ADMIN_PASSWORD
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: owncloud-db-password
              key: OWN_CLOUD_DB_PASSWORD
        volumeMounts:
        - name: owncloud-storage
          mountPath: /var/www/html
      volumes:
      - name: owncloud-storage
        persistentVolumeClaim:
          claimName: owncloud-pvc

5.创建Service

编写yaml文件(文件名自定义)创建一个Service对象将OwnCloud公开到集群外部。通过http://IP:端口号可查看owncloud。

[root@master ~]# cat service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: owncloud-service
spec:
  selector:
    app: owncloud
  type: NodePort
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30080


http://www.kler.cn/a/544596.html

相关文章:

  • 基于javaweb的SpringBoot+MyBatis健身房信息管理系统(源码+文档+部署讲解)
  • 深入理解DeepSeek与企业实践(二):32B多卡推理的原理、硬件散热与性能实测
  • 06:串口通信
  • python使用虚拟环境
  • Python 依赖管理的革新——Poetry 深度解析
  • C# Dictionary的实现原理
  • 走进 Tcl 语言:历史、特性与应用
  • 数据结构:图论入门
  • JavaSE基本知识补充 -IO流
  • DeepSeek 助力 Vue 开发:打造丝滑的通知栏(Notification Bar)
  • post、get、delete、put请求
  • cnn以及例子
  • AI时代前端工程师的职业发展新路径
  • IS-IS 泛洪机制 | LSP 处理流程
  • 【Unity3D杂谈】使用NDK命令行工具翻译Android Vitals上的内存堆栈
  • 如何部署DeepDeepSeek-V3 大模型部署全流程解析:从云平台到本地化实践Seek—V3
  • OpenAI推出全新AI助手“Operator”:让人工智能帮你做事的新时代!
  • ConcurrentHashMap扩容
  • Spring Boot 中的事务管理:默认配置、失效场景及集中配置
  • Android原生的HighCPU使用率查杀机制