Я изучаю 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
machine, пока я разрабатываю систему, поэтому я оцепил более дорогой узел, а затем осушил его:
➜ ~ 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 взимает полную стоимость за любой работающий экземпляр. Не имеет значения, запущено ли у вас приложение или модуль или нет. Плата взимается за зарезервированные вычислительные ресурсы / память / хранилище виртуальной машины. Если вы не хотите, чтобы с вас взималась плата, удалите экземпляр. Вы также можете снизить комиссию, используя вытесняемый vms для узлов gke.