k8s的组件及其功能概览
# 参考网址:https://kubernetes.io/docs/concepts/overview/components/#node-components<br>http://docs.kubernetes.org.cn/230.html#Master<br>https://zhibo.huaweicloud.com/watch/2174406
# k8s概览
# What Kubernetes offers
您的团队正在部署普通的Rails应用程序。您已经运行了一些计算,并确定您需要在任何给定时间运行五个应用实例,以便处理外部流量,如果不用kubernetes或者类似的自动系统,可能会遇到下列熟悉的情况:
您的应用程序的一个实例(一个完整的机器实例或只是一个容器)会关闭。
由于您的团队具有监控设置,因此可能需要找运维人员。
运维人员必须进入,调查并手动启动新实例。
根据您的团队处理DNS /网络的方式,运维人员可能还需要更新服务发现机制以指向新Rails实例的IP而不是旧的。
这种方式很不方便。
要使Kubernetes有用,它需要知道您希望它维护什么类型的集群状态。您的YAML或JSON配置文件根据一个或多个API对象(例如“部署”)声明了所需的状态。要更新群集的状态,请将这些文件提交到Kubernetes API服务器(kube-apiserver)。
请注意,API服务器只是网关,该对象数据实际存储在名为etcd的高可用性数据存储中。但是,对于大多数意图和目的,您可以专注于API服务器。对群集状态的大多数读取和写入都是作为API请求进行的。
一旦通过API声明你想要的集群状态控制器将工作使集群达到所需状态。标准控制器有Kkube-controller-manager和cloud-controller-manager,也可以自己编写自己的控制器。
# kubernetes组件
## master组件
Master组件提供集群的管理控制中心。
Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。
### kube-apiserver
用于暴露Kubernetes API,任何资源请求和调用操作都是通过kube-apiserver提供的接口进行。
### ETCD
是Kubernetes提供的默认存储系统,保存所有集群的数据,使用时需要为etcd数据备份计划。
### kube-controller-manager:
运行管理控制器,他们是集群中处理常规任务的后台线程,逻辑上每隔控制器都是单独的进程,为了降低复 杂性,他们都被变异成二进制文件,并在单个进程中运行。这些控制器包括:
节点控制器(Node)
副本控制器(Replication):维护系统中的每隔副本中的pod
端点控制器(Endpoints):填充Endpoints对象(即连接services&pods)
Service Account 和Token控制器:为新的Namespace创建默认账户访问API Token。
### cloud-controller-manager
云控制器管理负责底层提供商的平台交互。云控制器仅运行云提供商特定的(controller loops)控制器循 环。可以通过将--cloud-provider flag设置为external启动kube-controller-manager来禁用控制器循环。
### cloud-controller-manager具体功能:节点控制器(Node)、路由控制器(Route)、Service控制器、卷(Volume)控制器
### kube-scheduler
监视新创建没有分配到Node的Pod,为Pod选择一个Node。
## 插件addons
是实现集群pod和service功能的。Pod由Deployments,ReplicationController等进行管理。Namespace插件对象是kube-system Namespace中创建。
### DNS:虽然不严格要求使用插件,但Kubernetes集群都应该具有集群DNS,集群DNS是一个DNS服务器,能够Kubernetes service提供DNS记录,由Kubernetes启动的容器自动将这个DNS服务器包含在他们的DNSserches中。
### Web UI(Dashboard) 是Kubernetes集群的基于Web的通用UI。它允许用户管理和解决群集中运行的应用程序以及群集本身。 集装箱资源监测。
### 容器资源监测: 容器资源监视记录有关中央数据库中容器的通用时间序列度量,并提供用于浏览该数据的UI
### Cluster-level Logging,负责保存容器日志,搜索/查看日志。
## 节点组件(Node)
节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod
### kubelet
kunelet是主要的节点代理,他会见识已分配给节点的pod具体功能:
安装pod所需的volume
下载pod的secrets
控制pod中运行的容器
定期进行容器健康检查
### kube-proxy
kube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。
- 点赞
- 收藏
- 关注作者
评论(0)