# 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中的容器日志 |