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 最后,创建一个新的 Pod ,它可以通过卷访问 secret db2-test : Pod 名称 secret-pod Namespace istio-system 容器名 dev-container 镜像 nginx 卷名 secret-volume 挂载路径 /etc/secret
参考
https://kubernetes.io/zh/docs/tasks/configmap-secret/managing-secret-using-kubectl/#decoding-secret
https://kubernetes.io/zh/docs/tasks/configmap-secret/managing-secret-using-kubectl/#create-a-secret
https://kubernetes.io/zh/docs/concepts/configuration/secret/#using-secrets
解答:
切换集群
kubectl config use-context KSCH00701
将db1-test的username和password,通过base64解码保存到题目指定文件:
kubectl -n istio-system get secrets db1-test -o jsonpath={.data.username} | base64 -d > /cks/sec/user.txt
kubectl -n istio-system get secrets db1-test -o jsonpath={.data.password} | base64 -d > /cks/sec/pass.txt
检查
cat /cks/sec/user.txt
cat /cks/sec/pass.txt
创建名为 db2-test 的 secret 使用题目要求的用户名和密码作为键值。注意要加命名空间。
注意,如果密码中有特殊字符(例如:$,\,,= 和 !),需要加单引号来转义--from-literal=password='G!Y\d$zDsb'这样
kubectl -n istio-system create secret generic db2-test --from-literal username=production-instance --from-literal assword=KvLftKgs4aVH
kubectl -n istio-system get secret
根据题目要求,参考官网,创建Pod使用该secret
vim k8s-secret.yaml
k8s-secret.yaml
apiVersion: v1
kind: Pod
metadata:
name: secret-pod #pod名字
namespace: istio-system #命名空间
spec:
containers:
- name: dev-container #容器名字
image: nginx #镜像名字
volumeMounts:
- name: secret-volume #卷名
mountPath: "/etc/secret" #挂载路径
volumes:
- name: secret-volume #卷名
secret:
secretName: db2-test #名为 db2-test 的 secret
kubectl -f k8s-secret.yaml create
kubectl -n istio-system get pod