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 /時間)kube-proxy
は、すべてのGKEノードで実行されるネットワークプロキシです。 GKEには、クラスター内のポッドのネットワーク通信を許可するIptablesベースのルールがあります。 kubectl exec -ti -n kube-system KUBE-PROXY-POD-NAME /bin/sh
を使用してポッドに接続し、iptables -L -n
を実行して、Iptablesルールを確認できます。 kube-proxyの詳細 。
価格-はいGoogleは実行中のインスタンスの全費用を請求します。アプリケーションまたはポッドが実行されているかどうかは関係ありません。料金は、VMの予約済みのコンピューティング/メモリ/ストレージに対するものです。料金を請求されたくない場合は、インスタンスを削除してください。 gkeノードに preemptible vmsを使用して、料金を下げることもできます。