6.k8s中的secrets资源
一、Secret
secrets资源,类似于configmap资源,只是secrets资源是用来传递重要的信息的;
secret资源就是将value的值使用base64编译后传输,当pod引用secret后,k8s会自动将其base64的编码,反编译回正常的字符串;
- Secret 用于保存机密数据的对象。一般由于保存密码、令牌或密钥等。
data字段用来存储 base64 编码数据。stringData存储未编码的字符串。
- Secret 意味着你不需要在应用程序代码中包含机密数据,减少机密数据(如密码)泄露的风险。
- Secret 可以用作环境变量、命令行参数或者存储卷文件。
二、创建secrets资源
1.创建工作目录
[root@k8s1 k8s]# mkdir secrets
[root@k8s1 k8s]# cd secrets/
2.尝试使用base64进行编码
# 编码
[root@k8s1 secrets]# echo oslee | base64
b3NsZWUK# 解码
[root@k8s1 secrets]# echo b3NsZWUK | base64 -d
oslee
3.声明式创建secrets资源
# 编辑secrets资源清单
vi 01-secret.yaml
apiVersion: v1
kind: Secret
metadata:name: s1#用户自定义的类型(Opaque为自定义类型;generic为)
type: Opaque
data: k8s: b3NsZWUKoslee: b3NsZWUK
# 创建secret资源
[root@k8s1 secrets]# kubectl apply -f 01-secret.yaml
secret/s1 created# 查看
[root@k8s1 secrets]# kubectl get secrets
NAME TYPE DATA AGE
default-token-xwhzs kubernetes.io/service-account-token 3 23h
s1 Opaque 2 2m46s
[root@k8s1 secrets]# kubectl describe secret s1
Name: s1
Namespace: default
Labels: <none>
Annotations: <none>Type: Opaque
Data
====
k8s: 6 bytes
oslee: 6 bytes
4.响应式创建secret
[root@k8s1 secrets]# kubectl create secret generic secret-02 --from-literal=school=os --from-literal=class=lee
- docker-registry:创建一个给Docker registry容器镜像仓库使用的secret
- generic: 从本地file, directory或者literal value创建一个 secret(这是大多数情况使用的)也就是资源清单中的type:Opaque是一个意思;
- tls: 创建一个TLS secret
三、pod引用secret资源
1.pod资源env环境变量引用
# 创建pod资源
[root@k8s1 secrets]# cat pod.yaml
apiVersion: v1
kind: Pod
metadata:name: m13
spec:containers:- image: nginx:1.20.1-alpinename: nginxenv: - name: secret-env01valueFrom:#声明引用sercetsecretKeyRef: #声明secret名称name: s1#声明secret的keykey: oslee- name: secret-env02valueFrom:secretKeyRef:name: secret-02key: class
# 创建资源
[root@k8s1 secrets]# kubectl apply -f pod.yaml
pod/m13 created
# 登录pod资源查看env变量
[root@k8s1 secrets]# kubectl exec m13 -it -- sh
/ # envsecret-env01=oslee
secret-env02=lee
2.pod资源volume存储卷引用secret资源
# 编辑资源清单
[root@k8s1 secrets]# vi pod-env-volume.yaml
#pod资源env环境变量方式引用secret
apiVersion: v1
kind: Pod
metadata:name: pod-secret-01
spec:containers:- name: c1image: nginx:1.20.1-alpineenv:- name: k8svalueFrom:#声明引用secret资源secretKeyRef: name: s1#声明使用secret资源中的那一个keykey: k8s---#vomlume方式引用
apiVersion: v1
kind: Pod
metadata:name: pod-secret-02
spec: #声明存储卷volumes:- name: vol-secret#声明存储卷的类型是secretsecret:#指定secret资源的名称(使用哪个secret资源?)secretName: s1containers:- name: c2image: nginx:1.24.0-alpinevolumeMounts:- name: vol-secret#挂载到容器的哪个位置路径mountPath: /secret/
# 创建资源
[root@k8s1 secrets]# kubectl apply -f pod-env-volume.yaml
pod/pod-secret-01 created
pod/pod-secret-02 created
# 查看挂载
[root@k8s1 secrets]# kubectl exec pod-secret-01 -it -- sh
[root@k8s1 secrets]# kubectl exec pod-secret-02 -it -- sh
3.pod资源清单指定key引用secret
[root@k8s1 secrets]# kubectl apply -f pod-path.yaml
pod/pod-secret-03 created
[root@k8s1 secrets]# cat pod-path.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-secret-03
spec: #声明存储卷volumes:- name: vol-secret#声明存储卷的类型是secretsecret:#1,指定secret资源的名称(使用哪个secret资源?)secretName: s1#2,指定secret资源中要引用的keyitems: - key: k8spath: oslee.pathcontainers:- name: c2image: nginx:1.24.0-alpinevolumeMounts:- name: vol-secret#挂载到容器的哪个位置路径?mountPath: /secret/oslee.path#只挂在文件,不清空容器原有文件夹subPath: oslee.path
# 进入pod查看
[root@k8s1 secrets]# kubectl exec -it pod-secret-03 -- sh
四、secret类型之-私有镜像仓库使用
- docker-registry:创建一个给Docker registry容器镜像仓库使用的secret
- generic: 从本地file, directory或者literal value创建一个 secret(这是大多数情况使用的)也就是资源清单中的type:Opaque是一个意思;
- tls: 创建一个TLS secret
创建Docker harbor的secret信息:
因为,k8s拉取镜像与Docker拉取镜像是不同的方式,所以k8s需要创建一个属于自己的拉取镜像的方式;
1.harbor创建私有仓库

