diff --git a/content/en/docs/user-journeys/users/application-developer/foundational.md b/content/en/docs/user-journeys/users/application-developer/foundational.md index f63bd58d73..e9a84a849e 100644 --- a/content/en/docs/user-journeys/users/application-developer/foundational.md +++ b/content/en/docs/user-journeys/users/application-developer/foundational.md @@ -149,17 +149,15 @@ Say that your team is deploying an ordinary Rails application. You've run some c If you're not running Kubernetes or a similar automated system, you might find the following scenario familiar: -
+{{< note >}} +1. One instance of your app (a complete machine instance or just a container) goes down. -1. One instance of your app (a complete machine instance or just a container) goes down. +1. Because your team has monitoring set up, this pages the person on call. -2. Because your team has monitoring set up, this pages the person on call. +1. The on-call person has to go in, investigate, and manually spin up a new instance. -3. The on-call person has to go in, investigate, and manually spin up a new instance. - -4. Depending how your team handles DNS/networking, the on-call person may also need to also update the service discovery mechanism to point at the IP of the new Rails instance rather than the old. - -
+1. Depending how your team handles DNS/networking, the on-call person may also need to also update the service discovery mechanism to point at the IP of the new Rails instance rather than the old. +{{< /note >}} This process can be tedious and also inconvenient, especially if (2) happens in the early hours of the morning! @@ -189,19 +187,17 @@ The standard controller processes are {{< link text="`kube-controller-manager`" All of these controllers implement a *control loop*. For simplicity, you can think of this as the following: -
- 1. What is the current state of the cluster (X)? - - 2. What is the desired state of the cluster (Y)? - - 3. X == Y ? - - * `true` - Do nothing. - * `false` - Perform tasks to get to Y (such as starting or restarting containers, -or scaling the number of replicas of a given application).
+{{< note >}} +1. What is the current state of the cluster (X)? - *(Return to 1)* -
+1. What is the desired state of the cluster (Y)? + +1. X == Y ? + + * `true` - Do nothing. + * `false` - Perform tasks to get to Y, such as starting or restarting containers, + or scaling the number of replicas of a given application. Return to 1. +{{< /note >}} By continuously looping, these controllers ensure the cluster can pick up new updates and avoid drifting from the desired state. These ideas are covered in more detail {{< link text="here" url="https://kubernetes.io/docs/concepts/" >}}.