CKS 考试题整理 (03)-secret

发布时间 2023-06-16 15:06:29作者: 打工人,打工魂

Task

在 namespace istio-system 中获取名为 db1-test 的现有secret的内容

 

username 字段存储在名为 /cks/sec/user.txt 的文件中,并将 password 字段存储在名为 /cks/sec/pass.txt的文件中。

注意:你必须创建以上两个文件,他们还不存在。

 

注意:不要在以下步骤中使用/修改先前创建的文件,如果需要,可以创建新的临时文件。

 

istio-system namespace中创建一个名为 db2-test 的新secret,内容如下:

username : production-instance

password : KvLftKgs4aVH

 

3 最后,创建一个新的Pod,它可以通过卷访问 secret db2-test

Pod 名称 secret-pod

Namespace istio-system

容器名 dev-container

镜像 nginx

卷名 secret-volume

挂载路径 /etc/secret

 

参考资料

https://kubernetes.io/zh-cn/docs/concepts/configuration/secre

 

 

 

 

解答

考试时,需要先切换集群

kubectl config use-context KSCH00701

 

  1. 在namespace istio-system中获取名为db1-test的现有secret的内容

username字段存储在名为 /cks/sec/user.txt的文件中,并将password字段存储在名为 /cks/sec/pass.txt的文件中。

  kubectl get secret db1-test -n istio-system -o jsonpath='{.data}'
      // 返回结果比如 {"password":"MWYyZDFlMmU2N2Rm","username":"YWRtaW4="}
      // 将这两个结果写到文件中
  echo 'MWYyZDFlMmU2N2Rm' | base64 --decode > /cks/sec/user.txt
  echo 'YWRtaW4=' | base64 --decode > /cks/sec/pass.txt
  1. 在istio-system namespace中创建一个名为db2-test的新secret,内容如下:

username : production-instance

password : KvLftKgs4aVH

  kubectl create secret generic db2-test -n istio-system \
  --from-literal=username=production-instance \
  --from-literal=password='KvLftKgs4aVH'
  //转义密码最简便的方法是用单引号括起来

 

  1. 最后,创建一个新的Pod,它可以通过卷访问secret db2-test :

Pod 名称 secret-pod

Namespace istio-system

容器名 dev-container

镜像 nginx

卷名 secret-volume

挂载路径 /etc/secret

 

apiVersion: v1
kind: Pod
metadata:
  name: secret-pod
  namespace: istio-system
spec:
  containers:
  - name: dev-container
    image: nginx
    volumeMounts:
    - name: secret-volume
      mountPath: "/etc/secret"
      readOnly: true
  volumes:
  - name: secret-volume
    secret:
      secretName: db2-test