kubernetes 架构解析之kube-apiserver启动过程详解

之前的blog分析过k8s 1.4的apiserver代码,今天和大家分享一下k8s 1.7.6关于apiserver启动的代码。先上一个大图,花了好几个小时!
这里写图片描述
上面的图是整个启动的完整流程,关于api注册的地方。我打印了具体日志
上面installAPIResources有三个输入源分别是下面三个:

extensions

version:apiextensions.k8s.io/v1beta1
root:/apis
storage: customresourcedefinitions 、customresourcedefinitions/status

legacy(v1)

version:v1
root:/api
storage: pods/binding、persistentvolumeclaims、namespaces/finalize、 replicationcontrollers/status、pods/status、persistentvolumes、secrets、pods/attach、nodes、resourcequotas、pods/eviction、pods/exec、 pods/portforward、 serviceaccounts、persistentvolumes/status、 replicationcontrollers、 resourcequotas/status、services/status、componentstatuses、namespaces、 services、endpoints、namespaces/status、 configmaps、podtemplates、nodes/proxy、events、services/proxy、 pods/proxy、bindings、nodes/status、replicationcontrollers/scale、persistentvolumeclaims/status、pods、pods/log:、limitranges

apis

version:authentication.k8s.io/v1
root:/apis
storage: tokenreviews

version:authentication.k8s.io/v1beta1
root:/apis
storage: tokenreviews

version:authorization.k8s.io/v1
root:/apis
storage: map[subjectaccessreviews:0xc4216d0ec0 selfsubjectaccessreviews:0xc4216d0ed0 localsubjectaccessreviews:0xc4216d0ee0]

version:authorization.k8s.io/v1beta1
root:/apis
storage: selfsubjectaccessreviews、localsubjectaccessreviews、subjectaccessreviews

version:autoscaling/v1
root:/apis
storage: horizontalpodautoscalers、horizontalpodautoscalers/status

version:autoscaling/v2alpha1
root:/apis
storage: horizontalpodautoscalers、horizontalpodautoscalers/status

version:batch/v1
root:/apis
storage: jobs、jobs/status

version:certificates.k8s.io/v1beta1
root:/apis
storage: certificatesigningrequests、 certificatesigningrequests/status、certificatesigningrequests/approval

version:extensions/v1beta1
root:/apis
storage: replicationcontrollers/scale、 replicasets/status、replicasets/scale、deployments/status、 ingresses、deployments/scale、deployments、ingresses/status、deployments/rollback、podsecuritypolicies、replicasets、 thirdpartyresources、daemonsets、daemonsets/status、replicationcontrollers、networkpolicies、

version:networking.k8s.io/v1
root:/apis
storage: networkpolicies

version:policy/v1beta1
root:/apis
storage: poddisruptionbudgets/status

version:rbac.authorization.k8s.io/v1beta1
root:/apis
storage: rolebindings、clusterroles、 clusterrolebindings、roles

version:rbac.authorization.k8s.io/v1alpha1
root:/apis
storage: clusterroles、clusterrolebindings、roles、rolebindings

version:settings.k8s.io/v1alpha1
root:/apis
storage: podpresets

version:storage.k8s.io/v1
root:/apis
storage: storageclasses

version:storage.k8s.io/v1beta1
root:/apis
storage: storageclasses

version:apps/v1beta1
root:/apis
storage: deployments/status、 deployments/rollback、deployments/scale、 statefulsets、 statefulsets/status、controllerrevisions、deployments

上面通过三个源,注册api和apis!

猜你喜欢

转载自blog.csdn.net/u010278923/article/details/79242791