07-k8s中secret资源02-玩转secret
一、回顾secret资源的简单实用
第一步:将想要的数据信息【key:value】中的value值,使用base64编码后,写入secret资源清单中;
第二步:创建secret资源;
第三步:pod资源引用secret资源;
二、实战secret资源
1,第一步:将数据base64编码
[root@k8s231 ~]# echo xinjizhiwa | base64
eGluaml6aGl3YQo=
2,编辑secret资源清单
[root@k8s231 secrets]# vim secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: secret-01#用户自定义的任意数据类型;(还有别的类型。。。)
type: Opaque
data:
k8s: eGluaml6aGl3YQo=
3,创建secret资源
[root@k8s231 secrets]# kubectl apply -f secret.yaml

4,pod引用secret资源
· 编辑资源清单
[root@k8s231 secrets]# cat pod.yaml
#pod资源env环境变量方式引用secret
apiVersion: v1
kind: Pod
metadata:
name: pod-secret-01
spec:
containers:
- name: c1
image: nginx:1.20.1-alpine
env:
- name: k8s
valueFrom:
#声明引用secret资源
secretKeyRef:
name: secret-01
#声明使用secret资源中的那一个key
key: k8s---
#vomlume方式引用
apiVersion: v1
kind: Pod
metadata:
name: pod-secret-02
spec:
#声明存储卷
volumes:
- name: vol-secret
#声明存储卷的类型是secret
secret:
#指定secret资源的名称(使用哪个secret资源?)
secretName: secret-01
containers:
- name: c2
image: nginx:1.24.0-alpine
volumeMounts:
- name: vol-secret
#挂载到容器的哪个位置路径?
mountPath: /secret/
· 创建pod资源
[root@k8s231 secrets]# kubectl apply -f pod.yaml
5,进入容器查看是否引用成功
· env应用的pod容器
[root@k8s231 secrets]# kubectl exec pod-secret-01 -it -- sh
/ # env
k8s=xinjizhiwa
· volumes引用的pod容器
[root@k8s231 secrets]# kubectl exec pod-secret-02 -it -- sh
/ # cat /secret/k8s
xinjizhiwa
三、pod资源清单指定key引用secret
1,编辑pod资源清单
[root@k8s231 secrets]# cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-secret-02
spec:
#声明存储卷
volumes:
- name: vol-secret
#声明存储卷的类型是secret
secret:
#1,指定secret资源的名称(使用哪个secret资源?)
secretName: secret-01
#2,指定secret资源中要引用的key
items:
- key: k8s
path: xjzw.log
containers:
- name: c2
image: nginx:1.24.0-alpine
volumeMounts:
- name: vol-secret
#挂载到容器的哪个位置路径?
mountPath: /secret/xjzw.log
#只挂在文件,不清空容器原有文件夹
subPath: xjzw.log
2,创建pod
[root@k8s231 secrets]# kubectl apply -f pod.yaml
3,进入pod查看
[root@k8s231 secrets]# kubectl exec pod-secret-02 -it -- sh
/ # ls /secret/
xjzw.log
/ # cat /secret/xjzw.log
xinjizhiwa
四、secret类型之-私有镜像仓库使用
创建Docker harbor的secret信息:
因为,k8s拉取镜像与Docker拉取镜像是不同的方式,所以k8s需要创建一个属于自己的来气镜像的方式;

1>docker-registry:创建一个给Docker registry容器镜像仓库使用的secret
2>generic: 从本地file, directory或者literal value创建一个 secret(这是大多数情况使用的)也就是资源清单中的type:Opaque是一个意思;
3>tls: 创建一个TLS secret
1,harbor创建私有仓库
harbor创建私有仓库

2,推送镜像到私有仓库
[root@k8s233 ~]# docker push harbor.xinjizhiwa.com/xinjizhiwa01/nginx:1.20.1-alpine

3,创建拉取镜像的secret资源
· 响应式创建secret资源
docker 拉取镜像的secret账号密码资源
[root@k8s231 secrets]# kubectl create secret docker-registry xinjizhiwa-harbor --docker-username=admin --docker-password=1 --docker-email=123@qq.com --docker-server=harbor.xinjizhiwa.com

4,创建pod引用拉取镜像的secret资源
[root@k8s231 secrets]# cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-secret-02
spec:
#指定镜像拉取的secret资源(secret的拉取镜像类型);
imagePullSecrets:
- name: xinjizhiwa-harbor
containers:
- name: c3
image: harbor.xinjizhiwa.com/xinjizhiwa01/nginx:1.20.1-alpine

