Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cluster API for AWS

Cluster API for AWS

Cluster API for AWS

Avatar for Seungkyu Ahn

Seungkyu Ahn

October 22, 2019
Tweet

More Decks by Seungkyu Ahn

Other Decks in Technology

Transcript

  1. Cluster AWSCluster Cluster API Provider Machine (Control) AWSMachine (Control) MachineDeployment

    (Worker) AWSMachineTemplate (Worker) Machine (Worker) AWSMachine (Worker) Control Worker
  2. Cluster infrastructureRef: AWSCluster AWSCluster Cluster Controller ownerReferences: Cluster SetOwnerReferences ①

    ② ready: true ③ if ready true infrastructureReady: true phase: provisioned ④ set InfrastructureReady true ⑤ set phase provisioned Cluster API Controller
  3. AWSCluster Infrastructure Controller: awscluster apiEndpoints: host, port ready: true Network

    Bastion Loadbalancers ① if Network, Bastion, Loadbalancers completed ② set ready true AWS Infrastructure AWS Infrastructure Controller
  4. Machine Controller ② get ready true Machine(Control) infrastructureRef: AWSMachine infrastructureReady:

    true ① get AWSMachine ③ set infrastructure ready AWSCluster ready: true Cluster API Controller
  5. kubeadmconfig(Control) Bootstrap Controller ownerReferences: Machine bootstrapData: initData ready: true ①

    get Machine ② get Cluster Machine(Control) LABEL: cluster-name=capi-quickstart control-plane=true bootstrap.data: ... ③ get bootstrap data ⑥ set bootstrapData set ready true ⑤ set secret kubeconfig Kubernetes Cluster secret: KubeConfig Bootstrap Controller
  6. kubeadmconfig(Control) Machine Controller ready: true ④ set bootstrapReady true ③

    get bootstrap ready Machine(Control) bootstrap.configRef: KubeadmConfig bootstrapReady: true ③ get KubeadmConf bootstrap.data providerID: aws:////i-0000dbe6012d0fa0e bootstrapData: initData ① get bootstrap data ② set bootstrap data set provider ID Cluster API Controller
  7. Machine Controller ② get kubeconfig Machine(Control) ① get providerID ③

    kubectl get node Kubernetes Cluster providerID: aws:////i-0000dbe6012d0fa0e nodeRef: name: ip-10-0-0-133.ap-northeast-2.compute.internal uid: 597c15f0-364d-4464-af73-4d8b63c9cc74 secret: KubeConfig VM: Kubernetes Node AWS Infrastructure ④ set nodeRef Cluster API Controller
  8. Machine(Control) Cluster controlPlaneInitialized: true Cluster Controller nodeRef: name: ip-10-0-0-133.ap-northeast-2.compute.internal uid:

    597c15f0-364d-4464-af73-4d8b63c9cc74 ① get nodeRef ② set controlPlaneInitialized true Cluster API Controller