利用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

相关文章

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

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

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

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

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,可能带来安全风险。

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

容器编排平台Kubernetes简介

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