07-k8s中secret资源02-玩转secret

news2024/12/25 0:00:58

一、回顾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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1452090.html

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

相关文章

VMware Workstation 17.0 虚拟机安装MS-DOS 7.1完整详细步骤图文教程

VMware Workstation 17.0 虚拟机安装MS-DOS 7.1完整详细步骤图文教程 一、配置MS-DOS虚拟机机器环境二、安装MS-DOS磁盘操作系统 一、配置MS-DOS虚拟机机器环境 1.打开VMware Workstation Pro 2.新建虚拟机 3.建议选择【典型】,之后点击【下一步】 关于【自定义…

嵌入式Qt Qt中的信号处理

一.Qt中的信号处理 Qt消息模型: - Qt封装了具体操作系统的消息机制 - Qt遵循经典的GUI消息驱动事件模型 Qt中定义了与系统消息相关的概念; Qt中的消息处理机制: Qt的核心 QObject::cinnect函数: Qt中的“新”关键字: 实验1 初探…

[职场] 会计学专业学什么 #其他#知识分享#职场发展

会计学专业学什么 会计学专业属于工商管理学科下的一个二级学科,本专业培养具备财务、管理、经济、法律等方面的知识和能力,具有分析和解决财务、金融问题的基本能力,能在企、事业单位及政府部门从事会计实务以及教学、科研方面工作的工商管…

RK3568笔记十七:LVGL v8.2移植

若该文为原创文章,转载请注明原文出处。 本文介绍嵌入式轻量化图形库LVGL 8.2移植到Linux开发板ATK-RK3568上的步骤。 主要是参考大佬博客: LVGL v8.2移植到IMX6ULL开发板_lvgl移植到linux-CSDN博客 一、环境 1、平台:rk3568 2、开发板:…

Java解决下降路径最小和

Java解决下降路径最小和 01 题目 给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列…

net6 core webapi部署到iis

1.設定發佈的選項 2.安裝Hosting Bundle .NET Core 託管捆綁包是 .NET Core 執行時期和ASP.NET Core 模組的安裝程式。該捆綁包允許 ASP.NET Core 應用程式與 IIS 一起運行。 3.設定網站

自动更改由VSCode调试器创建的默认launch.json文件

File -> Preference -> Settings 修改下面的部分

SpringCloud之Feign发送Http请求

文章目录 http客户端Feign使用步骤自定义Feign的配置Feign的性能优化Feign的性能优化-连接池配置 Feign的最佳实践 http客户端Feign Feign的介绍: Feign是一个声明式的http客户端,官方地址:https:/github.com/OpenFeign/feign 其作用就是帮助…

GPT-4对编程开发的支持

在编程开发领域,GPT-4凭借其强大的自然语言理解和代码生成能力,能够深刻理解开发者的意图,并基于这些需求提供精准的编程指导和解决方案。对于开发者来说,GPT-4能够在代码片段生成、算法思路设计、模块构建和原型实现等方面给予开…

openGauss学习笔记-220 openGauss性能调优-确定性能调优范围-查询最耗性能的SQL

文章目录 openGauss学习笔记-220 openGauss性能调优-确定性能调优范围-查询最耗性能的SQL220.1 操作步骤 openGauss学习笔记-220 openGauss性能调优-确定性能调优范围-查询最耗性能的SQL 系统中有些SQL语句运行了很长时间还没有结束,这些语句会消耗很多的系统性能&…

Web项目利用MybatisPlus进行分页查询

之前在写博客系统前台页面的时候,遇到了利用mp进行分页查询的情况,由于涉及到的知识点相对较为重要,固写一篇博客以此巩固。 一、功能需求 在首页和分类页面都需要查询文章列表。 首页:查询所有的文章分类页面:查询…

网络原理-TCP_IP(6)

网络层 在复杂的网络环境中确定一个合适的路径. IP协议 与TCP协议并列,都是网络体系中最核心的协议. 基本概念 主机:配有IP地址,但是不进行路由控制的设备; 路由器:即配有IP地址,又能进行路由控制; 节点:主机和路由器的统称; 协议头格式 4位版本号(version):指定IP协议的版…

基于边缘计算的智能家居能源管理系统

一、项目背景 随着智能家居设备的普及,能源消耗问题日益凸显。为了更有效地管理家庭能源使用,减少浪费,并可能实现能源自给自足,我们提出了基于边缘计算的智能家居能源管理系统 该系统能够实时监控和分析家庭能源消耗数据&#xf…

java 线程安全介绍

所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。 那么,何谓可见性? 多个线程之间是不能互相传递数据通信的,它们之间的沟通只能通过共享变量…

人工智能学习与实训笔记(一):零基础理解神经网络

目录 一、什么是神经网络模型 二、机器学习的类型 2.1 监督学习 2.2 无监督学习 2.3 半监督学习 2.4 强化学习 三、网络模型结构基础 3.1 单层网络 ​编辑 3.2 多层网络 3.3 非线性多层网络 四、 回归问题实操:使用Python和NumPy实现波士顿房价预测任务 一…

云计算基础-虚拟化概述

虚拟化概述 虚拟化是一种资源管理技术,能够将计算机的各种实体资源(如CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来并可供分割、组合为一个或多个逻辑上的资源。这种技术通过在计算机硬件上创建一个抽象层,将单台…

latex 论文表格

问题 latex 中想制作论文常见的表格&#xff0c;整理自己常用模板&#xff0c;与常用命令。 命令 调整行高 \renewcommand{\arraystretch}{1.3}调整列宽 \begin{tabular}{ m{3.1cm}<{\centering} m{0.8cm}<{\centering} m{0.8cm}<{\centering} m{0.8cm}<{\c…

政安晨:【示例演绎】【Python】【Numpy数据处理】快速入门(四)—— 函数方法

准备工作 这是Numpy数据处理的示例演绎系列文章的第四篇&#xff0c;我的前三篇文章为&#xff1a; 政安晨&#xff1a;【示例演绎】【Python】【Numpy数据处理】快速入门&#xff08;一&#xff09;https://blog.csdn.net/snowdenkeke/article/details/136125773政安晨&#…

【数据结构之排序算法】

数据结构学习笔记---010 数据结构之排序算法1、排序的基本概念及其运用1.1、常见排序算法的实现2、插入排序的实现2.1、直接插入排序2.1.1、直接插入排序的实现2.1.1.1、直接插入排序InsertSort.h2.1.1.2、直接插入排序InsertSort.c2.1.1.3、直接插入排序main.c2.1.2、直接插入…

BulingBuling - 《工作中的焦虑》 [ Anxiety at Work ]

工作中的焦虑 帮助团队建立复原力、处理不确定性和完成任务的8项策略 作者&#xff1a;阿德里安-戈斯蒂克、切斯特-埃尔顿和安东尼-戈斯蒂克 Anxiety at Work 8 Strategies to Help Teams Build Resilience, Handle Uncertainty, and Get Stuff Done By Adrian Gostick and…