当前位置: 首页 > article >正文

[CKS] Create/Read/Mount a Secret in K8S

最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于读取、创建以及挂载secret的题目。

​ 专栏其他文章:

  • [CKS] Create/Read/Mount a Secret in K8S-CSDN博客
  • [CKS] Audit Log Policy-CSDN博客
    -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客
  • [CKS] K8S NetworkPolicy Set Up-CSDN博客
  • [CKS] K8S AppArmor Set Up-CSDN博客
  • [CKS] 利用Trivy对image进行扫描-CSDN博客
  • [CKS] kube-batch修复不安全项-CSDN博客
  • [CKS] K8S ServiceAccount Set Up-CSDN博客
  • [CKS] K8S Admission Set Up-CSDN博客
  • [CKS] K8S Dockerfile和yaml文件安全检测-CSDN博客
  • CKS真题
  • CKA真题

What’s the Secret

详细介绍参见这篇官方介绍: https://v1-28.docs.kubernetes.io/docs/concepts/configuration/secret/

Question 1

Get the username data from the curly Secret in the larry namespace and save it to /home/cloud_user/username.txt on the CLI server.

Then, get the password data and save it to /home/cloud_user/password.txt on the CLI server.

这个题目就是要求我们读取username和password在larry命令空间下的curly secret资源下。并且将结果存在username.txt和password.txt文件中

Practice

在这里需要明确的是secret存储的内容是base64编码的,所以这儿第一步需要将base64的编码数据给获取到,我们可以使用下面的命令打印出该secret的详细内容

kubectl get secret curly -n larry -o yaml

这里我们将会获得如下结果
在这里插入图片描述
这里我们就知道了以下内容:

  • password的base64编码为:MTIzNDUK
  • username的base64编码为:YWRtaW4K

由此,现在我们就需要对这个base64进行解码,并存储在username.txt和password.txt文件中,我们可以使用以下两条命令完成

echo MTIzNDUK | base64 --decode > password.txt
echo YWRtaW4K | base64 --decode > username.txt

Question 2

Create a new secret in the larry namespace called moe.

Provide fields called username and password and store the following username and password credentials in the Secret:

username dbuser
password A83MaeKoz
Create a Pod called secret-pod in the larry namespace.

Mount the new Secret to /etc/credentials in the Pod’s container.

这个题目要求我们创建一个moe的secret,里面需要存储username为dbuser,password为A83MaeKoz,然后创建一个secret-pod,将这个secret进行挂载在pod的/etc/credentials

Practice

刚才我们说了,secret里面存储的是base64编码的内容,所以第一步我们需要将这个明文的username和password进行一个base64的编码,可以使用如下两个命令:

echo dbuser | base64
# 结果为: ZGJ1c2VyCg==
echo A83MaeKoz | base64
# 结果为: QTgzTWFlS296Cg==

然后创建moe.yaml, 文件内容如下:

apiVersion: v1
data:
 password: QTgzTWFlS296Cg==
 username: ZGJ1c2VyCg==
kind: Secret
metadata:
 name: moe
 namespace: larry
type: Opaque

使用下面的命令创建secret:

kubectl create -f moe.yaml

最后,修改并创建/home/cloud_user/secret-pod.yml对应的pod,修改的内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: secret-pod
  namespace: larry
spec:
  volumes:
    - name: secret-volume
      secret:
        secretName: moe
  containers:
  - name: busybox
    image: busybox:1.33.1
    command: ['sh', '-c', 'cat /etc/credentials/username; cat /etc/credentials/password; while true; do sleep 5; done']
    volumeMounts:
    - name: secret-volume
      readOnly: true
      mountPath: /etc/credentials

最后使用kubectl create -f secret-pod.yml创建pod

验证

kubectl logs secret-pod -n larry

结果如下:

在这里插入图片描述


http://www.kler.cn/a/389281.html

相关文章:

  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • 大数据开发面试宝典
  • 【Pikachu】目录遍历实战
  • 贪心算法入门(二)
  • MyBatis CRUD快速入门
  • 《深度解析 C++中的弱引用(weak reference):打破循环依赖的利器》
  • 软考中级 软件设计师 上午考试内容笔记(个人向)Part.3
  • Linux 消息队列
  • go template 模板字符串
  • std::thread线程通知、等待、让渡
  • 绿色能源发展关键:优化风电运维体系
  • 初学Java基础---Day21---正则表达式,日期类,Math类,Random类,System类,Runtime类,大数值运算类,
  • 【cursor添加azure】在cursor中添加azure的openai api
  • 面向对象试题带答案
  • Linux网络管理和修改配置文件
  • HBase 安装与基本操作指南
  • 机器学习与深度学习-1-线性回归从零开始实现
  • MyBatis xml 文件中 SQL 语句的小于号未转义导致报错
  • 高通Quick板上安装编译Ros1 noetic,LeGO_LOAM,FAR_Planner和rslidar_sdk
  • C#里演示使用数学的三角函数
  • 【JavaEE】多线程(1)
  • ssm基于Vue的戏剧推广网站+vue
  • C++ IO流
  • 缺陷的根本原因,出现在代码中的原因可能有哪些?
  • 【架构-37】Spark和Flink
  • rust字符串