【问题标题】:Understanding the nodes of Kubernetes cluster in Google Cloud Platform了解 Google Cloud Platform 中 Kubernetes 集群的节点
【发布时间】:2018-05-05 19:23:58
【问题描述】:

作为 Google Cloud Platform 的新手,我有一个关于 kubernetes 集群的节点的基本问题。

通过免费层访问,我启动了一个具有 3 个节点的 kubernetes 集群。

kubectl get nodes
NAME                                       STATUS    ROLES     AGE       VERSION
gke-cluster-1-default-pool-5ac7520f-097t   Ready     <none>    20h       v1.7.8-gke.0
gke-cluster-1-default-pool-5ac7520f-9lp7   Ready     <none>    20h       v1.7.8-gke.0
gke-cluster-1-default-pool-5ac7520f-vhs2   Ready     <none>    20h       v1.7.8-gke.0

在尝试探索集群时了解到启动的节点只是 Pod,而不是 VM 或服务器

$kubectl --namespace=kube-system get pods 
NAME                                                 READY     STATUS    RESTARTS   AGE 
kube-proxy-gke-cluster-1-default-pool-5ac7520f-097t   1/1       Running   0          20h 
kube-proxy-gke-cluster-1-default-pool-5ac7520f-9lp7   1/1       Running   0          20h 
kube-proxy-gke-cluster-1-default-pool-5ac7520f-vhs2   1/1       Running   0          20h

(注意:为了便于阅读,删除了有关其他 pod 的信息)

这里的困惑是如何实现集群中节点的高可用性(因为 pod 的实例数是 1/1)?

【问题讨论】:

    标签: kubernetes google-cloud-platform


    【解决方案1】:

    我认为您错过了节点的实际设置方式。

    每个节点都是网络中的一个单独的虚拟机。它们在它们之间托管您的 Kubernetes 网络。 Kubeproxy 只是节点的一个方面,它允许 pod、服务和部署在节点之间进行通信。在这些节点上还有一堆额外的部署正在运行。我通常会忽略所有系统命名空间,因为它正常工作,但您可以在 GCP Web 界面中的 Kubernetes Engine 工作负载下查看它们。然后删除 Is System Object 标志。

    Kubeproxy 作为每个节点上的 pod 启动,如果它失败,Kubernetes 会在节点上重新启动它,这将(希望)修复节点并使其能够再次正确通信。

    【讨论】:

    • 我正在寻找有关为什么节点名称和 pod 名称相同的更多信息?是不是说集群中的节点只是pod?
    • 实际上,它们不是,它们前面有 kube-proxy- - 但之后继承了节点名。尽管每个 pod 在每个节点上作为独立的 pod 运行,但它特定于该节点,而不是整个集群。但是,它启用了自动重启,因此如果出现错误,它将重新启动。
    猜你喜欢
    • 1970-01-01
    • 2018-12-04
    • 2016-07-09
    • 2019-06-22
    • 1970-01-01
    • 2021-11-26
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多