一、应用场景说明
ACK集群节点日志记录,目前都是写在pod内部,空间有限无法实现持久保存。另外重新发布后原来日志全部清空。使用NAS共享磁盘,将该磁盘空间挂载到pod日志目录可以解决上面的问题。
二、购买配置NAS共享磁盘
- 购买NAS共享磁盘,注意购买的地域和可用区域要和购买集群时所选Pod虚拟交换机的地域和可用区域要一致(例如:我选的地域北京、可用区域H)
-
创建磁盘挂载点,注意VPC的选择要和集群的使用的一致。记下生成的挂载地址:140****822-b**9.cn-beijing.nas.aliyuncs.com
-
集群->存储->创建存储卷,使用挂载地址创建存储卷
-
创建存储声明,声明存储空间大小,选择上一步创建的存储卷
三、NAS磁盘挂载
- 通过管理后台挂载声明的磁盘空间,操作路径:集群->工作负载->无状态 选择编辑应用
- 通过编辑yaml部署文件实现磁盘挂载,以advertise应用为例,最后几行代码实现磁盘挂载功能
apiVersion: apps/v1 kind: Deployment metadata: name: advertise labels: app: advertise spec: replicas: 2 selector: matchLabels: app: advertise template: metadata: labels: app: advertise spec: imagePullSecrets: - name: aliyun-registry-secret containers: - name: advertise imagePullPolicy: Always image: registry.cn-beijing.aliyuncs.com/xunqiu/advertise:latest resources: limits: cpu: '8' memory: 16Gi requests: cpu: '2' memory: 4Gi ports: - containerPort: 39012 name: http env: - name: TZ value: Asia/Shanghai - name: JAVA_OPTS value: "-server -Xmx1g -Xms1g -Xss1m -XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=1024m -XX:MaxDirectMemorySize=128m -XX:+DisableExplicitGC -XX:CompressedClassSpaceSize=48m -XX:+UseG1GC -XX:+PreserveFramePointer -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=8 -XX:ConcGCThreads=1 -XX:ParallelGCThreads=2 -XX:InitiatingHeapOccupancyPercent=60 -XX:-UseBiasedLocking -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai -Djava.net.preferIPv4Stack=true" - name: APP_OPTS value: "--project.name=xunqiu-advertise-service --spring.nacos.namespace=e1117b88-f86f-486e-8863-1ea89f0d9950 --spring.nacos.port=8848 --spring.nacos.server-address=192.168.233.197 --spring.profiles.active=prod" ######### 配置环境变量 ########### - name: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace volumeMounts: - mountPath: /opt/tomcat/logs name: advertise-prod volumes: - name: advertise-prod nfs: path: / server: 140fb4b82***.aliyuncs.com
其中关键挂载配置:
volumeMounts: - mountPath: /opt/tomcat/logs name: advertise-prod volumes: - name: advertise-prod nfs: path: / server: 140fb4b82***.aliyuncs.com