k8s多master建议用几个_Kubernetes中Master和Node的概念

2d556b80b402e44283dde3d00ce21b09.png

kubernetes之master和node

Kubernetes中的包含了很多如 NodePodReplicationControllerServiceDeployment“资源对象”,几乎所有的资源对象都可以通过Kubernetes提供的kubectl工具(或者API编程调用)执行增、删、改、查等操作并将其保存在 etcd-v3中持久化存储。从这个角度来看,Kubernetes其实是一个高度自动化的资源控制系统,它通过跟踪对比etcd库里保存的“资源期望状态”与当前环境中的“实际资源状态”的差异来实现自动控制和自动纠错的高级功能。

kubernetes资源对象可以通过kubectl的子命令 api-resources查看。

☸️ devcluster? monitor ~  ? ? kubectl api-resources

NAME SHORTNAMES APIGROUP NAMESPACED KIND

bindings true Binding

componentstatuses cs false ComponentStatus

configmaps cm true ConfigMap

endpoints ep true Endpoints

events ev true Event

limitranges limits true LimitRange

...

在介绍资源对象之前,我们先了解一下Kubernetes集群的两种管理角色:MasterNode

k8s多master建议用几个_Kubernetes中Master和Node的概念_第1张图片

Master

Kubernetes里的Master指的是集群控制节点,每一个Kubernetes集群里都必须要有一个Master节点来负责整个集群的管理和控制,基本上Kubernetes的所有控制命令都发给它,它来负责具体的执行过程,我们后面执行的所有命令基本都是在Master节点上运行的。我们通常会把Master部署在一个独立的服务器上,如何高可用部署建议用3台服务器,master也可以扩展副本数,来获取更好的可用性和冗余。其主要原因是它太重要了,是整个集群的“首脑brain”,如果宕机或者不可用,那么对集群内容器应用的管理都将失效。

Master节点上运行着以下一组关键进程。

  • KubernetesAPIServer(kube-apiserver):提供了 HTTP Rest 接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口,也是集群控制的入口进程。查看具体的哪些API:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#-strong-api-overview-strong-

  • KubernetesControllerManager(kube-controller-manager):Kubernetes里所有资源对象的自动化控制中心,可以理解为资源对象的“大总管”。

  • KubernetesScheduler(kube-scheduler):负责资源调度(Pod调度)的进程,安排哪些服务的pod运行在哪些节点上。

另外,在Master节点上还需要启动一个etcd服务,正如前面讲到的,Kubernetes里的所有资源对象的数据全部是保存在etcd中

你可能感兴趣的:(k8s多master建议用几个,kubectl,获取不到node)