五、拓展,如何声明式创建docker registry类型的secret资源
1,【-o yaml】模仿系统声明式的写法
就是将已经创建好的docker registry资源方向使用yaml格式查看;
[root@k8s231 secrets]# kubectl get secrets xinjizhiwa-harbor -o yaml
apiVersion: v1
data:
.dockerconfigjson: eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19
kind: Secret
metadata:
creationTimestamp: "2024-02-14T05:08:30Z"
name: xinjizhiwa-harbor
namespace: default
resourceVersion: "597638"
uid: 33a3d025-047f-4d22-be5e-b92ed97b3310
type: kubernetes.io/dockerconfigjson
2,base64反向编译查看内容
[root@k8s231 ~]# echo eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 | base64 -d
{"auths":{"harbor.xinjizhiwa.com":{"username":"admin","password":"1","email":"123@qq.com","auth":"YWRtaW46MQ=="}}}
[root@k8s231 ~]# echo YWRtaW46MQ== | base64 -d
admin:1
也就是说,dacker registy使用了两次base64的编码;
3,根据上述信息,自己编辑secret声明式资源清单
[root@k8s231 ~]# vim docker.yaml
apiVersion: v1
kind: Secret
metadata:
name: xinjizhiwa-harbor02
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19
了解到:私有仓库的镜像拉取secret资源的使用即可;
#######################################################################3
编译过程:二次base64编译方向过程
[root@k8s233 ~]# echo -n eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 |base64 -d
{"auths":{"harbor.xinjizhiwa.com":{"username":"admin","password":"1","email":"123@qq.com","auth":"YWRtaW46MQ=="}}}
[root@k8s233 ~]# echo -n YWRtaW46MQ== | base64 -d
admin:1
[root@k8s233 ~]# echo -n '{"auths":{"harbor.xinjizhiwa.com":{"username":"admin","password":"1","email":"123@qq.com","auth":"YWRtaW46MQ=="}}}' | base64
eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBh
c3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19
相关文章:
07-k8s中secret资源02-玩转secret
一、回顾secret资源的简单实用 第一步:将想要的数据信息【key:value】中的value值,使用base64编码后,写入secret资源清单中; 第二步:创建secret资源; 第三步:pod资源引用secret资源&…...
HTTP特性
大家好我是苏麟 , 今天说说HTTP特性. 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 到目前为止,HTTP 常见到版本有 HTTP/1.1,HTTP/2.0,HTTP/3.0,不同版本的 HTTP 特性是不一样的。 这里先用 HTTP/1.1 版本给大家介…...
ARM 之十六 详解 CMSIS 版本变迁、各组件使用示例
目前,CMSIS 已经发展到了第六版,其目录结构也发生了重大的变化。在不断发展中,很多原来 CMSIS 的组件被不断独立出去,并因此成立了很多开源社区,今天就来学习一下! 由于 CMSIS 已经包含了相当丰富的文档,因此,本文重点学习版本之间的变化以及一些实际使用示例。 什么是…...
【北京游戏业:出海竞争实力全面】
本文将深入分析北京的游戏行业发展。在上海、广州、北京、深圳、成都、杭州、福建七大游戏产业中心城市中,北京无疑是出海竞争力最强的游戏产业集群。本文将全面剖析北京游戏行业的发展现状。 北京是中国游戏产业的发源地。拥有从游戏引擎到美术设计等完整的产业链…...
课程大纲:图像处理中的矩阵计算
课程名称:《图像处理中的矩阵计算》 课程简介: 图像处理中的矩阵计算是图像分析与处理的核心部分。本课程旨在教授学员如何应用线性代数中的矩阵计算,以实现各种图像处理技术。我们将通过强调实际应用和实践活动来确保学员能够理解和掌握这些…...
【Go语言】Go语言的数据类型
GO 语言的数据类型 Go 语言内置对以下这些基本数据类型的支持: 布尔类型:bool 整型:int8、byte、int16、int、uint、uintptr 等 浮点类型:float32、float64 复数类型:complex64、complex128 字符串:st…...
2024年2月19日 - mis
当需要在两个或多个子模式间插入文本时,这个特性尤其有用。这里有个脚本,它使用子模式在大数字中插入逗号。 $ echo "1234567" | sed { > :start > s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/ > t start > } 1,234,567 $ 这个脚本将匹…...
【JavaWeb】网上蛋糕商城-项目搭建
学习目标 了解网上蛋糕商城的项目需求 了解网上蛋糕商城的功能结构 熟悉E-R图和数据表的设计 熟悉项目环境的搭建 通过前面章节的学习,相信读者应该已经掌握了Web开发的基础知识,学习这些基础知识就是为开发Web网站奠定基础。如今,电子商…...
【Flink状态管理五】Checkpoint的设计与实现
文章目录 1. Checkpoint的整体设计2. Checkpoint创建源码解析2.1. DefaultExecutionGraphBuilder.buildGraph2.2. ExecutionGraph.enableCheckpointing 由于系统原因导致Flink作业无法正常运行的情况非常多,且很多时候都是无法避免的。对于Flink集群来讲,…...
How to install a specific version of a package in R
How to install a specific version of a package in R 在使用R语言完成数据分析的过程中,很多时候,因为项目实际需要,我们应该指定某些库文件的安装包的版本,这个时候,我们可以基于devtools包中的函数install_version…...
SIGSEGV 段错误
SIGSEGV是在Unix/Linux系统中表示"Segmentation Fault"(分段错误)的信号。当一个进程访问未分配给它的内存、访问超出其内存边界或者访问不允许的内存区域时,就会产生SIGSEGV信号,导致进程被操作系统终止。 SIGSEGV的常…...
OpenCV 4基础篇| OpenCV简介
目录 1. 什么是OpenCV2. OpenCV的发展历程3. 为什么用OpenCV4. OpenCV应用领域5. OpenCV的功能模块5.1 基本模块5.2 扩展模块5.3 常用函数目录 1. 什么是OpenCV OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它…...
Vue常用内置指令,代码Demo演示和讲解
文章目录 一、v-text二、v-html三、v-bind四、v-model五、v-on六、v-show七、v-if、v-else八、v-for九、v-cloak 一、v-text 作用,更改标签的显示值使用 v-text 会读取 data中的变量值如果变量存在替换原来的值,如果不存在则报错 <!DOCTYPE html>…...
Spring设计模式之工厂模式创建Bean对象
BeanFactory和Application是Spring容器中创建和管理Bean对象的接口,但是它们的实现方式不同。 BeanFactory: BeanFactory采用延迟初始化策略,只有应用程序向容器请求特定的Bean时才创建该Bean对象。它的启动速度很快,但在程序运…...
Elasticsearch 别名(Aliases)的作用
Elasticsearch 8.4.3 别名(Aliases) 一. 介绍二. 别名的优势三. 别名的基本操作3.1 创建别名3.2 查询别名关联的索引3.3 删除别名3.4 更新别名3.5 通过别名查询数据 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接…...
基于vue的个性化推荐餐饮系统Springboot
项目:基于vue的个性化推荐餐饮系统Springboot 摘要 现代信息化社会下的数据管理对活动的重要性越来越为明显,人们出门可以通过网络进行交流、信息咨询、查询等操作。网络化生活对人们通过网上购物也有了非常大的考验,通过网上进行点餐的人也…...
量子计算:数据安全难题
当今数字技术面临的最大挑战之一是安全系统和数据。为此,人们设计了复杂的算法来加密数据并通过称为对称加密的框架来保护数据。虽然这已被证明是成功的,但量子计算的进步(利用量子力学比传统计算机更快地解决复杂问题)可能会彻底…...
CCF-B类SGP‘24 4月10日截稿!速速行动!
会议之眼 快讯 第22届SGP(Eurographics Symposium on Geometry Processing)即欧洲图形学几何处理专题讨论会将于 2024 年 6月24 -日至26日在美国麻省理工学院举行!SGP是传播几何处理新研究想法和尖端成果的首要学术会议。作为该领域的重要学术盛事,SGP会…...
阿里云服务器安装MySQL、Apache、PHP
节日期间突然想要自己搭建一个个人网站,于是在阿里云申请了一个可以免费使用3个月的服务器,申请的云市场产品Wordpress平台( ALinux3 LNMP PHP7.4)。官方教程使用的CentOs系统,和我申请的ALinux3操作有一些差异&#x…...
Rust基础拾遗--并发和异步编程
Rust基础拾遗 前言1.并发1.1 分叉与合并并行1.1.1 启动与联结1.1.2 跨线程错误处理1.1.3 跨线程共享不可变数据1.1.4 rayon 1.2 通道1.2.1 发送值1.2.2 接收值1.2.3 运行管道1.2.4 通道的特性与性能1.2.5 线程安全:Send与Sync 1.3 共享可变状态 2.异步编…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