2.推送镜像到私有仓库
[root@k8s2 ~]# docker login harbor.oslee.com
[root@k8s2 ~]# docker tag nginx:1.20.1-alpine harbor.oslee.com/oslee-private/nginx:1.20.1-alpine
[root@k8s2 ~]# docker push harbor.oslee.com/oslee-private/nginx:1.20.1-alpine
3.响应式创建拉取镜像的secret资源
[root@k8s1 ~]# kubectl create secret docker-registry oslee-harbor --docker-username=admin --docker-password=harbor123 --docker-email=oslee@qq.com --docker-server=harbor.oslee.com
secret/oslee-harbor created
4.创建pod引用拉取镜像的secret资源
[root@k8s1 secrets]# cat pod-harbor-secret.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-harbor-01
spec:#指定镜像拉取的secret资源(secret的拉取镜像类型);imagePullSecrets:- name: oslee-harborcontainers:- name: c3image: harbor.oslee.com/oslee-private/nginx:1.20.1-alpine
5.声明式创建docker registry类型的secret资源
5.1.【-o yaml】模仿系统声明式的写法
[root@k8s1 secrets]# kubectl get secrets oslee-harbor -oyaml
5.2.base64解码查看内容
[root@k8s1 secrets]# echo eyJhdXRocyI6eyJoYXJib3Iub3NsZWUuY29tIjp7InVzZXJuYW1lIjoiYWRtaW4iLCJwYXNzd29yZCI6ImhhcmJvcjEyMyIsImVtYWlsIjoib3NsZWVAcXEuY29tIiwiYXV0aCI6IllXUnRhVzQ2YUdGeVltOXlNVEl6In19fQ== | base64 -d
{"auths":{"harbor.oslee.com":{"username":"admin","password":"harbor123","email":"oslee@qq.com","auth":"YWRtaW46aGFyYm9yMTIz"}}}[root@k8s1 secrets]#
[root@k8s1 secrets]# echo YWRtaW46aGFyYm9yMTIz | base64 -d
admin:harbor123
5.3根据上述信息,自己编辑secret声明式资源清单
[root@k8s1 secrets]# cat harbor-secret.yaml
apiVersion: v1
kind: Secret
metadata:name: oslee-harbor02
type: kubernetes.io/dockerconfigjson
data:.dockerconfigjson: eyJhdXRocyI6eyJoYXJib3Iub3NsZWUuY29tIjp7InVzZXJuYW1lIjoiYWRtaW4iLCJwYXNzd29yZCI6ImhhcmJvcjEyMyIsImVtYWlsIjoib3NsZWVAcXEuY29tIiwiYXV0aCI6IllXUnRhVzQ2YUdGeVltOXlNVEl6In19fQ==
[root@k8s1 secrets]# kubectl apply -f harbor-secret.yaml
secret/oslee-harbor02 created
[root@k8s1 secrets]# cat pod-harbor-secret.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-harbor-01
spec:
#指定镜像拉取的secret资源(secret的拉取镜像类型);
imagePullSecrets:
- name: oslee-harbor02
containers:
- name: c3
image: harbor.oslee.com/oslee-private/nginx:1.20.1-alpine
[root@k8s1 secrets]# kubectl apply -f pod-harbor-secret.yaml
pod/pod-harbor-01 created
[root@k8s1 secrets]# kubectl get pod
NAME READY STATUS RESTARTS AGE
pod-harbor-01 1/1 Running 0 6s
相关文章:
6.k8s中的secrets资源
一、Secret secrets资源,类似于configmap资源,只是secrets资源是用来传递重要的信息的; secret资源就是将value的值使用base64编译后传输,当pod引用secret后,k8s会自动将其base64的编码,反编译回正常的字符…...
git 更换远程仓库地址三种方法总结
git 更换远程仓库地址三种方法总结 一、前言 由于私服的 gitlab 的地址变更,导致部分项目代码提交不上去,需要修改远端仓地址。 其它需要修改远程仓地址的情况如:切换git clone 协议由ssh变为https。 二、环境 windows 10git version 2.3…...
快速找出存(不存在)在某个(或多个)文件的文件夹
首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 想要找出有下面这个文件存在的文件夹 切换到批量文件复制版块,快捷键Ctrl5 右侧,搜索添加 选定范围,勾选搜索文件夹、包…...
Linux USB转串口设备路径的查找方法
1、USB转串口设备 USB转串口设备是在嵌入式软件开发过程中经常要使用的,常常用于对接各种各样的串口设备。如果一台linux主机上使用多个usb转串口设备时,应用程序中就需要知道自己操作的是哪个串口设备。串口设备在系统上电时,由于驱动加载的…...
【初阶数据结构】单链表之环形链表
目录标题 前言环形链表的约瑟夫问题环形链表环形链表|| 前言 前面我们已经学习了关于单链表的一些基本东西,今天我们来学习单链表的一个拓展——环形链表,我们将用力扣和牛客网上的三道题目来分析讲解环形链表问题。 环形链表的约瑟夫问题 我们首先来看…...
【积分,微分,导数,偏导数公式推导】
1. 积分 积分是微积分的一个分支,用于计算曲边梯形的面积或者变速直线运动的总距离等。积分分为不定积分和定积分。 不定积分:给出一个函数,求出其所有可能的原函数。定积分:计算一个函数在特定区间上的积分。 2. 微分 微分是…...
java:递归实现的案例
//求第20个月兔子的对数 //每个月兔子对数:1,1,2,3,5,8 public class Test {//求第20个月兔子的对数//每个月兔子对数:1,1,2,3,5,8pu…...
Arxml文件解析03- 自动驾驶Radar服务radar_svc.arxml
<AR-PACKAGES><AR-PACKAGE><SHORT-NAME>bosch</SHORT-NAME><AR-PACKAGES>...</AR-PACKAGES>...
Elasticsearch安装步骤
引言 Elasticsearch是一个基于Lucene构建的开源、分布式、RESTful搜索和分析引擎。它设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论…...
Windows系统和unbtun系统连接usb 3.0海康可见MVS和红外艾睿相机
一.海康可见USB3.0工业面阵相机 海康usb相机需要去海康官网上下载对应系统的MVS客户端及SDK开发包 海康机器人-机器视觉-下载中心 选择Windows系统和unbtun(我是linux aarch64,所以选择了对应压缩包解压) Windows系统 1.双击安装包进入安装界面&…...
深入Django:用户认证与权限控制实战指南
title: 深入Django:用户认证与权限控制实战指南 date: 2024/5/7 18:50:33 updated: 2024/5/7 18:50:33 categories: 后端开发 tags: AuthDecoratorsPermissionsGuardianRESTAuthSessionMgmtMFA 第1章:入门Django与设置 1.1 Django安装与环境配置 在…...
Kubernetes - Dashboard 配置用户名密码方式登录
Kubernetes - Dashboard 配置用户名密码方式登录 前言: 为了 K8s 集群安全,默认情况下 Dashboard 以 Token的形式登录的,那如果我们想以用户名/密码的方式登录该怎么操作呢?其实只需要我们创建用户并进行 ClusterRoleBinding绑定即…...
AIGC能给人类社会带来哪些变革?
随着人工智能技术的飞速发展,AIGC(人工智能生成内容)正在成为推动社会变革的重要力量。本文将从技术角度出发,探讨AIGC技术如何影响和改变人类生活的各个方面。 一、AIGC技术概述 AIGC,即人工智能生成内容࿰…...
医药垃圾分类管理系统|基于SSM医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)
医药垃圾分类管理系统 目录 基于SSM医药垃圾分类管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统登录模块 2管理员模块实现 3用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博…...
用vim或gvim编辑程序
vim其实不难使用,学习一下就好了。简单功能很快学会。它有三种模式:命令模式,编辑模式,视模式。打开时在命令模式。在命令模式下按 i 进入编辑模式,在编辑模式下按<Esc>键退出编辑模式。在命令模式按 :wq 保存文…...
linus下Anaconda创建虚拟环境pytorch
一、虚拟环境 1.创建 输入下面命令 conda create -n env_name python3.8 输入y 2.激活环境 输入 conda activate env_name 二、一些常用的命令 在Linux的控制平台 切换到当前的文件夹 cd /根目录/次目录 查看conda目录 conda list 查看pip目录 pip list查看历史命…...
synchronized与volatile关键字
1.synchronized的特性 1.1互斥 synchronized 会起到互斥效果, 某个线程执行到某个对象的 synchronized 中时, 其他线程如果也执行到 同一个对象 synchronized 就会阻塞等待. 进入 synchronized 修饰的代码块, 相当于 加锁 退出 synchronized 修饰的代码块, 相当于 解锁 syn…...
Python基础之运算符操作
在Python中,运算符的作用就是用于执行各种的运算操作,常见的运算符有算数运算符、比较运算符、逻辑运算符、赋值运算符、成员运算符、身份运算符等。下面我们就来看看在Python中这些运算的详细操作。 算术运算符 算术运算符是用来执行一些基本的数学运…...
【busybox记录】【shell指令】uniq
目录 内容来源: 【GUN】【uniq】指令介绍 【busybox】【uniq】指令介绍 【linux】【uniq】指令介绍 使用示例: 去除重复行 - 默认输出 去除重复行 - 跳过第n段(空格隔开),比较n1以后的内容,去重 去…...
Nginx从入门到精通速成
文章目录 一. **Nginx** **的简介**1.1 什么是 **nginx**1.2 正向代理1.3 反向代理1.4 **负载均衡**1.5 动静分离 二. **Nginx** **的安装**三. **Nginx** **的常用的命令**四. **Nginx** **的配置文件**五. **Nginx** **配置实例**反向代理实例**1**5.1 实现效果5.2 准备工作5…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
