K8S-Secret資源對象

目錄

一、Secret概述

二、Secret 類型

kubectl 創建類型

三、Secret 使用

Opaque 類型 Secret 的使用

創建

yaml


一、Secret概述

k8s secrets用于存儲和管理一些敏感數據,比如密碼,token,密鑰等敏感信息。它把 Pod 想要訪問的加密數據存放到 Etcd 中。然后用戶就可以通過在 Pod 的容器里掛載 Volume 的方式或者環境變量的方式訪問到這些 Secret 里保存的信息了。

Secret 類似于 ConfigMap,但專門用于保存機密數據。

二、Secret 類型

內置類型用法
Opaque用戶定義的任意數據
kubernetes.io/service-account-tokensymotion服務賬號令牌
kubernetes.io/dockercfg~/.dockercfg 文件的序列化形式
kubernetes.io/dockerconfigjson~/.docker/config.json 文件的序列化形式
kubernetes.io/basic-auth用于基本身份認證的憑據
kubernetes.io/ssh-auth用于 SSH 身份認證的憑據
kubernetes.io/tls用于 TLS 客戶端或者服務器端的數據
bootstrap.kubernetes.io/token啟動引導令牌數據

kubectl 創建類型

[root@k8s-master01 ~]# kubectl create secret dotfile -h
Create a secret using specified subcommand.
?
Available Commands:docker-registry ? 創建一個給 Docker registry 使用的 secretgeneric ? ? ? ? ? Create a secret from a local file, directory, or literal valuetls ? ? ? ? ? ? ? 創建一個 TLS secret
?
Usage:kubectl create secret [flags] [options]
?
Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).
  • docker-registry: 連接私有鏡像倉庫的憑證(據)

  • generic: 常見 secret, 該類型 secret 與 configmap使用相同

  • tls: 提供 tls 證書, 在 service mesh 中自動掛載

三、Secret 使用

使用場景:

  • 設置容器的環境變量

  • 向 Pod 提供 SSH 密鑰或密碼等憑據

  • 允許 kubelet 從私有鏡像倉庫中拉取鏡像

Opaque 類型 Secret 的使用

創建
[root@k8s-master ~]# kubectl get secrets -n calico-apiserver 
NAME                     TYPE     DATA   AGE
calico-apiserver-certs   Opaque   2      7d[root@k8s-master ~]# kubectl describe secrets -n calico-apiserver 
Name:         calico-apiserver-certs
Namespace:    calico-apiserver
Labels:       <none>
Annotations:  <none>Type:  OpaqueData
====
tls.crt:  2530 bytes
tls.key:  1679 bytes[root@k8s-master ~]# kubectl create secret 
docker-registry  (創建一個給 Docker registry 使用的 Secret)
generic          (Create a secret from a local file, directory, or literal value)
tls              (創建一個 TLS secret)#它的選項跟configmap是一樣的
[root@k8s-master ~]# kubectl create secret generic s1 --from-
--from-env-file  (Specify the path to a file to read lines of key=val pairs to create a secret.)
--from-file      (Key files can be specified using their file path, in which case a default name will b…)
--from-literal   (Specify a key and literal value to insert in secret (i.e. mykey=somevalue))#創建的secret的名字可以自定義,這里定義名稱為s1
[root@k8s-master ~]# kubectl create secret generic s1 --from-literal k1=v1
secret/s1 created[root@k8s-master ~]# kubectl describe secrets s1
Name:         s1
Namespace:    default
Labels:       <none>
Annotations:  <none>Type:  OpaqueData    #數據
====
k1:  2 bytes  #所占字節數#中文字符,一個字符等于三個字節
[root@k8s-master ~]# kubectl create secret generic s2 --from-literal k2=超哥
secret/s2 created[root@k8s-master ~]# kubectl describe secrets s2
Name:         s2
Namespace:    default
Labels:       <none>
Annotations:  <none>Type:  OpaqueData
====
k2:  6 bytes

明文加密,密文解密簡單演示

secret它是可以自動解密的

在創建過程它解密中不可以使用明文,會報錯,所以要用密文

#加密
[root@k8s-master ~]# echo 1234 | base64
MTIzNAo=#解密
[root@k8s-master ~]# echo MTIzNAo= | base64 -d
1234#像這種明文解密是會報錯的
#所以不能使用明文加密
[root@k8s-master ~]# echo 12345 | base64 -d
�m�64: 無效的輸入#查看secret中的s1詳細信息
[root@k8s-master ~]# kubectl get secrets s1 -o yaml
apiVersion: v1
data:k1: djE=    #把k1加密為這個
kind: Secret
metadata:creationTimestamp: "2025-08-18T16:23:37Z"name: s1namespace: defaultresourceVersion: "836505"uid: 7f0863fc-82a2-409e-abf6-6de72a20c81b
type: Opaque[root@k8s-master ~]# echo djE= | base64 -d
v1[root@k8s-master ~]#     #之前我們定義了k1等于v1,這里base64解密出來后就是v1
yaml

