君玉自牧 君玉自牧
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
  • 技术架构

  • 桌面维护

  • 网络工程

  • 系统运维

  • 环境搭建

  • 容器编排

    • Docker 安装部署 & 常规配置
    • Docker Swarm 集群部署
    • Docker Compose
    • 构建最小镜像
    • Kubernetes 集群部署
    • Kubernetes 项目实践
    • Kubernetes YAML 入门
    • Kubernetes 存储卷
      • 存储
        • 使用 OSS 静态存储卷
        • 使用说明
        • 注意事项
        • 直接使用 volumes 挂载的方式
        • 使用创建 PV 和 PVC 的方式
        • 使用 NAS 动态存储卷
        • 创建动态 NAS 卷
    • 镜像仓库:Harbor
    • 容器管理:Portainer
    • Kubernetes 使用故障
  • 持续集成

  • 监控告警

  • 项目实践

  • 脚本开发

  • 前端开发

  • 后端开发

  • 效率工具

目录

Kubernetes 存储卷

# 存储

# 使用 OSS 静态存储卷

httpshelp.aliyun.comdocument_detail86543.html

# 使用说明

配置OSS静态存储卷的说明如下:

  • OSS为共享存储,可以同时为多个Pod提供共享存储服务。
  • bucket:目前只支持挂载存储空间Bucket,不支持挂载Bucket下面的子目录或文件。
  • url:OSS的Endpoint,挂载OSS的接入域名,挂载节点和存储空间的地域相同时,可使用内网地址。
  • akId:您的AccessKey ID值。
  • akSecret:您的AccessKey Secret值。
  • otherOpts:挂载OSS时支持定制化参数输入,格式为:-o -o。
  • 您在使用OSS数据卷时,不要使用subpath的配置。
  • 使用数据卷时,推荐每个应用使用独立的PV名字。

# 注意事项

  • OSS数据卷是使用OSSFS文件进行挂载的FUSE文件系统,适合于读文件场景。例如:读配置文件、视频、图片文件等场景。
  • OSSFS不擅长于写文件的应用场景。如果您的业务是将文件写入存储的场景,推荐使用NAS存储卷服务。
  • 内核态文件系统相较于用户态模拟的文件系统,在稳定性、性能上更具有优势,生产环境中推荐您使用NAS文件存储,而不推荐OSS文件系统
  • OSSFS可以通过调整配置参数的方式,优化其在缓存、权限等方面的表现,请参见常见问题、ossfsREADME-CN.md、FAQ。

# 直接使用 volumes 挂载的方式

创建并复制以下内容到oss-deploy.yaml中。

apiVersion extensionsv1beta1
kind Deployment
metadata
  name nginx-oss-deploy
spec
  replicas 1
  template
    metadata
      labels
        app nginx
    spec
      containers
      - name nginx-flexvolume-oss
        image nginx
        volumeMounts
          - name oss1
            mountPath data
        livenessProbe
          exec
            command
            - sh
            - -c
            - cd data
          initialDelaySeconds 30
          periodSeconds 30
      volumes
        - name oss1
          flexVolume
            driver alicloudoss
            options
              bucket docker
              url oss-cn-hangzhou.aliyuncs.com
              akId 
              akSecret 
              otherOpts -o max_stat_cache_size=0 -o allow_other
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

执行以下命令,创建Pod。

kubectl apply -f oss-deploy.yaml
1

# 使用创建 PV 和 PVC 的方式

您可以使用YAML文件或者通过容器服务控制台界面创建PV。

  • 创建 PV 使用oss-pv.yaml文件创建PV。
apiVersion v1
kind PersistentVolume
metadata
  name pv-oss
spec
  capacity
    storage 5Gi
  accessModes
    - ReadWriteMany
  storageClassName oss
  flexVolume
    driver alicloudoss
    options
      bucket docker
      url oss-cn-hangzhou.aliyuncs.com
      akId 
      akSecret 
      otherOpts -o max_stat_cache_size=0 -o allow_other
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • 创建 PVC 使用oss-pvc.yaml文件创建PVC。
kind PersistentVolumeClaim
apiVersion v1
metadata
  name pvc-oss
spec
  storageClassName oss
  accessModes
    - ReadWriteMany
  resources
    requests
      storage 5Gi
1
2
3
4
5
6
7
8
9
10
11
  • 创建 Pod 使用oss-deploy.yaml创建Pod。
apiVersion appsv1
kind Deployment
metadata
  name oss-static
  labels
    app nginx
spec
  replicas 1
  selector
    matchLabels
      app nginx
  template
    metadata
      labels
        app nginx
    spec
      containers
      - name nginx
        image nginx
        ports
        - containerPort 80
        volumeMounts
          - name pvc-oss
            mountPath data
        livenessProbe
          exec
            command
            - sh
            - -c
            - cd data
          initialDelaySeconds 30
          periodSeconds 30
        volumes
        - name pvc-oss
          persistentVolumeClaim
            claimName pvc-oss           
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

httpshelp.aliyun.comdocument_detail130911.html

# 使用 NAS 动态存储卷

# 创建动态 NAS 卷

  • 配置 StorageClass。 配置示例如下:
apiVersion storage.k8s.iov1
kind StorageClass
metadata
  name alicloud-nas
mountOptions
- nolock,tcp,noresvport
- vers=3
parameters
  server 23a9649583-iaq37.cn-shenzhen.nas.aliyuncs.comnasroot1
  driver flexvolume
provisioner alicloudnas
reclaimPolicy Delete
1
2
3
4
5
6
7
8
9
10
11
12

说明

  • mountOptions:表示生成的PV options配置,挂载NAS卷时使用这个options挂载。
  • server:表示生成目标PV所使用NAS挂载点列表。格式为 nfsurl1path1,nfsurl2path2;当配置多个server时,通过此StorageClass创建的PV会轮询使用上述server作为配置参数;极速NAS配置路径需要以share开头。
  • driver:支持Flexvolume、NFS两种驱动,默认为NFS。
  • reclaimPolicy:PV的回收策略,建议配置为Retain。
    • 当配置为Delete时,删除PV后NAS文件系统中的对应目录会默认修改名字(例如,path-name会被修改为archived-path-name)。
    • 如果需要删除文件系统中对应的存储目录,可在StorageClass中配置archiveOnDelete为false。
  • 使用动态卷
apiVersion v1
kind Service
metadata
  name nginx
  labels
    app nginx
spec
  ports
  - port 80
    name web
  clusterIP None
  selector
    app nginx
---
apiVersion appsv1
kind StatefulSet
metadata
  name web
spec
  serviceName nginx
  replicas 5
  volumeClaimTemplates
  - metadata
      name html
    spec
      accessModes
        - ReadWriteOnce
      storageClassName alicloud-nas
      resources
        requests
          storage 2Gi
  template
    metadata
      labels
        app nginx
    spec
      containers
      - name nginx
        image nginxalpine
        volumeMounts
        - mountPath data
          name html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
网页编辑 (opens new window)
最近提交: 2023/03/22, 11:52:35
Kubernetes YAML 入门
镜像仓库:Harbor

← Kubernetes YAML 入门 镜像仓库:Harbor→

Theme by Vdoing | Copyright © 2011-2023 | 君玉自牧
粤ICP备15057965号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式