55.nas挂载

发表于 未分类 分类,标签:
vmware配置高速网卡
打开主要.vmx文件添加下面一行,网卡名会更新
ethernet0.virtualDev = "vmxnet3"

nas挂载
sudo mount -t cifs //192.168.68.6/Home1/8.rustfs /lei/data/rustfs -o username=18500177779,password=2012,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose
mysql需给挂载目录权限
注意:加了后要在yml文件指定999用户运行,mysql默认999
sudo mount -t cifs //192.168.68.6/Home1/8.rustfs /lei/data/rustfs -o username=18500177779,password=2012,uid=999,gid=999,file_mode=0700,dir_mode=0700,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose
sudo mount -t cifs //192.168.68.6/Home1/9.db/my5db /lei/data/my5db -o username=18500177779,password=2012,uid=999,gid=999,file_mode=0700,dir_mode=0700,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose
sudo mount -t cifs //192.168.68.6/Home1/9.db/ck26db /lei/data/ck26db -o username=18500177779,password=2012,uid=999,gid=999,file_mode=0700,dir_mode=0700,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose

## 应用目录要加权限
#//192.168.68.6/Home1/8.rustfs /lei/data/rustfs cifs username=18500177779,password=2012,uid=999,gid=999,file_mode=0700,dir_mode=0700,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose,_netdev 0 0
#//192.168.68.6/Home1/9.db/my5db /lei/data/my5db cifs username=18500177779,password=2012,uid=999,gid=999,file_mode=0700,dir_mode=0700,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose,_netdev 0 0
#//192.168.68.6/Home1/9.db/ck26db /lei/data/ck26db cifs username=18500177779,password=2012,uid=999,gid=999,file_mode=0700,dir_mode=0700,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose,_netdev 0 0
#
## 四个硬盘挂载
#//192.168.68.6/Home1 /lei/data/Home1 cifs username=18500177779,password=2012,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose,uid=1000,gid=1000,nofail 0 0
#//192.168.68.6/USBshare /lei/data/disk1 cifs username=18500177779,password=2012,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose,uid=1000,gid=1000,nofail 0 0
#//192.168.68.6/USBshare_1 /lei/data/disk2 cifs username=18500177779,password=2012,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose,uid=1000,gid=1000,nofail 0 0
#//192.168.68.6/USBshare_2 /lei/data/disk3 cifs username=18500177779,password=2012,vers=3.0,iocharset=utf8,rsize=1048576,wsize=1048576,cache=loose,uid=1000,gid=1000,nofail 0 0

# 加入nas挂载开机启动
vim /etc/systemd/system/mnas.service 
[Unit]
Description=Mount NAS CIFS Shares at Boot
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lei/shell/mnas.sh

[Install]
WantedBy=multi-user.target

# 修改k3s开机启动顺序
vim /etc/systemd/system/k3s.service
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
Wants=network-online.target mnas.service
After=network-online.target mnas.service

挂载百度网盘
安装rclone
sudo apt update
sudo apt install rclone
mkdir -p /mnt/baidupan
rclone mount baidu:/ /mnt/baidupan --vfs-cache-mode writes &
#启用配置权限
vim  /etc/fuse.conf
去掉#user_allow_other注释
# 解决无权限的问题,因为当前只允许指定目录如/mnt等挂载,加上自定义目录
查看
tail -n 15 /etc/apparmor.d/fusermount3
显示include if exists <local/fusermount3>说明支持
# 新建及添加挂载目录
mkdir -p /etc/apparmor.d/local
cat > /etc/apparmor.d/local/fusermount3 <<'EOF'
  mount fstype=fuse.rclone options=(rw,nosuid,nodev) -> /lei/data/baidu/,
EOF
# 重新加载配置
apparmor_parser -r /etc/apparmor.d/fusermount3
# 强制强行卸载
fusermount -u /lei/data/baidu
umount -l /lei/data/baidu
# 带上 --allow-non-empty 重新执行挂载
rclone mount baidu:/ /lei/data/baidu --vfs-cache-mode writes --allow-non-empty &

# 系统安装alist
直接下载二进制给执行权限即可
./alist admin set 修改密码
端口是域名+5244

==============================================================================
vim /etc/systemd/system/alist.service
[Unit]
Description=alist
After=network.target

[Service]
Type=simple
WorkingDirectory=/lei/soft/alist
ExecStart=/lei/soft/alist/alist server
Restart=on-failure

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl start alist
systemctl enable alist

==============================================================================
# k3s配置alist
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alist
  labels:
    app: alist
spec:
  replicas: 1
  selector:
    matchLabels:
      app: alist
  template:
    metadata:
      labels:
        app: alist
    spec:
      nodeSelector:
        kubernetes.io/hostname: opsdev

      containers:
      - name: alist
        # 使用轻量的 ubuntu 或 alpine 基础镜像,直接运行宿主机挂载过来的二进制文件
        image: registry.cn-hangzhou.aliyuncs.com/leiuvn/ubuntu:2404
        imagePullPolicy: IfNotPresent
        workingDir: /opt/alist
        # Alist 默认监听 5244 端口
        command: ["/bin/sh", "-c", "apt-get update && apt-get install -y ca-certificates && update-ca-certificates && /opt/alist/alist server --no-prefix --data /opt/alist/data"]
        ports:
        - containerPort: 5244
          name: http

        # 资源限制
        resources:
          limits:
            cpu: "3000m"
            memory: "3Gi"
          requests:
            cpu: "10m"
            memory: "50Mi"

        # 挂载宿主机的 alist 目录
        volumeMounts:
        - mountPath: /opt/alist
          name: alist-volume

      volumes:
      - name: alist-volume
        hostPath:
          path: /lei/soft/alist
          type: Directory