以 yaml 方式創建需要你提前進行 base64

secret它是可以自動解密的

在創建過程它解密中不可以使用明文,會報錯,所以要用密文

#yaml文件
以 yaml 方式創建需要你提前進行 base64[root@k8s-master01 ~]# echo -n "admin" | base64
YWRtaW4=
[root@k8s-master01 ~]# echo -n "123456" | base64
MTIzNDU2#創建yaml文件,添加下面這段就行 apiVersion: v1
kind: Secret
metadata:name: secret-volumenamespace: default
type: Opaque
data:password: MTIzNDU2username: YWRtaW4=
immutable: true

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93717.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

lua入門以及在Redis中的應用

1.基本語法1.1變量lua的變量有&#xff1a;無效值nil&#xff0c;布爾值boolean&#xff0c;數字number、字符串string、函數function、自定義類型userdata、線程thread、表table&#xff08;key-value結構&#xff09;1.2循環數值循環for i起始值, 結束值 ,間隔值 do---option…

淘寶電商大數據采集【采集內容||采集方法|工具||合規性||應用】

淘寶電商大數據采集是指通過技術手段、工具或平臺&#xff0c;系統性收集淘寶&#xff08;及旗下天貓等&#xff09;生態內的各類數據&#xff0c;用于分析市場趨勢、用戶行為、商品表現、競品動態等&#xff0c;為電商運營、決策提供數據支持。以下從采集內容、工具方法、合規…

ROS2核心模塊

1.創建工作空間先創建工作空間ws01_plumbing&#xff0c;終端下進入工作空間的src目錄&#xff0c;執行如下命令&#xff1a;ros2 pkg create --build-type ament_cmake base_interfaces_demo2.話題通信話題通信是ROS中使用頻率最高的一種通信模式&#xff0c;話題通信是基于發…

Mac 上安裝并使用 frpc(FRP 內網穿透客戶端)指南

一、先裝好 Homebrew&#xff08;macOS 的包管理器&#xff09;打開終端&#xff08;Terminal&#xff09;&#xff0c;先裝命令行開發工具 xcode-select --install彈窗點“安裝”&#xff0c;等待 3~5 分鐘。一鍵安裝 Homebrew /bin/bash -c "$(curl -fsSL https://raw.g…

04_接口與包管理

第4課:接口與包管理 課程目標 深入理解Go語言接口的概念和用法 掌握接口的組合和空接口 學會使用Go Modules進行包管理 理解包的導入和導出規則 1. 接口基礎 1.1 接口定義 // 基本接口定義 type Shape interface {Area() float64Perimeter()

福昕PDF編輯軟件高級版下載與詳細圖文安裝教程!!

軟件下載 【軟件名稱】&#xff1a; 福昕PDF編輯器高級版 【軟件大小】&#xff1a;668.9MBa a【系統要求】&#xff1a;awin10/win11或更高 福昕&#xff0c;軟件下載&#xff08;夸克網盤需手機打開&#xff09;&#xff1a;&#xff1a;福昕丨夸克網盤-資源免費下載 軟件介…

利用無事務方式插入數據庫解決并發插入問題(最小主鍵id思路)

一、背景 由于某業務需要回退某產品數據緩存列表Asset資源&#xff0c;主任務執行后&#xff0c;通過并行執行批量子任務進行數據回退&#xff0c;子任務中會記錄緩存列表Asset和緩存列表行AssetLine數據&#xff0c;并行執行過程會出現緩存列表行AssetLine重復插入問題&#…

如何制作免費的比特幣冷錢包

本文主要從技術上討論冷錢包的操作機制和原理&#xff0c;并不作為投資建議。對于國外的比特幣玩家&#xff0c;或者打算長期囤幣來對抗通貨膨脹的&#xff0c;或者是想短期持有的&#xff0c;那么將比特幣存儲在哪里是一個Common的問題。一般是兩類選擇。第一種選擇是存儲在交…

新手向:Python制作簡易音樂播放器

使用Python構建簡易音樂播放器音樂播放器是現代數字生活中不可或缺的工具&#xff0c;從智能手機到電腦系統&#xff0c;幾乎每個設備都內置了音樂播放功能。對于Python初學者來說&#xff0c;開發一個簡易的音樂播放器是一個很好的實踐項目&#xff0c;既能學習編程基礎&#…

【StarRocks】TabletChecker邏輯

