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

news2024/11/14 0:57:15

最近准备花一周的时间准备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.coloradmin.cn/o/2239787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker之容器设置开机自启(4)

命令语法: docker update --restartalways 容器ID/容器名 选项: --restart参数 no 默认策略,在容器退出时不重启容器 on-failure 在容器非正常退出时(退出状态非0),才会重启容器 …

机器学习:决策树——ID3算法、C4.5算法、CART算法

决策树是一种常用于分类和回归问题的机器学习模型。它通过一系列的“决策”来对数据进行分类或预测。在决策树中,每个内部节点表示一个特征的测试,每个分支代表特征测试的结果,而每个叶节点则表示分类结果或回归值。 决策树工作原理 根节点&…

Angular 和 Vue2.0 对比

前言 :“业精于勤,荒于嬉;行成于思,毁于随” 很久没写博客了,大多记录少进一步探查。 Angular 和 Vue2.0 对比: 一.概念 1.1 Angular 框架: 是一款由谷歌开发的开源web前端框架(核…

Python酷库之旅-第三方库Pandas(208)

目录 一、用法精讲 971、pandas.MultiIndex.set_levels方法 971-1、语法 971-2、参数 971-3、功能 971-4、返回值 971-5、说明 971-6、用法 971-6-1、数据准备 971-6-2、代码示例 971-6-3、结果输出 972、pandas.MultiIndex.from_arrays类方法 972-1、语法 972-2…

[Linux]:IO多路转接之epoll

1. IO 多路转接之epoll 1.1 epoll概述 epoll是Linux内核为处理大规模并发网络连接而设计的高效I/O多路转接技术。它基于事件驱动模型,通过在内核中维护一个事件表,能够快速响应多个文件描述符上的I/O事件,如可读、可写、异常等,…

Spring Security 认证流程,长话简说

一、代码先行 1、设计模式 SpringSecurity 采用的是 责任链 的设计模式,是一堆过滤器链的组合,它有一条很长的过滤器链。 不过我们不需要去仔细了解每一个过滤器的含义和用法,只需要搞定以下几个问题即可:怎么登录、怎么校验账户、认证失败…

API 接口进行多分支管理的方法

原文链接:API 接口进行多分支管理的方法

链表类算法【leetcode】

链表的定义 面试时,需要自己手写... // 单链表 struct ListNode {int val; // 节点上存储的元素ListNode *next; // 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数 }; 【构造函数可以省略,C默认生成一个构造函数…

重构开发之道,Blackbox.AI为技术注入智能新动力

本文目录 一、引言二、Blackbox.AI实战体验2.1 基于网页界面生成前端代码进行应用开发2.2 与AI助手实现实时智能对话2.3 重塑大型文件交互方式2.4 链接Github仓库进行对话编程 三、总结 一、引言 在生产力工具加速进化的浪潮中,Blackbox.AI开始崭露头角&#xff0c…

【STM32F1】——9轴姿态传感器JY901与IIC通信

【STM32F1】——9轴姿态传感器JY901与IIC通信 一、简介 本篇主要对9轴姿态传感器JY901的调试过程进行总结,实现了以下功能。 IIC通信采集+串口收发:使用STM32F103C8T6的GPIO口模拟IIC,从JY901读取数据,并通过USART1串口发送到PC。二、JY901介绍 电压:3.3-5V量程:X/Z轴 …

Linux网络——自定义协议与序列化

一、协议 协议是一种 " 约定 ". socket api 的接口 , 在读写数据时 , 都是按 " 字符串 " 的方式来发送接收的。如 果我们要传输一些 " 结构化的数据 ",依然可以通过协议。 其实,协议就是双方约定好的结构化的数据。…

Windows,虚拟机Ubuntu和开发板三者之间的NFS服务器搭建

Windows,虚拟机Ubuntu和开发板三者之间的NFS服务器搭建 (1)虚拟机 ubuntu 要使用桥接模式,不能使用其他模式 (2)通过网线将PC和开发板网口直连:这样的连接,开发板是无法连接外网的 (3&#xff…

更改Ubuntu22.04锁屏壁纸

更改Ubuntu22.04锁屏壁纸 sudo apt install gnome-shell-extensions gnome-shell-extension-manager安装Gnome Shell 扩展管理器后,打开“扩展管理器”并使用搜索栏找到“锁屏背景”扩展

大模型推理优化技术-KV Cache

近两年大模型火出天际;同时,也诞生了大量针对大模型的优化技术。本系列将针对一些常见大模型优化技术进行讲解。 大模型推理优化技术-KV Cache大模型推理服务调度优化技术-Continuous batching大模型底显存推理优化-Offload技术大模型推理优化技术-KV C…

力扣 LeetCode 24. 两两交换链表中的节点(Day2:链表)

解题思路: 暂存节点tmp和tmp1 注意:while (cur.next ! null && cur.next.next ! null)表示为偶数和奇数时的循环停止条件,并且while语句中的顺序不可交换,交换会报空指针异常 class Solution {public ListNode swapPai…

动态规划-背包问题——494.目标和

1.状态表示 题目来源 494.目标和——力扣 测试用例 2.算法原理 1.状态表示 首先我们需要将问题简化,这里需要找到能将数组组合计算成为指定数字target的添加方式,那么我们就可以将数字分为两类,一类是前面添加""的,另…

哪些因素会导致充电器的充电速度变慢?-纳米软件

充电器的充电速度变慢可能由多种原因引起。以下是一些常见的因素: 一、充电器本身的问题 充电头功率不足:不同的充电头有不同的输出功率,如果使用的充电头功率较低,那么充电速度就会变慢。例如,一些老旧的充电头可能…

刷题强训(day06) -- 大数加法、链表相加、大数乘法

目录 1、大数加法 1.1 题目 1.2 思路 1.3 代码实现 2、链表相加(二) 2.1 题目 2.2 思路 2.3 代码实现 3、大数乘法 3.1 题目 3.2 思路 3.3 代码实现 1、大数加法 1.1 题目 1.2 思路 这道题可以模拟列竖式相加解答, 将每一位都转…

数字后端教程之Innovus report_property和get_property使用方法及应用案例

数字IC后端实现Innovus中使用report_property可以报告出各种各样object的属性,主要有cell,net,PG Net,Pin,时钟clock,时序库lib属性,Design属性,timing path,timin arc等…

网络基础 - 网段划分篇

我们知道,IP 地址(IPv4 地址)由 “网络标识(网络地址)” 和 “主机标识(主机地址)” 两部分组成,例如 192.168.128.10/24,其中的 “/24” 表示从第 1 位开始到多少位属于网络标识,那么,剩余位就属于主机标识了&#xf…