web-dev-qa-db-ja.com

ノードをコードオンしてドレインすると、ノードの使用料が請求されますか?

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

システムの開発中に、今のところポッドを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

その後、すべてのポッドが削除されると思いますが、このノードにポッドをリストすると、「システム」ポッドが実行されていることがわかります。

➜  ~ 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>

だから私の質問は:

  • このポッドは何ですか?
  • さらに重要なのは、 価格ページ ?に記載されているように、n1-standard-2マシンを実行するための全費用が請求されていることです。 (現在のところ$ 0.0950 /時間)
1
Joe Cabezas
  1. kube-proxyは、すべてのGKEノードで実行されるネットワークプロキシです。 GKEには、クラスター内のポッドのネットワーク通信を許可するIptablesベースのルールがあります。 kubectl exec -ti -n kube-system KUBE-PROXY-POD-NAME /bin/shを使用してポッドに接続し、iptables -L -nを実行して、Iptablesルールを確認できます。 kube-proxyの詳細

  2. 価格-はいGoogleは実行中のインスタンスの全費用を請求します。アプリケーションまたはポッドが実行されているかどうかは関係ありません。料金は、VMの予約済みのコンピューティング/メモリ/ストレージに対するものです。料金を請求されたくない場合は、インスタンスを削除してください。 gkeノードに preemptible vmsを使用して、料金を下げることもできます。

3
Daniel t.