利用io.fabric8.kubernetes的api创建secret

2024-01-30 16:32

本文主要是介绍利用io.fabric8.kubernetes的api创建secret,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:自己在做这块的时候发现这方面的资料网上不太多,所以通过看书和网上搜索总结了点东西,方便大家使用

一.Secret类型

Secret主要是用来保管私密数据用的,所以数据(data)就是最重要的,而类型(type)决定了数据保存的方式,所以重点说一下类型(type)。

1.Opaque 

这种类型通过base64的编码方式来存储数据,是key:value这种格式,如果不对secret进行设置,那么默认的就是这种类型。

这种类型有点事看着比较直观,但是缺点是加密型很弱。

2.kubernetes.io/dockerconfigjson

这种类型用来存储私有的docker-registy认证信息,对整个存储信息进行base64编码,我的需求就是用这种方式,所以本文主要是讲这种类型。

3.kubernetes.io/service-account-token

 用于被serviceaccount引用。未使用过,这里就不多描述。

二、主要代码

//注意()中的内容对应yaml文件中的内容
//这里获取连接k8s的对象,这部分在这章不进行详解      
client = k8sClientService.getClientByProjectId(projectId);//创建Secret对象
Secret secret = new Secret();//设置库的使用版本(apiVersion: v1)
secret.setApiVersion("v1");//设置对象类型(kind: Secret)
secret.setKind("Secret");//创建metadata对象(metadata:)
ObjectMeta om = new ObjectMeta();//设置secret名称(name:) 注意secret的名称不能含有大写字母,只能是小写字母、数字、中横杠、点
om.setName("test");//设置secret所在namespace(namespace:)
om.setNamespace("orz");//添加进metadata对象
secret.setMetadata(om);//Opaque的方式装载data
/*** data:user: MTIzNDU2password: MTIzNDU2*/
//加密对象(在java8后,都用java.util下的这个对象,效率很高)
//Base64.Encoder encoder = Base64.getEncoder();//String user = "admin";
//byte[] userByte = user.getBytes();
//String enuser = encoder.encodeToString(userByte);//String password = "admin";
//byte[] passwdByte = passwd.getBytes();
//String enpasswd = encoder.encodeToString(passwdByte);//将加密好的数据放入map中
//Map<String, String> map = new HashMap<>();
//map.put("user", enuser);
//map.put("password", enpasswd);//使用kubernetes.io/dockerconfigjson的方式来装载data
/*** data:.dockerconfigjson: XXX*///将数据格式化一下
/*** {auths : {registryUrl : {user : name,password : password}}}*/
String dockerCfg = String.format("{ " +" \"auths\": { " +"  \"%s\": { " +"   \"user\": \"%s\", " +"   \"passwd\": \"%s\", " +"   \"email\": \"%s\", " +"  } " +" } " +"}",
address,
user,
passwd,
email
);//必须把数据转化成base64格式的,不然创建会报错
byte[] dockerCfgByte = dockerCfg.getBytes();
dockerCfg = encoder.encodeToString(dockerCfgByte);Map<String, String> map = new HashMap<>();
map.put(".dockerconfigjson", dockerCfg);//添加数据到data
secret.setData(map);//设置secret类型
secret.setType("kubernetes.io/dockerconfigjson");//创建secret
client.secrets().create(secret);

 

这篇关于利用io.fabric8.kubernetes的api创建secret的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加