149 lines
4.6 KiB
Markdown
149 lines
4.6 KiB
Markdown
|
|
|
|
# Documentation for images
|
|
|
|
Open https://www.websequencediagrams.com/ and paste the spec for the desired image:
|
|
|
|
- [kubeadm init](#kubeadm-init)
|
|
- [kubeadm join (and join --control-plane)](#kubeadm-join-and-join---control-plane)
|
|
- [kubeadm reset](#kubeadm-reset)
|
|
- [kubeadm upgrade](#kubeadm-upgrade)
|
|
- [kubeadm upgrade node](#kubeadm-upgrade-node)
|
|
|
|
## kubeadm init
|
|
|
|
```
|
|
title kubeadm init (interactions with the v1beta1 configuration)
|
|
|
|
participant "user" as u
|
|
participant "kubeadm" as k
|
|
participant "kubelet" as kk
|
|
participant "node\n(api object)" as n
|
|
participant "kubeadm-config\nConfigMap" as cm
|
|
participant "kubeproxy-config\nConfigMap" as kpcm
|
|
participant "kubelet-config\nConfigMap-1.*" as kcm
|
|
|
|
u->k:provide\nInitConfiguration (with NodeRegistrationOptions, ControlPlaneConfiguration)\nClusterConfiguration\nkube-proxy component configuration\nkubelet component configuration
|
|
|
|
k->kk:write kubelet component configuration\nto /var/lib/kubelet/config.yaml
|
|
k->kk:write NodeRegistrationOptions\nto /var/lib/kubelet/kubeadm-flags.env
|
|
kk->n:start node
|
|
k->n:save NodeRegistrationOptions.CRISocket\nto kubeadm.alpha.kubernetes.io/cri-socket annotation
|
|
|
|
k->k:use InitConfiguration\n(e.g. tokens)
|
|
|
|
k->cm:save ClusterConfiguration
|
|
k->cm:add Current ControlPlaneConfiguration to ClusterConfiguration.Status
|
|
|
|
k->kpcm:save kube-proxy component configuration
|
|
k->kcm:save kubelet component configuration
|
|
```
|
|
|
|
## kubeadm join (and join --control-plane)
|
|
|
|
```
|
|
title kubeadm join and join --control-plane (interactions with the v1beta1 configuration)
|
|
|
|
participant "user" as u
|
|
participant "kubeadm" as k
|
|
participant "kubeadm-config\nConfigMap" as cm
|
|
participant "kubelet-config\nConfigMap-1.*" as kcm
|
|
participant "kubelet" as kk
|
|
participant "node\n(api object)" as n
|
|
|
|
u->k:provide\nJoinConfiguration\n(with NodeRegistrationOptions)
|
|
|
|
k->cm:read ClusterConfiguration
|
|
cm->k:
|
|
k->k:use ClusterConfiguration\n(e.g. ClusterName)
|
|
|
|
k->kcm:read kubelet\ncomponent configuration
|
|
kcm->k:
|
|
k->kk:write kubelet component configuration\nto /var/lib/kubelet/config.yaml
|
|
k->kk:write NodeRegistrationOptions\nto /var/lib/kubelet/kubeadm-flags.env
|
|
kk->n:start node
|
|
k->n:save NodeRegistrationOptions.CRISocket\nto kubeadm.alpha.kubernetes.io/cri-socket annotation
|
|
|
|
k->cm:add new ControlPlaneConfiguration\nto ClusterConfiguration.Status\n(only for join --control-plane)
|
|
```
|
|
|
|
## kubeadm reset
|
|
|
|
```
|
|
title kubeadm reset (interactions with the v1beta1 configuration)
|
|
|
|
participant "user" as u
|
|
participant "kubeadm" as k
|
|
participant "kubeadm-config\nConfigMap" as cm
|
|
participant "node\n(api object)" as n
|
|
|
|
|
|
u->k:
|
|
|
|
k->cm:read ClusterConfiguration
|
|
cm->k:
|
|
k->cm:remove ControlPlaneConfiguration\nfrom ClusterConfiguration.Status\n(only if the node hosts a control plane instance)
|
|
|
|
k->n:read kubeadm.alpha.kubernetes.io/cri-socket annotation
|
|
n->k:
|
|
k->k:use CRIsocket\nto delete containers
|
|
```
|
|
|
|
## kubeadm upgrade
|
|
|
|
```
|
|
title kubeadm upgrade apply (interactions with the v1beta1 configuration)
|
|
|
|
participant "user" as u
|
|
participant "kubeadm" as k
|
|
participant "kubeadm-config\nConfigMap" as cm
|
|
participant "kubeproxy-config\nConfigMap" as kpcm
|
|
participant "kubelet-config\nConfigMap-1.*+1" as kcm
|
|
participant "kubelet" as kk
|
|
participant "node\n(api object)" as n
|
|
|
|
u->k: UpgradeConfiguration
|
|
note over u, n:Upgrade configuration should allow only well known changes to the cluster e.g. the change of custom images if used
|
|
|
|
|
|
k->cm:read ClusterConfiguration
|
|
cm->k:
|
|
k->k:update\nClusterConfiguration\nusing api machinery
|
|
k->cm:save updated ClusterConfiguration
|
|
|
|
k->kpcm:read kube-proxy component configuration
|
|
kpcm->k:
|
|
k->k:update kube-proxy\ncomponent configuration\nusing api machinery
|
|
k->kpcm:save updated kube-proxy component configuration
|
|
note over kpcm, n:the updated kube-proxy component configuration will\nbe used by the updated kube-proxy DaemonSet
|
|
|
|
k->kcm:read kubelet component configuration
|
|
kcm->k:
|
|
k->k:update kubelet\ncomponent configuration\nusing api machinery
|
|
k->kcm:save updated kubelet component configuration
|
|
k->kk:write kubelet component configuration\nto /var/lib/kubelet/config.yaml
|
|
k->kk:write NodeRegistrationOptions\nto /var/lib/kubelet/kubeadm-flags.env
|
|
kk->n:start node
|
|
|
|
note over kcm, n:the updated kubelet component configuration\nwill be used by other nodes\nwhen running\nkubeadm upgrade nodes locally
|
|
|
|
```
|
|
|
|
## kubeadm upgrade node
|
|
|
|
```
|
|
title kubeadm upgrade node (interactions with the v1beta1 configuration)
|
|
|
|
participant "user" as u
|
|
participant "kubeadm" as k
|
|
participant "kubelet-config\nConfigMap-1.*" as kcm
|
|
participant "kubelet" as kk
|
|
|
|
u->k:
|
|
|
|
k->kcm:read kubelet\ncomponent configuration
|
|
kcm->k:
|
|
k->kk:write kubelet component configuration\nto /var/lib/kubelet/config.yaml
|
|
```
|
|
|