When upgrading nodes, why does kubernetes terminate pods before the new pod is in a ready state?Exposing service in KubernetesIntermittent DNS failures in Google Container EngineAny way to delay termination of an older pod, to “wait” for the new pod to be ready to serve requests?What makes a kubernetes node unhealthy?kubernetes flannel daemonset not starting (Clean Ubuntu 16 and 18)GKE lost nodes and Google Console shows different number of nodesGKE lost node tag and static ip after auto-upgradeKubernetes node breaks on restarting containerdGoogle Cloud Kuberbetes run-away systemd 100% CPU usageSetup Local Persistent Volume on physical machines with Kubernetes

70s Sci-Fi Story including/describing Conway's solitaire game "life"

The most secure way to handle someone forgetting to verify their account?

Why are flying carpets banned while flying brooms are not?

To what extent does asymmetric cryptography secure bitcoin transactions?

Extract the attribute names from a large number of Shapefiles

Discontinuous Tube visualization

What's a German word for »Sandbagger«?

Deleting a point in METAFONT

You have no, but can try for yes

Is encryption still applied if you ignore the SSL certificate warning for self-signed certs?

How should I interpret a promising preprint that was never published in a peer-reviewed journal?

Why don't humans perceive sound waves as twice the frequency they are?

Get Chord Name From a Given Set of Notes

Why is this guy handcuffed censored?

How do you name this compound using IUPAC system (including steps)?

How did Jayne know when to shoot?

Does a hash function have a Upper bound on input length?

Transistor power dissipation rating

Applying for jobs with an obvious scar

Is "repository" pronounced /rɪˈpɒzɪt(ə)ri/ or ri-ˈpä-zə-ˌtȯr-ē or /rəˈpäzəˌtôrē/?

A spacecraft is travelling at X units per hour. But relative to what exactly? Does it depend on orbit? How?

Why teach C using scanf without talking about command line arguments?

A "Replace" sort problem. Basic but haunts me

Are there foods that astronauts are explicitly never allowed to eat?



When upgrading nodes, why does kubernetes terminate pods before the new pod is in a ready state?


Exposing service in KubernetesIntermittent DNS failures in Google Container EngineAny way to delay termination of an older pod, to “wait” for the new pod to be ready to serve requests?What makes a kubernetes node unhealthy?kubernetes flannel daemonset not starting (Clean Ubuntu 16 and 18)GKE lost nodes and Google Console shows different number of nodesGKE lost node tag and static ip after auto-upgradeKubernetes node breaks on restarting containerdGoogle Cloud Kuberbetes run-away systemd 100% CPU usageSetup Local Persistent Volume on physical machines with Kubernetes






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















As you can see in the picture below, when upgrading nodes to a new version of Kubernetes, the pods on each node are recreated on a new node with a newer version of Kubernetes.



However, it seems that the old pods are being destroyed (Terminating) without waiting for the new pods to be in a Ready state, leading to downtime as the new pods are still in a ContainerCreating state.



Is there an explanation for this, or am I doing something wrong?



enter image description here










