我正在学习GKE (Google Kubernetes Engine),我有一个包含两个节点池的集群:
➜ ~ 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我在每个节点池上有一个节点:
➜ ~ kubectl get node
NAME STATUS ROLES AGE VERSION
gke-cluster-1-pool-2-bec144d8-rqb8 Ready 8d v1.14.10-gke.24
gke-cluster-1-pool-n1-standard-2-892e9394-b8x8 Ready 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 所以我的问题是:
n1-standard-2机器的全部费用,如“定价页面”中所述(截至目前,每小时0.0950美元)。发布于 2020-03-30 03:36:21
kube-proxy是一个在所有GKE节点中运行的网络代理。在GKE中,它有基于Iptable的规则,允许集群中豆荚的网络通信。您可以使用kubectl exec -ti -n kube-system KUBE-PROXY-POD-NAME /bin/sh连接到结束符,并执行iptables -L -n来查看Iptables规则。关于kube代理的更多信息。https://serverfault.com/questions/1008835
复制相似问题