部署式文件系统Ozone对接Ranger KMS 实现TDE

2023-10-21 17:50

本文主要是介绍部署式文件系统Ozone对接Ranger KMS 实现TDE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

公司隐私计算的项目准备使用K8S来运行计算的任务和工作调度,隐私计算的源数据放到分布式文件系统中,通过对接Ranger KMS实现透明数据加密(Transparent Data Encryption,缩写TDE). 前面一篇文章(https://blog.csdn.net/lwlfox/article/details/121068645)已经实现了未开启TDE模式,这篇文章将介绍如何从非TDE模式切换到带TDE模式并与K8S 对接。

必读

https://blog.csdn.net/lwlfox/article/details/121068645icon-default.png?t=L9C2https://blog.csdn.net/lwlfox/article/details/121068645

修改集群配置

1. 将下面的文件复制到所有Ozone的节点中,我的环境中有4个节点。路径为: /opt/hadoop/etc/hadoop/core-site.xml 。

配置中的IP+端口,为KMS服务的地址,Ranger KMS的安装文档参考: Apache Ranger KMS 部署文档_偷闲小苑-CSDN博客

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration><property><name>hadoop.security.key.provider.path</name><value>kms://http@10.228.82.21:9292/kms</value></property>
</configuration>

KMS地址查看

 2. 重启管理节点上的所有服务(停止顺序: RECON->S3G->OM-SCM,启动顺序: SCM->OM->S3G->RECON)

#停止
[root@vm10-50-0-80 hadoop]# ozone --daemon stop recon
[root@vm10-50-0-80 hadoop]# ozone --daemon stop s3g
[root@vm10-50-0-80 hadoop]# ozone --daemon stop om
[root@vm10-50-0-80 hadoop]# ozone --daemon stop scm
#启动
[root@vm10-50-0-80 hadoop]# ozone --daemon start scm
[root@vm10-50-0-80 hadoop]# ozone --daemon stop om
[root@vm10-50-0-80 hadoop]# ozone --daemon stop s3g
[root@vm10-50-0-80 hadoop]# ozone --daemon stop recon

3. 重启所有3 个DATANODE节点 ,

ozone --daemon stop datanode
ozone --daemon start datanode

4. 检查所有3个DATANODE运行正常,在任意Ozone节点运行以下命令

ozone admin datanode list

5. 创建带KMS地址的ozone镜像

#root 登录到Master节点
git clone https://gitee.com/kevinliu_CQ/ozone-1-1-0-csi.git
cd ozone-1-1-0-csi/ozone-docker
vi core-site.xml #修改配置文件中的IP 和端口
docker build -t ozone-with-kms:1.1.0 -f Dockerfile_with_KMS .
docker tag ozone-with-kms:1.1.0 registry.cn-hangzhou.aliyuncs.com/imagesfromgoogle/ozone-with-kms:1.1.0 #tag为自己的镜像仓库
docker push registry.cn-hangzhou.aliyuncs.com/imagesfromgoogle/ozone-with-kms:1.1.0 #将镜像推送到自己的仓库中

6. 更新CSI使用的镜像

#root 登录到Master节点
git clone https://gitee.com/kevinliu_CQ/ozone-1-1-0-csi.git
cd ozone-1-1-0-csi/with-tde
vi csi-ozone-datanode-daemonset.yaml #将编排中的zone的镜像替换为刚刚构建的镜像
vi csi-ozone-provisioner-deployment.yaml #将编排中的zone的镜像替换为刚刚构建的镜像
kubectl apply -f . # 等待csi-daemontset和csi-provisioner更新完成

7. 创建加密区

#root登录Ozone 的SCM节点,执行以下命令
#其中test_key1为在KMS里面创建的Key
ozone sh bucket create -k test_key1 /s3v/encrypt 
[root@vm10-50-0-80 hadoop]# ozone sh bucket list /s3v
{"metadata" : { },"volumeName" : "s3v","name" : "encrypt","storageType" : "DISK","versioning" : false,"usedBytes" : 268435486,"usedNamespace" : 6,"creationTime" : "2021-10-31T07:53:09.803Z","modificationTime" : "2021-10-31T07:53:09.803Z","encryptionKeyName" : "test_key1",  #加密区使用的KMS Key"sourceVolume" : null,"sourceBucket" : null,"quotaInBytes" : -1,"quotaInNamespace" : -1
}

8. 向加密区写入数据

[root@vm10-50-0-80 hadoop]#ozone sh key put /s3v/encrypt/ENcryptedKey Readme.md

9. 制作挂载加密区的镜像

#root 登录到Master节点
git clone https://gitee.com/kevinliu_CQ/ozone-1-1-0-csi.git
cd ozone-TDE-docker
docker build -t ozone-client:1.0.0 .
docker tag ozone-client:1.0.0 registry.cn-hangzhou.aliyuncs.com/imagesfromgoogle/ozone-client:1.0.0 #tag为自建的容器仓库
docker push registry.cn-hangzhou.aliyuncs.com/imagesfromgoogle/ozone-client:1.0.0 #推送镜像到自己的仓库

 10. 挂载加密区并创建非加密区PVC

#root 登录到Master节点
git clone https://gitee.com/kevinliu_CQ/ozone-1-1-0-csi.git
cd pvc-test
kubectl apply -f ozone-client-pvc.yaml -f ozone-client-deployment.yaml

11. 登录到zone-client容器中进行加密区与非加密区的文件操作,客户端无感知是否为加密或未加密。/mnt为加密区  /data/为非加密区

[root@vm10-10-0-160 pvc-test]# kubectl exec -it ozone-client-6dc754db6c-cbnt7 bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.[root@ozone-client-6dc754db6c-cbnt7 /]# ls /data 
KK  Key
[root@ozone-client-6dc754db6c-cbnt7 /]# ls /mnt
KEVIN  KK
[root@ozone-client-6dc754db6c-cbnt7 /]# df -h /data
Filesystem                                Size  Used Avail Use% Mounted on
pvc-f8d7e8eb-26ea-44e1-a07f-8cf6cfee4cf1  1.0P     0  1.0P   0% /data
[root@ozone-client-6dc754db6c-cbnt7 /]# df -h  /mnt
Filesystem      Size  Used Avail Use% Mounted on
encrypt         1.0P     0  1.0P   0% /mnt

这篇关于部署式文件系统Ozone对接Ranger KMS 实现TDE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

el-select下拉选择缓存的实现

《el-select下拉选择缓存的实现》本文主要介绍了在使用el-select实现下拉选择缓存时遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录项目场景:问题描述解决方案:项目场景:从左侧列表中选取字段填入右侧下拉多选框,用户可以对右侧

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里