share|improve this question




























    1















    As you can see in the picture below, when upgrading nodes to a new version of Kubernetes, the pods on each node are recreated on a new node with a newer version of Kubernetes.



    However, it seems that the old pods are being destroyed (Terminating) without waiting for the new pods to be in a Ready state, leading to downtime as the new pods are still in a ContainerCreating state.



    Is there an explanation for this, or am I doing something wrong?



    enter image description here










    share|improve this question
























      1












      1








      1








      As you can see in the picture below, when upgrading nodes to a new version of Kubernetes, the pods on each node are recreated on a new node with a newer version of Kubernetes.



      However, it seems that the old pods are being destroyed (Terminating) without waiting for the new pods to be in a Ready state, leading to downtime as the new pods are still in a ContainerCreating state.



      Is there an explanation for this, or am I doing something wrong?



      enter image description here










      share|improve this question














      As you can see in the picture below, when upgrading nodes to a new version of Kubernetes, the pods on each node are recreated on a new node with a newer version of Kubernetes.



      However, it seems that the old pods are being destroyed (Terminating) without waiting for the new pods to be in a Ready state, leading to downtime as the new pods are still in a ContainerCreating state.



      Is there an explanation for this, or am I doing something wrong?



      enter image description here







      kubernetes google-kubernetes-engine






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jul 11 at 2:32









      NickNick

      1033 bronze badges




      1033 bronze badges




















          1 Answer
          1






          active

          oldest

          votes


















          5














          When a node is upgraded, GKE will first drain the pods from the node before removing the deleting the virtual machine and removing from the node from the cluster. The process for terminating a pod is explained in detail here and what you should realize is that this process starts before the new pods is created, scheduled, or starts running.



          If you have a deployment and want to keep a specific number of replicas up during the node upgrade process, you should configure pod disruption budgets, with which you can ensure that the node upgrade process will proceed at a slow enough rate to keep enough containers running for your service to handle traffic without any downtime.






          share|improve this answer























          • Thanks! I wonder why Kubernetes doesn't do this by default.

            – Nick
            Jul 11 at 6:25











          • Which part? Graceful termination periods and disruption budgets are application specific settings and need to be customized for each application / system separately.

            – Robert Bailey
            Jul 12 at 3:18













          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "2"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f974771%2fwhen-upgrading-nodes-why-does-kubernetes-terminate-pods-before-the-new-pod-is-i%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5














          When a node is upgraded, GKE will first drain the pods from the node before removing the deleting the virtual machine and removing from the node from the cluster. The process for terminating a pod is explained in detail here and what you should realize is that this process starts before the new pods is created, scheduled, or starts running.



          If you have a deployment and want to keep a specific number of replicas up during the node upgrade process, you should configure pod disruption budgets, with which you can ensure that the node upgrade process will proceed at a slow enough rate to keep enough containers running for your service to handle traffic without any downtime.






          share|improve this answer























          • Thanks! I wonder why Kubernetes doesn't do this by default.

            – Nick
            Jul 11 at 6:25











          • Which part? Graceful termination periods and disruption budgets are application specific settings and need to be customized for each application / system separately.

            – Robert Bailey
            Jul 12 at 3:18















          5














          When a node is upgraded, GKE will first drain the pods from the node before removing the deleting the virtual machine and removing from the node from the cluster. The process for terminating a pod is explained in detail here and what you should realize is that this process starts before the new pods is created, scheduled, or starts running.



          If you have a deployment and want to keep a specific number of replicas up during the node upgrade process, you should configure pod disruption budgets, with which you can ensure that the node upgrade process will proceed at a slow enough rate to keep enough containers running for your service to handle traffic without any downtime.






          share|improve this answer























          • Thanks! I wonder why Kubernetes doesn't do this by default.

            – Nick
            Jul 11 at 6:25











          • Which part? Graceful termination periods and disruption budgets are application specific settings and need to be customized for each application / system separately.

            – Robert Bailey
            Jul 12 at 3:18













          5












          5








          5







          When a node is upgraded, GKE will first drain the pods from the node before removing the deleting the virtual machine and removing from the node from the cluster. The process for terminating a pod is explained in detail here and what you should realize is that this process starts before the new pods is created, scheduled, or starts running.



          If you have a deployment and want to keep a specific number of replicas up during the node upgrade process, you should configure pod disruption budgets, with which you can ensure that the node upgrade process will proceed at a slow enough rate to keep enough containers running for your service to handle traffic without any downtime.






          share|improve this answer













          When a node is upgraded, GKE will first drain the pods from the node before removing the deleting the virtual machine and removing from the node from the cluster. The process for terminating a pod is explained in detail here and what you should realize is that this process starts before the new pods is created, scheduled, or starts running.



          If you have a deployment and want to keep a specific number of replicas up during the node upgrade process, you should configure pod disruption budgets, with which you can ensure that the node upgrade process will proceed at a slow enough rate to keep enough containers running for your service to handle traffic without any downtime.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Jul 11 at 5:11









          Robert BaileyRobert Bailey

          5093 silver badges6 bronze badges




          5093 silver badges6 bronze badges












          • Thanks! I wonder why Kubernetes doesn't do this by default.

            – Nick
            Jul 11 at 6:25











          • Which part? Graceful termination periods and disruption budgets are application specific settings and need to be customized for each application / system separately.

            – Robert Bailey
            Jul 12 at 3:18

















          • Thanks! I wonder why Kubernetes doesn't do this by default.

            – Nick
            Jul 11 at 6:25











          • Which part? Graceful termination periods and disruption budgets are application specific settings and need to be customized for each application / system separately.

            – Robert Bailey
            Jul 12 at 3:18
















          Thanks! I wonder why Kubernetes doesn't do this by default.

          – Nick
          Jul 11 at 6:25





          Thanks! I wonder why Kubernetes doesn't do this by default.

          – Nick
          Jul 11 at 6:25













          Which part? Graceful termination periods and disruption budgets are application specific settings and need to be customized for each application / system separately.

          – Robert Bailey
          Jul 12 at 3:18





          Which part? Graceful termination periods and disruption budgets are application specific settings and need to be customized for each application / system separately.

          – Robert Bailey
          Jul 12 at 3:18

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Server Fault!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f974771%2fwhen-upgrading-nodes-why-does-kubernetes-terminate-pods-before-the-new-pod-is-i%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

          Circuit construction for execution of conditional statements using least significant bitHow are two different registers being used as “control”?How exactly is the stated composite state of the two registers being produced using the $R_zz$ controlled rotations?Efficiently performing controlled rotations in HHLWould this quantum algorithm implementation work?How to prepare a superposed states of odd integers from $1$ to $sqrtN$?Why is this implementation of the order finding algorithm not working?Circuit construction for Hamiltonian simulationHow can I invert the least significant bit of a certain term of a superposed state?Implementing an oracleImplementing a controlled sum operation

          Magento 2 “No Payment Methods” in Admin New OrderHow to integrate Paypal Express Checkout with the Magento APIMagento 1.5 - Sales > Order > edit order and shipping methods disappearAuto Invoice Check/Money Order Payment methodAdd more simple payment methods?Shipping methods not showingWhat should I do to change payment methods if changing the configuration has no effects?1.9 - No Payment Methods showing upMy Payment Methods not Showing for downloadable/virtual product when checkout?Magento2 API to access internal payment methodHow to call an existing payment methods in the registration form?