调用k8s API实现添加用户并授权
调用k8s api实现添加用户并授权一、k8s中根据用户名创建config文件在k8s中如果想给一个用户创建授权文件,并让用户可用通过该config文件操作k8s集群,流程如下
1、生成私钥和证书签名请求(CSR)
# 生成私钥
[root@k8s-master01 config]# openssl genrsa -out dujie.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
..................................................................+++++
...................................+++++
e is 65537 (0x010001)
# 生成证书签名请求(CSR)
[root@k8s-master01 config]# openssl req -new -key dujie.key -out dujie.csr -subj "/CN=username/O=organization ...
prometheus operator
prometheus operator此文包含prometheus-operator部署安装,收集相关指标、数据持久化、使用prometheusalert+alertmanager实现飞书、钉钉、邮箱等告警。
一、Prometheus介绍Prometheus 开源的系统监控和报警框架,本身也是一个时序数据库(TSDB)
1.1 prometheus特性
一个多维的数据模型,具有由指标名称和键值对标识的时序序列数据
使用PromQL查询和聚合数据,可以非常灵活的对数据进行检索
不依赖额外的数据存储,Prometheus本身就是一个时序数据库,提供本地存储和分布式存储,并且每个Prometheus都是自治的
应用程序暴露Metrics接口,Prometheus通过基于HTTP的Pull模型采集数据,同时可以使用PushGateway进行Push数据
Prometheus同时支持动态服务发现和静态配置发现目标机器
支持多种图形化和仪表盘,和Grafan绝配
1.2 prometheus架构
Prometheus Server
核心组件,主要负责一下功能:
数据抓取(Scraping): ...
使用rook-ceph部署高可用ceph集群
使用rook-ceph部署高可用ceph集群一、Rook介绍及安装注意 1:rook 的版本大于 1.3,不要使用目录创建集群,要使用单独的裸盘进行创建,也就是创建一个新的磁盘,挂载到宿主机,不进行格式化,直接使用即可。对于的磁盘节点配置如下:
注意 2:做这个实验需要高配置,每个节点配置不能低于 2 核 4G
注意 3:k8s 1.19 以上版本,快照功能需要单独安装 snapshot 控制器
1.1 Rook介绍Rook是一种开源的、云原生存储的编排器,可以为各种存储服务在云原生的环境中实现无缝先和,提供了所必须的平台、框架和服务;而Ceph是Rook所支持的众多存储的一种,在k8s环境中,Ceph基于Rook能够为应用提供块存储(Block Storage),对象存储(Object Storage)以及共享文件系统服务。
https://rook.io/docs/rook/v1.14/Getting-Started/quickstart/#prerequisites
1.2 下载Rook安装文件下载指定版本Rook
$ git clone --single-branch --b ...
记录AWS Oracle实例数据迁移的艰辛过程
最近公司在aws的项目要迁移到我们公司云平台,需要将aws上面的rds(oracle)实例迁移到本地云平台,遇到各种各样的问题,下面总结下遇到的所有问题及解决方法。我这边用了各种各样的方法进行迁移,最终才成功将数据迁回
方法1(失败):navicat 工具,因对oracle数据库不太熟悉,所以首先选择用工具直接同步,此过程步骤简单,只需要在工具上选择源库和目标库同步即可问题:
用工具导出速度很慢,1秒大概导出1000条左右,且会随着导出时长增加而增加
容易中断,我这边首次导出到60多w条数据时工具卡住,无法继续导出
数据导出不全,通过navicat导出发现大部分表数据不全,甚至有些表数据完全没有导入
基于上面遇到的问题,所以舍弃了该方法
方法2(失败):导出sql文件后,使用sqlplus导入sql文件可以用工具导出,我这边还是使用navicat导出sql文件,导出后如下图是每个表生成一个sql文件
使用sqlplus进入需导入数据的库中进行导入发现部分表报错了,报错原因是中有超过3000个字符长度的字段,而sqlplus不支持超过3000的,需要手动更改sql语句,因表数据量较大 ...
kubernetes platform后端开发-cluster相关组件
kubernetes platform后端开发-cluster相关组件一、接口定义1、namespacetype NamespaceService interface {
GetNamespaceList(ctx context.Context, request *structs.GetNamespaceListRequest) (*structs.NamespaceListResp, error)
DescribeNamespace(ctx context.Context, request *structs.DescribeNamespaceRequest) (*corev1.Namespace, error)
DeleteNamespace(ctx context.Context, request *structs.DeleteNamespaceRequest) error
CreateNamespace(ctx context.Context, request *structs.CreateNamespaceRequest) (*core ...
kubernetes platform后端开发-loadbalance相关组件
kubernetes platform后端开发-loadbalance相关组件一、接口定义1、Ingresstype IngressService interface {
GetIngressList(ctx context.Context, request *structs.GetIngressListRequest) (*structs.GetIngressListResp, error)
DescribeIngress(ctx context.Context, request *structs.DescribeIngressRequest) (*v1.Ingress, error)
CreateIngress(ctx context.Context, request *structs.CreateIngressRequest) (*v1.Ingress, error)
DeleteIngress(ctx context.Context, request *structs.DeleteIngressRequest) error
Up ...
kubernetes platform后端开发-workload
kubernetes platform后端开发-workload一、定义接口####### 首先创建interface文件,定义所有workload需要使用的接口apps/k8sclient/interface.go
package k8sclient
import (
"context"
"k8s-platform/apps/k8sclient/structs"
v1 "k8s.io/api/networking/v1"
//"k8s-platform/apps/k8sclient/structs"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
)
//
// PodService
// @Description: Pod相关接口
//
type PodService interface {
// 获取pod列表
GetPodsList(ctx context.Context, request *structs.Ge ...
kubernetes platform后端开发-项目初始
kubernetes platform后端开发-项目初始一、项目介绍项目简介:Kubernetes Platform 是一个基于 Go 语言开发的 Kubernetes 集群管理平台,利用 Kubernetes 官方提供的 client-go 库进行构建。该平台旨在简化 Kubernetes 集群的日常操作和管理工作,提供一个友好的用户界面,使得用户无需直接与 kubectl 或 Kubernetes API 交互,即可执行各种集群管理任务。
核心特征:
集群概览:提供集群的实时状态显示,包括节点、Pods、服务等关键信息。
资源管理:允许用户创建、更新、删除和查看各种 Kubernetes 资源,例如部署、服务、配置映射等。
日志查看:提供集群日志的检索和查看功能,帮助用户快速定位问题。
监控与警告:集成监控工具,展示集群性能指标,并在出现潜在问题时提供警告通知。
权限控制:支持 Kubernetes 的 RBAC,确保用户根据其角色访问和管理相应的资源。(未完成)
多集群支持:可以同时管理和切换多个 Kubernetes 集群,适用于跨区域或多云环境。
插件化架构:方便扩展新功能, ...
k8s管理系统项目前端-login
k8s管理系统项目前端-login<template>
<div class="login">
<!-- 用户登录卡片 -->
<el-card class="login-card">
<!-- <template #header>-->
<div class="login-card-header">
<h3 class="title">欢迎登录</h3>
</div>
<!-- </template>-->
<!-- 表单 -->
<el-form :model="loginForm" :rules="loginDataRules" ref="loginData">
<el-form-item prop="username">
<!-- 用户名 -->
<el-input prefix-icon="UserFill ...
k8s管理系统项目前端-workload
k8s管理系统项目前端-workload一、功能开发1、Deployment(1)功能列表、详情、新增、更新、删除、重启、修改副本数等
(2)Main布局
views/workload/deploymentView.vue
<template>
<!-- 新的 div 容器,使用flex布局对齐内容 -->
<div class="deployment-header" style="flex: 1">
<div class="left-section">
<span>命名空间:</span>
<el-select v-model="selectedNamespace" placeholder="请选择">
<el-option
v-for="namespace in namespaces"
:key="namespace"
:label="namespace"
:val ...