Kubernetes Rest Api 篇之六对应源码所在位置(staging api项目)
kubernetes 子项目地址: https://github/kubernetes/api
[root@k2 conf]# kubectl get --raw / { "paths": [ "/api", "/api/v1", "/apis", "/apis/", "/apis/admissionregistration.k8s.io", "/apis/admissionregistration.k8s.io/v1beta1", "/apis/apiextensions.k8s.io", "/apis/apiextensions.k8s.io/v1beta1", "/apis/apiregistration.k8s.io", "/apis/apiregistration.k8s.io/v1", "/apis/apiregistration.k8s.io/v1beta1", "/apis/apps", "/apis/apps/v1", "/apis/apps/v1beta1", "/apis/apps/v1beta2", "/apis/authentication.k8s.io", "/apis/authentication.k8s.io/v1", "/apis/authentication.k8s.io/v1beta1", "/apis/authorization.k8s.io", "/apis/authorization.k8s.io/v1", "/apis/authorization.k8s.io/v1beta1", "/apis/autoscaling", "/apis/autoscaling/v1", "/apis/autoscaling/v2beta1", "/apis/batch", "/apis/batch/v1", "/apis/batch/v1beta1", "/apis/certificates.k8s.io", "/apis/certificates.k8s.io/v1beta1", "/apis/events.k8s.io", "/apis/events.k8s.io/v1beta1", "/apis/extensions", "/apis/extensions/v1beta1", "/apis/management.cattle.io", "/apis/management.cattle.io/v3", "/apis/monitoring.coreos.com", "/apis/monitoring.coreos.com/v1", "/apis/networking.k8s.io", "/apis/networking.k8s.io/v1", "/apis/policy", "/apis/policy/v1beta1", "/apis/project.cattle.io", "/apis/project.cattle.io/v3", "/apis/rbac.authorization.k8s.io", "/apis/rbac.authorization.k8s.io/v1", "/apis/rbac.authorization.k8s.io/v1beta1", "/apis/storage.k8s.io", "/apis/storage.k8s.io/v1", "/apis/storage.k8s.io/v1beta1", "/healthz", "/healthz/autoregister-completion", "/healthz/etcd", "/healthz/ping", "/healthz/poststarthook/apiservice-openapi-controller", "/healthz/poststarthook/apiservice-registration-controller", "/healthz/poststarthook/apiservice-status-available-controller", "/healthz/poststarthook/bootstrap-controller", "/healthz/poststarthook/ca-registration", "/healthz/poststarthook/generic-apiserver-start-informers", "/healthz/poststarthook/kube-apiserver-autoregistration", "/healthz/poststarthook/rbac/bootstrap-roles", "/healthz/poststarthook/start-apiextensions-controllers", "/healthz/poststarthook/start-apiextensions-informers", "/healthz/poststarthook/start-kube-aggregator-informers", "/healthz/poststarthook/start-kube-apiserver-informers", "/logs", "/metrics", "/openapi/v2", "/swagger-2.0.0.json", "/swagger-2.0.0.pb-v1", "/swagger-2.0.0.pb-v1.gz", "/swagger-ui/", "/swagger.json", "/swaggerapi", "/version" ] }
主链条为: kubectl get --raw .... ---->apis/api ---->staging/api或apis
Kubernetes独立子项目
https://github.com/kubernetes/api 对应本地
E:\k8s源码\kubernetes-1.10.13\kubernetes-1.10.13\staging\src\k8s.io\api
...\ 表示源码根目录 | ||
/api
|
||
/api/v1
|
...\pkg\api\v1 | ..\pkg\api\v1 |
/apis
|
||
/apis/
|
||
/apis/admissionregistration.k8s.io
|
...\pkg\apis\admissionregistration | ...\pkg\apis\admissionregistration |
/apis/admissionregistration.k8s.io/v1beta1
|
...\pkg\apis\admissionregistration\v1beta1 | ...\pkg\apis\admissionregistration\v1beta1 |
/apis/apiextensions.k8s.io |
staging
|
...\staging\src\k8s.io\apiextensions-apiserver\pkg\apis\apiextensions
|
/apis/apiextensions.k8s.io/v1beta1
|
staging | ...\staging\src\k8s.io\apiextensions-apiserver\pkg\apis\apiextensions\v1beta1 |
/apis/apiregistration.k8s.io
|
staging | ...\staging\src\k8s.io\kube-aggregator\pkg\apis\apiregistration |
/apis/apiregistration.k8s.io/v1
|
staging | ...\staging\src\k8s.io\kube-aggregator\pkg\apis\apiregistration\v1 |
/apis/apiregistration.k8s.io/v1beta1
|
staging | ...\staging\src\k8s.io\kube-aggregator\pkg\apis\apiregistration\v1beta1 |
/apis/apps(默认版本)
|
...\pkg\apis\apps |
...\pkg\apis\apps\register.go import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/extensions" ) |
/apis/apps/v1
|
..\pkg\apis\apps\v1 |
..\pkg\apis\apps\v1\register.go import ( appsv1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/runtime/schema" ) //引入独立子项目api内的apps包 |
/apis/apps/v1beta1
|
..\pkg\apis\apps\v1beta1 | ..\pkg\apis\apps\v1beta1 |
/apis/apps/v1beta2
|
..\pkg\apis\apps\v1beta2 | ..\pkg\apis\apps\v1beta2 |
/apis/authentication.k8s.io
|
...\pkg\apis\authentication | ...\pkg\apis\authentication |
/apis/authentication.k8s.io/v1 | ...\pkg\apis\authentication\v1 | ...\pkg\apis\authentication\v1 |
/apis/authentication.k8s.io/v1beta1 | ...\pkg\apis\authentication\v1beta1 | ...\pkg\apis\authentication\v1beta1 |
/apis/authorization.k8s.io | ...\pkg\apis\authorization | ...\pkg\apis\authorization |
/apis/authorization.k8s.io/v1 | ...\pkg\apis\authorization\v1 | ...\pkg\apis\authorization\v1 |
/apis/authorization.k8s.io/v1beta1 | ...\pkg\apis\authorization\v1beta1 | ...\pkg\apis\authorization\v1beta1 |
/apis/autoscaling | ...\pkg\apis\autoscaling | ...\pkg\apis\autoscaling |
/apis/autoscaling/v1 | ...\pkg\apis\autoscaling\v1 | ...\pkg\apis\autoscaling\v1 |
/apis/autoscaling/v2beta1 | ...\pkg\apis\autoscaling\v2beta1 | ...\pkg\apis\autoscaling\v2beta1 |
/apis/batch |
...\pkg\apis\batch\ |
...\pkg\apis\batch\ |
/apis/batch/v1 |
...\pkg\apis\batch\v1 |
...\pkg\apis\batch\v1 |
/apis/batch/v1beta1 |
...\pkg\apis\batch\v1beta1 |
...\pkg\apis\batch\v1beta1 |
/apis/certificates.k8s.io | ...\pkg\apis\certificates | ...\pkg\apis\certificates |
/apis/certificates.k8s.io/v1beta1 | ...\pkg\apis\certificates\v1beta1 | ...\pkg\apis\certificates\v1beta1 |
/apis/events.k8s.io | ...\pkg\apis\events | ...\pkg\apis\events |
/apis/events.k8s.io/v1beta1 | ...\pkg\apis\events\v1beta1 | ...\pkg\apis\events\v1beta1 |
/apis/extensions | ...\pkg\apis\extensions | ...\pkg\apis\extensions |
/apis/extensions/v1beta1 | ...\pkg\apis\extensions\v1beta1 | ...\pkg\apis\extensions\v1beta1 |
/apis/management.cattle.io | ||
/apis/management.cattle.io/v3 | ||
/apis/monitoring.coreos.com | ||
/apis/monitoring.coreos.com/v1 | ||
/apis/networking.k8s.io | ...\pkg\apis\networking |
...\pkg\apis\networking import ( |
/apis/networking.k8s.io/v1 | ...\pkg\apis\networking\v1 |
...\pkg\apis\networking\v1\register.go import ( "k8s.io/api/networking/v1" 即引入独立api子项目包 ...\staging\src\k8s.io\api\networking\v1 |
/apis/policy | ...\pkg\apis\policy |
...\pkg\apis\policy\register.go import ( "k8s.io/apimachinery/pkg/runtime" |
/apis/policy/v1beta1 | ...\pkg\apis\policy\v1beta1 |
...\pkg\apis\policy\v1beta1\register.go "k8s.io/api/policy/v1beta1" 即引入独立api子项目包 ...\staging\src\k8s.io\api\policy\v1beta1 |
/apis/project.cattle.io | ||
/apis/project.cattle.io/v3 | ||
/apis/rbac.authorization.k8s.io | ...\pkg\apis\rbac | ...\pkg\apis\rbac\register.go import ( |
/apis/rbac.authorization.k8s.io/v1 | ...\pkg\apis\rbac\v1 | ...\pkg\apis\rbac\v1\register.go import ( |
/apis/rbac.authorization.k8s.io/v1beta1 | ...\pkg\apis\rbac\v1beta1 | ...\pkg\apis\rbac\v1beta1\register.go import ( |
/apis/storage.k8s.io | ...\pkg\apis\storage |
...\pkg\apis\storage\register.go |
/apis/storage.k8s.io/v1 | ...\pkg\apis\storage\v1 |
...\pkg\apis\storage\v1\register.go |
/apis/storage.k8s.io/v1beta1 | ...\pkg\apis\storage\v1beta1 | ..\pkg\apis\storage\v1beta1\register.go import ( ...\staging\src\k8s.io\api\storage\v1beta1 |
具体讲解举例 :
extensions |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\extensions |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\extensions\register.go package extensions import ( // GroupName is the group name use in this package // Adds the list of known types to the given scheme. [root@k2 conf]# kubectl get --raw /apis/extensions/v1beta1 | python -m json.tool { "groupVersion": "extensions/v1beta1", "kind": "APIResourceList", "resources": [ { "kind": "DaemonSet", "name": "daemonsets", "namespaced": true, "shortNames": [ "ds" ], "singularName": "", "verbs": [ "create", "delete", "deletecollection", "get", "list", "patch", "update", "watch" ] }, { "kind": "DaemonSet", "name": "daemonsets/status", "namespaced": true, "singularName": "", "verbs": [ "get", "patch", "update" ] }, { "kind": "Deployment", "name": "deployments", "namespaced": true, "shortNames": [ "deploy" ], "singularName": "", "verbs": [ "create", "delete", "deletecollection", "get", "list", "patch", "update", "watch" ] }, { "kind": "DeploymentRollback", "name": "deployments/rollback", "namespaced": true, "singularName": "", "verbs": [ "create" ] }, { "group": "extensions", "kind": "Scale", "name": "deployments/scale", "namespaced": true, "singularName": "", "verbs": [ "get", "patch", "update" ], "version": "v1beta1" }, { "kind": "Deployment", "name": "deployments/status", "namespaced": true, "singularName": "", "verbs": [ "get", "patch", "update" ] }, { "kind": "Ingress", "name": "ingresses", "namespaced": true, "shortNames": [ "ing" ], "singularName": "", "verbs": [ "create", "delete", "deletecollection", "get", "list", "patch", "update", "watch" ] }, { "kind": "Ingress", "name": "ingresses/status", "namespaced": true, "singularName": "", "verbs": [ "get", "patch", "update" ] }, { "kind": "NetworkPolicy", "name": "networkpolicies", "namespaced": true, "shortNames": [ "netpol" ], "singularName": "", "verbs": [ "create", "delete", "deletecollection", "get", "list", "patch", "update", "watch" ] }, { "kind": "PodSecurityPolicy", "name": "podsecuritypolicies", "namespaced": false, "shortNames": [ "psp" ], "singularName": "", "verbs": [ "create", "delete", "deletecollection", "get", "list", "patch", "update", "watch" ] }, { "kind": "ReplicaSet", "name": "replicasets", "namespaced": true, "shortNames": [ "rs" ], "singularName": "", "verbs": [ "create", "delete", "deletecollection", "get", "list", "patch", "update", "watch" ] }, { "group": "extensions", "kind": "Scale", "name": "replicasets/scale", "namespaced": true, "singularName": "", "verbs": [ "get", "patch", "update" ], "version": "v1beta1" }, { "kind": "ReplicaSet", "name": "replicasets/status", "namespaced": true, "singularName": "", "verbs": [ "get", "patch", "update" ] }, { "kind": "ReplicationControllerDummy", "name": "replicationcontrollers", "namespaced": true, "singularName": "", "verbs": [] }, { "kind": "Scale", "name": "replicationcontrollers/scale", "namespaced": true, "singularName": "", "verbs": [ "get", "patch", "update" ] } ] } |
|
batch |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\batch\v1 |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\batch\v1\register.go package batch import ( // GroupName is the group name use in this package |
|
autoscaling |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\autoscaling |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\autoscaling\v1\register.go package autoscaling import ( // GroupName is the group name use in this package |
|
authentication.k8s.io | |
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\authentication | |
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\authentication\register.go package authentication import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" ) // GroupName is the group name use in this package const GroupName = "authentication.k8s.io" |
|
apps/v1
|
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\apps\v1 | |
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\pkg\apis\apps\v1\register.go
package v1 import ( // GroupName is the group name use in this package /*** k8s.io/api/apps/v1 引入的是 **/ //api是外部的外部类型api |
|
apiextensions.k8s.io
|
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\apiextensions-apiserver\pkg\apis\apiextensions\v1 |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\apiextensions-apiserver\pkg\apis\apiextensions\v1\register.go import ( const GroupName = "apiextensions.k8s.io" |
|
admissionregistration.k8s.io\v1 |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\api\admissionregistration\v1\
|
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\api(Kubernetes API server(kube-apiserver)提供的外部API类型的架构)\admissionregistration\v1\register.go 源码: package v1 import ( const GroupName = "admissionregistration.k8s.io" |
|
apiregistration.k8s.io/v1
|
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\kube-aggregator\pkg\apis\apiregistration\v1\ | |
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\kube-aggregator\pkg\apis\apiregistration\v1\register.go 源码: import ( // GroupName is the API group for apiregistration //源码依赖基础构件apimachinery |
|
apiregistration.k8s.io/v1beta1 |
|
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\kube-aggregator\pkg\apis\apiregistration\v1beta1 | |
E:\k8s源码\kubernetes-1.18.0\kubernetes-1.18.0\staging\src\k8s.io\kube-aggregator\pkg\apis\apiregistration\v1beta1\register.go package v1beta1 import ( // GroupName is the API group for apiregistration ..... //源码依赖基础构件apimachinery |
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类