使用swagger-ui可视化K8s API文档
背景
需要进行K8s API开发的时候,不方便查看
具体实现
1 | # 启动代理 |
文章作者: Joohwan.
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Joohwan!
相关推荐

2025-08-24
K8s开发指南-客户端
K8s开发指南-客户端 基于K8s v1.29 API客户端 Ref:https://github.com/kubernetes/client-go K8s认证方式主要一下俩类: 集群外的认证:客户端程序运行在集群外,以独立进程访问API Server 集群内的认证:客户端在K8s内以Pod形式运行,通过内部服务名访问API Server 客户端访问API Server常见的认证方式有以下的几种 数字证书方式 ServiceAccount方式 BearerToken方式 对于运行在K8s集群之外的客户端,建议使用数字证书方式连接API Server,客户端需要配置的信息包括CA根证书、客户端证书、客户段私钥以及API Server地址 对于运行在集群内的Pod,建议使用ServiceAccount认证方式,需要为Pod增加ServiceAccount资源,并为ServiceAccount配置好正确的RBAC权限 基于kubeconfig文件的配置方式有以下几种: 用户HOME目录中的约定目录,例如$HOME/.kube/config 在环境变量K...

2025-08-23
K8s开发-API详解
K8s开发-API详解 基于K8s v1.29 资源对象一个K8s资源对象描述一般是kind、apiVersion、metadata、spec和status五个部分 资源对象的类型资源对象的类型用Kind属性表示,总体分为3个类型: 对象(Object)、代表系统中永久资源实体,比如Pod、RC 列表(List):资源对象的合集 简单类别(Simple):作用于资源对象或非持久辅助实体的特定操作,比如Status、Scale、ListOptions等 资源对象的元数据metadata是资源对象的元数据定义,由一组属性来定义,在K8s中,每个资源对象都必须包含以下元数据属性: namespec:对象所属的命名空间,如果不指定,则昔日会将对象置于名为default中 name:对象的名称、在一个ns下,唯一性 uid:系统为每个对象生成唯一的ID,符合RFC4122 labels:自定义标签 annotations:用户自定义注解,被K8s内部进程或者外部工具使用 resourceVersion:用于识别资源内部斑斑的字符串,在Watch操作,可以避免Get和下一次Watch...

2025-08-22
K8s认证机制-拓展认证
K8s认证机制-拓展认证 基于K8s v1.29 OIDC Token认证K8s支持使用OpenID Connect协议进行身份认证。 OIDC协议给予OAuth2.0,构建了身份层,主要提供了ID Token,这是一个JWT格式的Token 流程图: 配置OIDC认证,需要API-Server开启一些参数 WebHook Token认证WebHook认证是K8s回调第三方认证实现用户认证 认证原理: API Server收到客户端的请求之后,从HTTP Header获取到Bearer Token,然后生成一个包含该Token的TokenReview资源对象 API Server把整个TokenReview对象JSON序列化之后发送给Webhook认证服务器 开启WebHook 认证需要设置API Server启动参数 Authenticating Proxy认证在这种模式下,K8s自身不再对用户认证,而是使用外部认证服务进行用户认证 开启Authenticating Proxy 认证需要设置API Server启动参数

2025-03-27
K8s-kustomize
K8s-kustomize背景K8s为 减少维护很多YAML文件,选择定义K8s资源,从1.14开始,kustomize默认提供 kustomize提供以下管理各种配置文件: 从其他文件来源生成K8s资源对象 统一为所有资源设置命名空间、Label、注解或者特殊格式的名称 组合不同的资源作为一个应用或者一个管理单元进行整体注解 概述kustomize核心配置是kustomizeation.yaml,这个文件类似于一个一个模版文件,里面定义了相应的操作指令,主要操作指令以及作用如下: namespace:为所有资源都添加命名空间 namePrefix:要添加到所有资源名称之前的前缀 nameSuffix:要添加到所有资源名称之后的后缀 commonLabels:要添加到所有资源和选择器中的Label commonAnnoations:要添加到所有资源的注解 resources:列表中的每个条目都会生成资源配置 configMapGenerator:针对列表中的每个条目都会生成一个ConfigMap secrertGenerator:列表中的每个条目都会生成一个S...

2025-03-26
K8s-深入理解Service
K8s-深入理解Service 基于K8s v1.31 OverviewService是K8s实现微服务的核心,通过创建Srvice,可以实现具有相同的功能都容器提供一个统一的入口 Service的概念和原理负载均衡机制当一个Service对象被定义出来,客户端都可以通过ServiceIP访问Pod容器,到每个Node山上交与kube-porxy实现 kube-porxy的代理模式 iptables模式 (v1.28中实现) 通过基于Linux 的 Linux Kernel的iptables规则实现,实现了从Service到后端Endpoints列表的负载均衡规则 每次创建Service和Endpoints发生变化,kube-proxy都会刷新本Node得全部iptables,在大规模集群(service和endpoints数量达到数百万),刷新时间过长,系统性能下降,可以通过调整kube-proxy的资源对象KubeProxyConguration中的同步行为; 12345iptables: # 设置同步最短时间,默认1s minSyncPeriod: 1s # 同步时间间隔...

2025-03-17
K8sController-CronJob(定时任务)
K8sController-CronJob(定时任务) 基于K8s v1.31 Cron Job支持用于每隔一段时间创建定期运行的批处理任务 CronJob定时表达式12345678910# ┌───────────── 分钟 (0 - 59)# │ ┌───────────── 小时 (0 - 23)# │ │ ┌───────────── 月的某天 (1 - 31)# │ │ │ ┌───────────── 月份 (1 - 12)# │ │ │ │ ┌───────────── 周的某天 (0 - 6)(周日到周六)# │ │ │ │ │ 或者是 sun,mon,tue,web,thu,fri,sat# │ │ │ │ │# │ │ │ │ │# * * * * *Minutes Hours DayofMonth Month DayofWeek Minutes: , - * / 或者0-59的整数 Hours: , - * / 或者0-23的整数 DayofMonth: , - * /...
评论