Kube-ctl 是 kubernetes 的一个可视化系统. 提供给用户一系列方式操作 kubernetes 集群
演示地址: https://k8s.crazyfrank.top
本项目是一个严格意义上的 CRUD 项目, 但侧重点在于学习 kubernetes 整个系统的组成.
Gin + kubernetes/client-go
- Namespace 查询
- Pod 创建、更新、删除、查询(详情和列表)
- Node 列表、详情、Node 所包含的 Pods、标签更新、污点更新
- ConfigMap 创建、更新、删除、查询(详情和列表)
- Secret 创建、更新、删除、查询(详情和列表)
- PersistentVolume 创建、查询、删除
- PersistentVolumeClaim 创建、查询、删除
- StorageClass 创建、查询、删除
- Pod 支持多种存储卷: EmptyDir、ConfigMap、Secret、HostPath、DownwardAPI、PersistentVolume
- Service 创建、更新、删除、查询(详情和列表)
- Ingress 创建、更新、删除、查询(详情和列表)
- 注: Ingress controller 在本系统中作为了系统内置资源,如果在使用 Ingress 之前没有编写 IngressClass 资源的配置文件去创建 Ingress Controller, 请先创建
- IngressRoute 创建、更新、删除、查询
- Deployment 创建、更新、删除、查询(详情和列表)
- DaemonSet 创建、更新、删除、查询(详情和列表)
- StatefulSet 创建、更新、删除、查询(详情和列表)
- Job 创建、更新、删除、查询(详情和列表)
- CronJob 创建、更新、删除、查询(详情和列表)
- ServiceAccount 创建、更新、删除、查询(详情和列表)
- Role | ClusterRole 创建、更新、删除、查询(详情和列表)
- RoleBinding | ClusterRoleBinding 创建、更新、删除、查询(详情和列表)
项目在开发和测试阶段, 均以集群外的方式访问, 需按照下面的步骤进行启动
- 在项目根目录下新建
.kube文件夹, 将集群中control-plane机器上的~/.kube/config复制到文件夹下 - 参照
conf/test/example.yaml修改对应配置
服务内置发现机制
- 动态判断是集群外访问还是集群内访问
- 若为集群外, 走默认路径, 用户仍需参照 v1 进行配置
- 若为集群内, 走集群内访问机制