如果我封锁并耗尽节点,是否需要为节点使用付费?

如果我封锁并耗尽节点,是否需要为节点使用付费?

我正在学习 GKE(Google Kubernetes Engine),并且我有一个包含 2 个节点池的集群:

➜  ~ gcloud container node-pools list
NAME                MACHINE_TYPE   DISK_SIZE_GB  NODE_VERSION
pool-2              n1-standard-1  10            1.14.10-gke.24
pool-n1-standard-2  n1-standard-2  10            1.14.10-gke.24

每个节点池上都有 1 个节点:

➜  ~ kubectl get node
NAME                                             STATUS   ROLES    AGE     VERSION
gke-cluster-1-pool-2-bec144d8-rqb8               Ready    <none>   8d      v1.14.10-gke.24
gke-cluster-1-pool-n1-standard-2-892e9394-b8x8   Ready    <none>   5h11m   v1.14.10-gke.24

➜  ~ kubectl describe node | grep -i cloud.google.com/gke-nodepool
                    cloud.google.com/gke-nodepool=pool-2
                    cloud.google.com/gke-nodepool=pool-n1-standard-2

我希望我的 pod 暂时在一台n1-standard-1机器上运行,同时我开发系统,因此我封锁了更昂贵的节点,然后耗尽了它:

➜  ~ kubectl cordon gke-cluster-1-pool-n1-standard-2-892e9394-b8x8
node/gke-cluster-1-pool-n1-standard-2-892e9394-b8x8 cordoned

➜  ~ kubectl drain gke-cluster-1-pool-n1-standard-2-892e9394-b8x8
node/gke-cluster-1-pool-n1-standard-2-892e9394-b8x8 already cordoned
node/gke-cluster-1-pool-n1-standard-2-892e9394-b8x8 drained

在此之后,我预计所有 pod 都会被驱逐,但列出此节点上的 pod 仍然显示一些“系统”pod 正在运行:

➜  ~ kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=gke-cluster-1-pool-n1-standard-2-892e9394-b8x8
NAMESPACE     NAME                                                        READY   STATUS    RESTARTS   AGE     IP           NODE                                             NOMINATED NODE   READINESS GATES
kube-system   kube-proxy-gke-cluster-1-pool-n1-standard-2-892e9394-b8x8   1/1     Running   0          5h22m   10.138.0.7   gke-cluster-1-pool-n1-standard-2-892e9394-b8x8   <none>           <none>

所以我的问题是:

  • 这是什么 pod?
  • 更重要的是,我被收取了机器运行的全部费用,n1-standard-2定价页面?(截至目前为 0.0950 美元/小时)

答案1

  1. kube-proxy是在所有 GKE 节点中运行的网络代理。在 GKE 中,它具有基于 Iptables 的规则,以允许集群中的 Pod 进行网络通信。您可以使用连接到 Pod 并kubectl exec -ti -n kube-system KUBE-PROXY-POD-NAME /bin/sh执行iptables -L -n以查看 Iptables 规则。有关 kube-proxy 的更多信息

  2. 定价 - 是的,Google 将对任何正在运行的实例收取全额费用。无论您是否在其中运行应用程序或 pod,都没有关系。费用是针对虚拟机的预留计算/内存/存储。如果您不想被收取费用,请删除该实例。您还可以通过使用可抢占gke 节点的 vms。

相关内容