Kubernetes
    Kubernetes - Overview
    Kubernetes - Objects
    Kubernetes - API Extensions
    Kubernetes - apimachinery
    Kubernetes - Container Runtimes (CRI)
    Kubernetes - Storage (CSI)
    Kubernetes - Networking (CNI)
    Kubernetes - Ecosystem
    Kubernetes - Tools
    Kubernetes - kubectl
    Kubernetes - client-go
    Kubernetes - Source Code
    Kubernetes - Kind
    Kubernetes - kubeconfig
    Kubernetes - Versus

Kubernetes - Source Code

Updated: 2022-07-25

https://github.com/kubernetes/kubernetes

  • cmd/: the main functions
    • running on the control plane:
      • kube-apiserver/
      • kube-controller-manager/
      • kube-scheduler/
      • cloud-controller-manager/
    • running on nodes:
      • kubelet/
      • kube-proxy/
    • CLI tools:
      • kubeadm
      • kubectl
  • pkg/
    • api/: the core apis
    • apis/: the non-core apis
    • kubeapiserver/:
      • admission/
      • authenticator/
      • authorizer/
    • kubectl
    • kubelet
  • staging/src/k8s.io/apiserver/
  • vendor: e.g. things about golang

https://github.com/kubernetes/apiserver is derived from https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/apiserver

kubernetes/vendor/k8s.io symlink to ../../staging/src/k8s.io/

Modules

  • k8s.io/apimachinery
  • k8s.io/api: structs describing Kubernetes API Objects. Only the data structures, almost no algorithms. Depends on k8s.io/apimachinery
  • k8s.io/client-go depends on k8s.io/api and k8s.io/apimachinery

Objects:

  • api/v1: API type definitions, e.g. pods (kind: Pod), nodes (Node)
  • apiextensions.k8s.io/v1: crds (CustomResourceDefinition), apiservices (APIService)