Kubernetes Secrets

2023-10-21 23:58
文章标签 kubernetes secrets

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

Kubernetes Secrets

  • K8S Secrets配置原理
  • 演示部署架构
  • 发布命令
  • Secrets的安全性

K8S Secrets配置原理

K8S Secrets用于支持敏感数据配置。Secrets是一种特殊的配置,可以提供较安全的存储和访问配置的机制。同样支持两种常见方式和POD进行绑定:

  • 环境变量 - 跟ConfigMap一样,如果以环境变量的方式跟POD绑定,配置更新的时候,需要重启POD来使用最新的secret.
  • 存储卷挂载到POD - Secrets可以做到热加载,不必要重启POD。

在这里插入图片描述

演示部署架构

在这里插入图片描述
结合上一篇文章中的所有yaml文件。K8S ConfigMap配置

我们将数据库的用户名,密码存到petclinic-secret.yml文件中。

修改1个文件:petclinic-config.yml
增加2个文件:petclinic-secret.yml
更新1个文件:petclinic-svc.yml

petclinic-config.yml 文件内容如下:

apiVersion: v1
kind: ConfigMap
metadata:name: petclinic-config-v2
data:SPRING_PROFILES_ACTIVE: mysqlDATASOURCE_URL: jdbc:mysql://mysql/petclincDATASOURCE_INIT_MODE: always# 下面TEST_CONFIG 只是为实验演示效果用,跟petclinic应用没有关系,可以不加。TEST_CONFIG: test_config_v2

petclinic-secret.yml文件内容如下:
注: 如果选择data,需要用base64将字符编码加密。方法如下:

echo -n petclinic | base64

apiVersion: v1
kind: Secret
metadata:name: petclinic-secret
type: Opaque
#data:
#  DATASOURCE_USERNAME: cm9vdA==
#  DATASOURCE_PASSWORD: cGV0Y2xpbmlj
stringData:DATASOURCE_USERNAME: rootDATASOURCE_PASSWORD: petclinic

petclinic-svc.yml文件内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:name: petclinic
spec:replicas: 1selector:matchLabels:app: petclinictemplate:metadata:labels:app: petclinicspec:containers:- name: petclinic# Run this imageimage: spring2go/spring-petclinic:1.0.0.RELEASEenvFrom:- configMapRef:name: petclinic-config-v2- secretRef:name: petclinic-secret
---
apiVersion: v1
kind: Service
metadata:# Unique key of the Service instancename: petclinic
spec:ports:# Accept traffic sent to port 80- name: http# port为集群内部服务前通信的端口port: 8080targetPort: 8080nodePort: 31080selector:# 下面标签app: petclinic表示本服务会路由指向所有app标签为petclinic的pod。app: petclinictype: NodePort

再准备好mysql-svc.yml文件:

apiVersion: v1
kind: Pod
metadata:name: mysqllabels:app: mysql
spec:containers:- name: mysql#mysql官方5.7镜像image: mysql:5.7env:#支持启动的时候配置数据库- name: MYSQL_ROOT_PASSWORD#root用户密码,实际生产环境要配置在ConfigMap/Secret中。value: petclinic- name: MYSQL_DATABASE#创建数据库value: petclinic
---
apiVersion: v1
kind: Service
metadata:name: mysql
spec:selector:app: mysqlports:- name: tcpport: 3306targetPort: 3306type: ClusterIP

发布命令

发布配置文件

kubectl apply -f petclinic-config.yml
kubectl apply -f petclinic-secret.yml
kubectl describe secret petclinic-secret
#用下面命令查看data,Stringdata已经转化成data,并且用base64加密。
kubectl get secret petclinic-secret -o yaml

发布mysql

kubectl apply -f mysql-svc.yml

发布petclinic

kubectl apply -f petclinic-svc.yml

查看

kubectl get all

浏览器校验 http://localhost:31080

登录POD验证配置信息

kubectl exec pod_name printenv

清理环境

kubectl delete cm petclinic-config-v2
kubectl delete secret petclinic-secret
kubectl delete deploy --all
kubectl delete svc --all
kubectl delete po --all

查看环境是否已干净

kubectl get all

Secrets的安全性

Secret是K8S提供的一种敏感信息配置对象,便于在微服务间共享敏感信息配置。

Secret仅提供有限安全:

  • 协作时防止敏感数据泄露
  • 为Secret资源设置单独安全访问策略

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



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

相关文章

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

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

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、工作原理 认证与授权:首先,请求者需要通过身份认证和权限授权。准入控制:随后

什么是Kubernetes RBAC?

什么是Kubernetes RBAC? 1、什么是RBAC?2、核心组件3、优势 💖The Begin💖点点关注,收藏不迷路💖 在Kubernetes集群中,RBAC(基于角色的访问控制)是保障系统安全的关键。它通过角色和绑定管理不同实体对资源的访问权限,具有显著优势: 1、什么是RBAC? RBAC是Kubernetes中用于控制访问权限的机制,通过定义