# my-k8s-api
**Repository Path**: spake/my-k8s-api
## Basic Information
- **Project Name**: my-k8s-api
- **Description**: 封装k8s的调用
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2023-03-31
- **Last Updated**: 2023-03-31
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# my-k8s-api
# 目录
1. 项目说明
1. 准备工作
2. 版本及对应的功能点
3. 目录结构说明
2. 当前API支持的资源说明
1. 版本资源
2. node资源
3. namespace资源
4. pod资源
5. deployment资源
6. service资源
7. hpa(水平自动扩缩容)资源
8. 日志查看接口
# 项目说明
该项目主要是通过`kubeapi`来实现对`kubernetes`集群进行管理
## 准备工作
* 准备kubectl文件:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#client-binaries
* 准备kubeconfig文件
## 版本及对应的功能点
* V1.0.0:支持版本信息,node资源,namespace资源,pod资源,deployment资源,service资源,statefulset资源,secret资源,configmap资源,hpa(水平扩缩容)资源,日志查看接口
## 目录结构说明
* cmd:通过kubectl调用底层k8s的命令
* enums:存放一些k8s底层的枚举值
* pojo:对应k8s中的资源信息实体类
* util:工具类
# 当前API支持的资源说明
## 版本资源
| 支持的操作 | 对应的命令 | 说明 |
| ------------ | ----------------------- | ------------------ |
| 获取版本信息 | kubectl version -o yaml | 支持名称与标签查询 |
## node资源
| 支持的操作 | 对应的命令 | 说明 |
| --------------------- | ------------------------------------------------ | ---------------------- |
| 查找节点信息 | kubectl get nodes -o yaml | 支持名称与标签查询 |
| 设置警戒线 | kubectl cordon nodename | |
| 对节点驱逐 | kubectl drain nodename | |
| 恢复节点为可调度状态 | kubectl uncordon nodename | |
| 设置污点 | kubectl taint node nodename key=value:NoSchedule | 暂不支持无值的污点 |
| 取消污点 | kubectl taint node nodename key:NoSchedule- | |
| 查看节点cpu和内存信息 | kubectl top nodes --use-protocol-buffers | 需要安装metrics-server |
## namespace资源
| 支持的操作 | 对应的命令 | 说明 |
| ---------------- | ------------------------ | ------------------ |
| 查找命名空间信息 | kubectl get ns -o yaml | 支持名称与标签查询 |
| 创建命名空间 | kubectl create ns nsname | |
| 删除命名空间 | kubectl delete ns nsname | |
## pod资源
| 支持的操作 | 对应的命令 | 说明 |
| ------------------ | -------------------------------------- | ------------------------------------------------------------ |
| 查找pod信息 | kubectl get pods -o yaml [参数] | 支持查找所有的pod信息,支持命名空间查找,支持name查找,支持标签查找 |
| 创建pod信息 | kubectl apply -f pod.yaml | 支持镜像拉取策略(ImagePullPolicy),支持容器环境(envs),支持容器端口(ContainerPorts),支持持久卷绑定(volumeMounts),支持持久卷映射(volumes),支持命名空间,支持容器容忍时间(terminationGracePeriodSeconds),支持启动命令(command),支持启动检测(startupProbe),支持存活检测(livenessProbe),支持就绪检测(readinessProbe),支持设置生命周期(lifecycle) |
| 删除pod信息 | kubectl delete pod podname | 支持命名空间 |
| 查看pod的cpu和内存 | kubectl top pod | 支持全部pod,支持名称筛选,支持命名空间筛选,支持标签筛选,支持cpu或内存高低进行排序 |
| 批量删除pod信息 | kubectl delete pod podname1 podname2 | 支持命名空间 |
## deployment资源
| 支持的操作 | 对应的命令 | 说明 |
| ------------------ | ---------------------------------------- | ------------------------------------------------------------ |
| 查找deployment信息 | kubectl get deployments -o yaml [参数] | 支持查找所有的deployment信息,支持命名空间查找,支持name查找,支持标签查找 |
| 创建deployment信息 | kubectl apply -f deployment.yaml | 支持镜像拉取策略(ImagePullPolicy),支持容器环境(envs),支持容器端口(ContainerPorts),支持持久卷绑定(volumeMounts),支持持久卷映射(volumes),支持命名空间,支持容器容忍时间(terminationGracePeriodSeconds),支持启动命令(command),支持启动检测(startupProbe),支持存活检测(livenessProbe),支持就绪检测(readinessProbe),支持设置生命周期(lifecycle) |
| 删除deployment信息 | kubectl delete deployment deploymentname | 支持命名空间 |
| 对deployment扩缩容 | kubectl scale deployment | 支持命名空间 |
## service资源
| 支持的操作 | 对应的命令 | 说明 |
| --------------- | ------------------------------ | ------------------------------------------------------------ |
| 查找service信息 | kubectl get svc -o yaml [参数] | 支持查找所有的service信息,支持命名空间查找,支持name查找,支持标签查找 |
| 创建service信息 | kubectl apply -f service.yaml | 支持命名空间,支持服务发现的标签(selector),支持服务类型(type),支持服务发现的端口(ports) |
| 删除service信息 | kubectl delete svc svcname | 支持命名空间 |
## hpa(水平自动扩缩容)资源
| 支持的操作 | 对应的命令 | 说明 |
| ----------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 查找hpa信息 | kubectl get hpa -o yaml [参数] | 支持查找所有的hpa信息,支持命名空间查找,支持name查找,支持标签查找 |
| 创建hpa信息 | kubectl autoscare rc rcname --name=名称 --min=最小副本数 --max=最大副本数 --cpu-percent=80 | 支持命名空间,支持hpa所指定的各种资源,支持最小副本数,支持最大副本数,支持cpu占比 |
| 删除hpa信息 | kubectl delete hpa hpaname | 支持命名空间 |
## 日志查看接口
| 支持的操作 | 对应的命令 | 说明 |
| -------------------- | -------------------------------------- | ----------------------------------------- |
| 查找对应资源日志信息 | kubectl logs 资源类型 资源名 -c 容器名 | 支持查找命名空间,支持指定pod中的容器日志 |