kubernetesk8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting Index | Files

package selfhosting

import "k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting"

Index

Functions

func CreateSelfHostedControlPlane

func CreateSelfHostedControlPlane(manifestsDir, kubeConfigDir string, cfg *kubeadmapi.MasterConfiguration, client clientset.Interface, waiter apiclient.Waiter) error

CreateSelfHostedControlPlane is responsible for turning a Static Pod-hosted control plane to a self-hosted one It achieves that task this way:

  1. Load the Static Pod specification from disk (from /etc/kubernetes/manifests)
  2. Extract the PodSpec from that Static Pod specification
  3. Mutate the PodSpec to be compatible with self-hosting (add the right labels, taints, etc. so it can schedule correctly)
  4. Build a new DaemonSet object for the self-hosted component in question. Use the above mentioned PodSpec
  5. Create the DaemonSet resource. Wait until the Pods are running.
  6. Remove the Static Pod manifest file. The kubelet will stop the original Static Pod-hosted component that was running.
  7. The self-hosted containers should now step up and take over.
  8. In order to avoid race conditions, we have to make sure that static pod is deleted correctly before we continue Otherwise, there is a race condition when we proceed without kubelet having restarted the API server correctly and the next .Create call flakes
  9. Do that for the kube-apiserver, kube-controller-manager and kube-scheduler in a loop

Types

type PodSpecMutatorFunc

type PodSpecMutatorFunc func(*v1.PodSpec)

PodSpecMutatorFunc is a function capable of mutating a PodSpec

Source Files

podspec_mutation.go selfhosting.go selfhosting_volumes.go

Version
v1.8.0-beta.0
Published
Sep 2, 2017
Platform
linux/amd64
Imports
16 packages
Last checked
49 seconds ago

Tools for package owners.