k8s作业7

Q1:创建一个secret,并创建2个pod, pod1挂载该secret,路径为/secret, pod2使用环境变量引用该secret,该变量的环境变量名为ABC

  • secret名称: my-secret
  • pod1名称: pod-volume-secret
  • pod2名称: pod-env-secret

A1:secret-test.yaml

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  abc: a2hiCg== 

---
apiVersion: v1
kind: Pod
metadata:
  name: pod-volume-secret
spec:
  containers:
  - name: pod1
    image: nginx
    volumeMounts:
    - name: foo
      mountPath: "/secret"
      readOnly: true
  volumes:
  - name: foo
    secret:
      secretName: my-secret

---
apiVersion: v1
kind: Pod
metadata:
  name: pod-env-secret
spec:
  containers:
    - name: pod2
      image: nginx
      env:
        - name: ABC
          valueFrom:
            secretKeyRef:
              name: my-secret
              key: abc

kubectl get secret,pods

 

Q2:创建一个pv,再创建一个pod使用该pv

  • 容量: 5Gi
  • 访问模式: ReadWriteOnce 

A2:pod-pv-pvc.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0002
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /ifs/kubernetes
    server: 192.168.1.89
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-pvc
spec:
  selector:
    matchLabels:
      app: pvc
  replicas: 1 
  template:
    metadata:
      labels:
        app: pvc
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
        - name: nfs
          mountPath: /usr/share/nginx/html
        ports:
        - containerPort: 80
      volumes:
      - name: nfs
        persistentVolumeClaim:
          claimName: my-pvc 

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

---
apiVersion: v1
kind: Service
metadata:
  name: web-pvc
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  type: NodePort

Q3:创建一个pod并挂载数据卷,不可以用持久卷

  • 卷来源: emptyDir、 hostPath任意
  • 挂载路径: /data 

A3:pod-emptydir.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-emptydir
spec:
  containers:
  - name: write
    image: centos
    command: ["bash","-c","for i in {1..100};do
echo $i >> /data/hello;sleep 1;done"]
    volumeMounts:
    - name: data
      mountPath: /data
  - name: read
    image: centos
    command: ["bash","-c","tail -f /data/hello"]
    volumeMounts:
    - name: data
      mountPath: /data
  volumes:
  - name: data
    emptyDir: {}

Q4:将pv按照名称、容量排序,并保存到/opt/pv文件

A4:

 按照名称:

kubectl get pv --sort-by=.metadata.name > /opt/pv

 按照容量:

kubectl get pv --sort-by=.spec.capacity.storage >> /opt/pv


版权声明:本文为weixin_40809179原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。