CKA考试习题:存储管理-普通卷、PV、PVC

所有命令都验证过,有更好的方式,欢迎留言~~~

CKA 习题和真题汇总

更多CKA资料或交流:可加 wei  xin :wyf19910905

存储管理

大 纲

• 为何需要存储卷?
• 普通存储卷
• 应用中使用普通卷
• 持久化存储卷( PV)
• 持久化存储卷申明( PVC)
• 应用中使用持久化卷

为何需要存储卷?

容器部署过程中一般有以下三种数据:
- 启动时需要的初始数据,可以是配置文件
- 启动过程中产生的临时数据,该临时数据需要多个容器间共享
- 启动过程中产生的持久化数据

为何需要存储卷?

普通存储卷(volume)
 

应用中使用普通卷
 

应用中使用普通卷

持久化存储卷(PersistentVolume)
 

持久化存储卷(PersistentVolume)

静态模式:除创建PVC外,还需手动创建PV

动态模式:只需创建PVC,系统根据PVC自动创建PV

持久化存储卷申明(PersistentVolumeClaim)

应用中使用持久化卷
 

存储管理

1. 部署一个deployment应用,使用secret普通卷,该应用启动依赖此secret。
– Deployment的名称为<hwcka-005-1-你的华为云id>
– 将所用命令、创建的Deployment及secret完整yaml截图上传,注意需要体现依赖特性,如secret删
除后,应用无法启动

# 创建Secrect 

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: YWRtaW4=
  password: MWYyZDFlMmU2N2Rm

# 创建Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: hwcka-005-1-fly
  name: hwcka-005-1-fly
spec:
  replicas: 1
  selector:
    matchLabels:
      run: hwcka-005-1-fly
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: hwcka-005-1-fly
    spec:
      containers:
      - image: nginx
        name: hwcka-005-1-fly
        volumeMounts:
        - mountPath: /fly
          name: fly-volume
          readOnly: true
        resources: {}
      volumes:
      - secret:
          secretName: mysecret
        name: fly-volume
status: {}


2. 部署一个statefulset应用,使用持久化卷,通过pvc声明所需的存储大小10G及访问
模式为RWX。
– statefulset的名称为<hwcka-005-2-你的华为云id>
– 将所用命令、创建的statefulset及pvc完整yaml和证明该应用有在存储中写内容的截图上传

# 创建pv

apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/home"

# 创建PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

# 创建StatefulSet

apiVersion: v1
kind: Service
metadata:
  name: hwcka-005-2-fly
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx # has to match .spec.template.metadata.labels
  serviceName: "nginx"
  replicas: 3 # by default is 1
  template:
    metadata:
      labels:
        app: nginx # has to match .spec.selector.matchLabels
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
      volumes:
      - name: www
        persistentVolumeClaim:
          claimName: task-pv-claim
发布了389 篇原创文章 · 获赞 1041 · 访问量 163万+

猜你喜欢

转载自blog.csdn.net/fly910905/article/details/103551558