To avoid the unexpected expiration and release of preemptible instances, Container Service for Kubernetes (ACK) provides the ack-node-problem-detector component to send you notifications when preemptible instances are about to be released. This topic describes how to check whether a preemptible instance is about to expire.

Prerequisites

A Kubernetes cluster is created and installed with the latest version of ack-node-problem-detector. For more information, see Create a managed Kubernetes cluster.
  • If you choose to create a new cluster, make sure that Install node-problem-detector and Create Event Center is selected.
  • If you choose to use an existing cluster, make sure that the latest version of ack-node-problem-detector is installed. For more information, see Manage system components.

Background information

In ACK clusters, Elastic Compute Service (ECS) instances are used as nodes to host services in the clusters. If you specify preemptible instance or subscription as the billing method when you create an ECS instance in a cluster, the instance will be automatically released at the specified time of expiration. When the instance is automatically released, if pod eviction, node draining, or node replacement is not completed in advance, services that run on the instance may be interrupted. If the instance of a master node is released, cluster-level exceptions may occur. To prevent such issues caused by the automatic release of preemptible instances, ACK uses ack-node-problem-detector to send you notifications when preemptible instances are about to be released.

Procedure

  1. Log on to the ACK console.
  2. In the left-side navigation pane of the ACK console, click Clusters.
  3. On the Clusters page, find the cluster that you want to manage and click the name of the cluster or click Details in the Actions column. The details page of the cluster appears.
  4. In the left-side navigation pane of the details page, choose Nodes > Nodes.
  5. On the Nodes page, find the node that you want to check and click the node name or choose More > Details in the Actions column.
  6. On the node details page, check the status of the InstanceExpired condition.
    In the Status section, check the status of the InstanceExpired condition. Whether the instance is about to expire
    The following table describes the states of InstanceExpired condition.
    State of InstanceExpired Description
    True If the InstanceExpired condition is in the True state and the content is InstanceToBeTerminated, it indicates that the preemptible instance is about to expire and be released.
    False If the InstanceExpired condition is in the False state and the content is InstanceNotToBeTerminated, it indicates that the preemptible instance is not about to expire.
    Unknown This state indicates that an error occurred on ack-node-problem-detector. Submit a ticket.
    If the InstanceExpired condition is in the True state, an event is generated in the Events section, as shown in the following figure. Instance expiry event

What to do next

If the InstanceExpired condition is in the True state, it indicates that the preemptible instance is about to expire and be released. To prevent applications that run on this node from being interrupted, schedule the applications to other nodes. For more information, see Schedule pods to specific nodes.