<p>GKE manages nodes as <a href="https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools" rel="nofollow noreferrer">node pools</a>, but I don't find the concept of NodePool in Kubernetes. So wondering is it a GKE-specific concept?</p>

Dagang
<p>Yes, node pool is a GKE-specific concept. It allows you add groups of nodes into the cluster that have different resources or characteristics (memory, cpu, disks, preemptible, etc). </p>

<p>Kubernetes itself is only aware of nodes registered in the cluster, their resources, labels and taints. With labels, you can schedule workloads to specific node pools using <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/" rel="noreferrer">Node Selectors</a>. Taints allow you repel all workloads that don't tolerate the properties. See <a href="https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/" rel="noreferrer">Taints and Tolerations</a></p>