---
apiVersion: v1
kind: Service
metadata:
  name: alist-service
spec:
  type: ClusterIP
  selector:
    app: alist
  ports:
  - port: 5244           # 集群内部端口
    targetPort: 5244     # 容器内部 Alist 监听端口

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: alist-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: traefik
    # 可选:如果希望强制将 HTTP 请求重定向到 HTTPS
    traefik.ingress.kubernetes.io/redirect-entry-point: https
spec:
  ingressClassName: traefik
  tls:
  - hosts:
    - s.lbu.cn
    secretName: s-lbu-cn-tls   # 对应刚才创建的 Secret 名称
  rules:
  - host: s.lbu.cn
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: alist-service
            port:
              number: 5244
              
# 创建ssl证书给yaml文件用             
kubectl create secret tls s-lbu-cn-tls \
  --cert=/lei/yaml/alist/ssl/s.lbu.cn.crt \
  --key=/lei/yaml/alist/ssl/s.lbu.cn.key \
  --dry-run=client -o yaml | kubectl apply -f -

==============================================================================
vim filebrowser.yml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: filebrowser
  namespace: default
  labels:
    app: filebrowser
spec:
  replicas: 1
  selector:
    matchLabels:
      app: filebrowser
  template:
    metadata:
      labels:
        app: filebrowser
    spec:
      # 固定在 sl-19 节点运行(与你的存储目录所在节点保持一致)
      nodeSelector:
        kubernetes.io/hostname: sl-19

      # 以 root 用户运行容器,避免挂载宿主机目录出现 Permission Denied 权限问题
      securityContext:
        runAsUser: 0
        runAsGroup: 0

      containers:
        - name: filebrowser
          image: registry.cn-hangzhou.aliyuncs.com/leiuvn/filebrowser:2.63
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
              name: http

          # 资源限制
          resources:
            limits:
              cpu: "1000m"
              memory: "1Gi"
            requests:
              cpu: "50m"
              memory: "128Mi"

          # 挂载数据存储目录与配置数据库
          volumeMounts:
            - mountPath: /srv
              name: home1-volume
            - mountPath: /database
              name: db-volume

      volumes:
        - name: home1-volume
          hostPath:
            path: /lei/data/Home1
            type: DirectoryOrCreate
        - name: db-volume
          hostPath:
            path: /lei/data/filebrowser
            type: DirectoryOrCreate

---
apiVersion: v1
kind: Service
metadata:
  name: filebrowser-service
  namespace: default
spec:
  type: NodePort
  selector:
    app: filebrowser
  ports:
    - port: 8880          # 集群内访问端口 (避免使用 80)
      targetPort: 80      # 容器内部端口
      nodePort: 30880     # NodePort 节点暴露端口
      name: http

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: filebrowser-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
spec:
  ingressClassName: traefik
  rules:
    - host: f.lbu.cn
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: filebrowser-service
                port:
                  number: 8880   # 对接 Service 的集群访问端口 (8080)

==============================================================================
vim es9pro.yml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: es9pro-pv
spec:
  capacity:
    storage: 800Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: es9pro
  local:
    path: /lei/data/es9pro
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - sl-19

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: es9pro-pvc
  namespace: default
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: es9pro
  resources:
    requests:
      storage: 800Gi

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: es9pro
  namespace: default
  labels:
    app: es9pro
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: es9pro
  template:
    metadata:
      labels:
        app: es9pro
    spec:
      nodeSelector:
        kubernetes.io/hostname: sl-19

      containers:
        - name: es9pro
          image: registry.cn-hangzhou.aliyuncs.com/leiuvn/es:9.5.5
          imagePullPolicy: IfNotPresent
          env:
            # 通过环境变量直接配置 Elasticsearch,无需改动配置文件
            - name: cluster.name
              value: "es9pro-cluster"
            - name: node.name
              value: "es9pro-node-1"
            - name: network.host
              value: "0.0.0.0"
            - name: discovery.type
              value: "single-node"
            - name: xpack.security.enabled
              value: "false"
          ports:
            - containerPort: 9200
              name: http
            - containerPort: 9300
              name: transport
          resources:
            limits:
              cpu: "4"
              memory: 8Gi
            requests:
              cpu: "500m"
              memory: 1Gi
          volumeMounts:
            - name: es9pro-data
              mountPath: /usr/share/elasticsearch/data
      volumes:
        - name: es9pro-data
          persistentVolumeClaim:
            claimName: es9pro-pvc

---

apiVersion: v1
kind: Service
metadata:
  name: es9pro-service
  namespace: default
  labels:
    app: es9pro
spec:
  type: NodePort
  selector:
    app: es9pro
  ports:
    - name: http
      port: 9200
      targetPort: 9200
      nodePort: 30920
    - name: transport
      port: 9300
      targetPort: 9300
      nodePort: 30930

==============================================================================

0 篇评论

发表我的评论