Kubernetes 中Secret

2024-05-15 10:04
文章标签 kubernetes secret

本文主要是介绍Kubernetes 中Secret,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1、创建 Secret
    • 1.1、通过 kubectl 命令行创建(例如,基于明文)
    • 1.2、通过 YAML 配置文件创建
  • 2、使用 Secret
    • 2.1、作为文件挂载
    • 2.2、作为环境变量
  • 3、注意事项

在 Kubernetes 中,Secret 是一种用来存储敏感信息的对象,如密码、OAuth 令牌和 SSH 密钥等。Secret 允许你将这些敏感数据安全地传递给 Pods 中的容器,而无需在配置文件或镜像中硬编码这些信息。Kubernetes 会对 Secret 数据进行加密存储,并在使用时解密。

1、创建 Secret

你可以通过多种方式创建 Secret,以下是两种常见的方法:

1.1、通过 kubectl 命令行创建(例如,基于明文)

kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=secretpassword

这会创建一个名为 my-secret 的 Secret,其中包含了两个键值对(username 和 password)。

1.2、通过 YAML 配置文件创建

对于更复杂的 Secret 或需要版本控制的情况,通常推荐使用 YAML 文件定义 Secret:

apiVersion: v1
kind: Secret
metadata:name: my-secret
type: Opaque # 默认类型,适用于不加密的密钥
data:username: YWRtaW4= # base64 编码的 "admin"password: c2VjcmV0cGFzc3dvcmQ= # base64 编码的 "secretpassword"

注意,数据字段需要 base64 编码。你可以使用 echo -n "your_value" | base64 命令进行编码。

2、使用 Secret

在 Pod 定义中,你可以通过 volume 或 environment variables 将 Secret 挂载到容器中:

2.1、作为文件挂载

apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: my-containerimage: my-imagevolumeMounts:- name: secret-volumemountPath: /var/secretsreadOnly: truevolumes:- name: secret-volumesecret:secretName: my-secret

2.2、作为环境变量

apiVersion: v1
kind: Pod
metadata:name: my-pod
spec:containers:- name: my-containerimage: my-imageenv:- name: USERNAMEvalueFrom:secretKeyRef:name: my-secretkey: username- name: PASSWORDvalueFrom:secretKeyRef:name: my-secretkey: password

3、注意事项

  • 尽管 Secret 数据在 etcd 中以加密形式存储,但在使用过程中(例如,挂载为文件时),它们是以明文形式存在的,因此仍然需要确保 Pod 的安全性和隔离性。
  • Secret 类型除了 Opaque 外,还有 kubernetes.io/tlskubernetes.io/dockerconfigjson 等特殊类型,分别用于 TLS 证书和 Docker 登录凭据。
  • 考虑使用外部 Secrets 管理解决方案,如 HashiCorp Vault,以增强安全性。

这篇关于Kubernetes 中Secret的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991521

相关文章

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

什么是Kubernetes PodSecurityPolicy?

@TOC 💖The Begin💖点点关注,收藏不迷路💖 1、什么是PodSecurityPolicy? PodSecurityPolicy(PSP)是Kubernetes中的一个安全特性,用于在Pod创建前进行安全策略检查,限制Pod的资源使用、运行权限等,提升集群安全性。 2、为什么需要它? 默认情况下,Kubernetes允许用户自由创建Pod,可能带来安全风险。

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据

什么是Kubernetes准入机制?

什么是Kubernetes准入机制? 1、工作原理2、常用组件 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的准入机制是API请求处理前的一道重要安全屏障。它通过一系列预定义的准入控制组件,对请求进行拦截和检查,确保只有合法且符合规范的请求才能继续执行。 1、工作原理 认证与授权:首先,请求者需要通过身份认证和权限授权。准入控制:随后