TabletChecker是StarRocks FE里的一個組件,它的主要工作是檢查出所有的處于不健康狀態的tablets。 注意,它的職責就是check(檢查)。 至于tablet修復、均衡等調度工作不是TabletChecker的職責。 相關配置項 // 20秒執行一次check,代碼里是執行runAfterCatalogReady()publi…

低空經濟展 | 優翼仿真攜eVTOL全動飛行模擬器亮相2025深圳eVTOL展

2025深圳eVTOL展將于2025年9月23-25日在深圳坪山燕子湖國際會展中心舉行。展會以“低空經濟?eVTOL?航空應急救援?商載大型無人運輸機”為主題&#xff0c;以 “2天大會3天展覽項目考察飛行表演頒獎盛典項目路演”的多元模式&#xff0c;打造覆蓋 eVTOL全產業鏈的專業化合作平…

AI驅動商業革新:開源大模型與零售精準營銷引領產業升級

在當今數字化浪潮中&#xff0c;AI 正以迅猛之勢滲透至商業的每一處脈絡&#xff0c;掀起一場影響深遠的變革風暴&#xff0c;從根本上改寫著商業運轉的底層邏輯&#xff0c;創造出無數嶄新的商業契機。基礎模型領域&#xff0c;新的突破正在重塑行業格局。Meta 旗下的 LLaMA 3…

【表的操作】

文章目錄 一、查看所有表 1、語法 二、創建表 1、語法 2、?例 3、表在磁盤上對應的?件 4、創建數據加時使?校驗語句[if not exists] 三、查看表結構 1、語法 2、?例 四、修改表 1、語法 2、?例 (1)向表中添加?列 (2)修改某列的?度 (3)重命名某列 (4)刪除某個字段…

【Java后端】Spring Boot 全局異常處理最佳實踐

Spring Boot 全局異常處理最佳實踐 在日常開發中&#xff0c;異常處理幾乎是繞不過去的一個話題。尤其在 后端 API 項目 中&#xff0c;如果沒有統一的異常處理機制&#xff0c;很容易出現以下問題&#xff1a; Controller 層代碼里充斥著 try-catch&#xff0c;顯得冗余。前端…

K8S-Configmap資源

目錄 一、核心概念? ?定義? ?核心價值? ?與Secret的區別? ?二、核心特性? ?數據存儲? ?生命周期? ?作用域? 什么是 Configmap&#xff1f; Configmap 能解決哪些問題&#xff1f; ConfigMap 的主要作用 三、命令行直接創建 四、通過文件創建&#xf…

MySQL InnoDB事務acid特性的原理和隔離級別的實現原理

InnoDB存儲引擎 InnoDB存儲結構表空間 則每張表都會有一個表空間&#xff08;xxx.ibd&#xff09;&#xff0c;一個mysql實例可以對應多個表空間 系統表空間 存儲數據字典&#xff08;表結構定義、索引信息等&#xff09;、Change Buffer、Doublewrite Bufferundo log&#xff…

Linux系統之部署nullboard任務管理工具

Linux系統之部署nullboard任務管理工具一、nullboard介紹1.1 nullboard簡介1.2 任務看板工具介紹1.3 nullboard使用場景二、本次實踐介紹2.1 本地環境規劃2.2 本次實踐介紹三、安裝httpd軟件3.1 檢查yum倉庫3.2 安裝httpd軟件3.3 啟動httpd服務3.4 查看httpd服務狀態3.5 防火墻…

Qt設置軟件使用期限【新版防修改系統時間】

在工業軟件或其他領域中&#xff0c;經常會對軟件進行授權&#xff0c;軟件需要付費進行有期限的使用。以下是我用Qt設計的設置軟件使用期限的兩種方案。 主體思想&#xff1a; 1.軟件需要綁定機器&#xff0c;讓用戶無法通過復制在另一臺機器上運行。 2.由廠家提供激活碼供用戶…

【JavaEE】多線程(線程安全問題)

有些代碼在單個線程環境下執行正確&#xff0c;如果同樣的代碼在多個線程下同時執行可能就會出現問題&#xff0c;這個就是線程安全問題&#xff08;或者稱線程不安全問題&#xff09;&#xff0c;簡而言之就是&#xff1a;線程安全問題是由于多線程出現的問題&#xff0c;原因…

NodeJs 桌面開發學習 electron.js (一)

今天開始學習NodeJs 關于 桌面應用的內容&#xff0c;長期目標是 React electron 實現一個桌面應用。今天先實現一個簡單的目標&#xff0c;搭建一個Electron ts 項目架構&#xff0c;并實現主業務線程 和前端渲染線程的交互一、代碼結構和配置例子項目結構大致如下&#xff…