Kubernetes-2.组件
内容主要摘自官网文档资料 官网地址
本文概述了交付正常运行的Kubernetes集群所需的各种组件。
本文编写基于kubernetes v1.17版本
Kubernetes集群
Kubernetes集群主要组成为Master和Node
简单概述,Master节点就是集群的调度节点、其管理集群;Node节点是应用程序实际运行的节点。
Master组件
Master组件提供集群的Control Plane。Master组件对集群进行全局决策(例如,调度),并检测和响应集群事件(例如,当不满足部署的replicas字段时,启动新的pod)。
Master组件可以在集群中的任何节点上运行。然而,为了简单起见,安装脚本通常会启动同一个计算机上所有Master组件,并且不会在计算机上运行用户容器。
Master组件:
- kube-apiserver
- kube-scheduler
- kube-controller-manager
- etcd
- cloud-controller-manager
kube-apiserver
主节点上负责提供Kubernetes API服务的组件;它是Kubernetes control plane的前端,Kubernetes集群的操作均通过此API接口进行控制。
kube-apiserver在设计上考虑了水平扩缩的需要。换言之,通过部署多个实例可以实现扩缩。
kube-scheduler
主节点上的组件,该组件监视那些新创建的未指定运行节点的Pod,并选择节点让Pod在上面运行,简言之就是负责资源调度(Pod调度)
。
调度决策考虑的因素包括单个Pod和Pod集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。
kube-controller-manager
Kubernetes中所有资源对象的自动化控制中心
。
从逻辑上讲,每个控制器控制器通过apiserver监控集群的公共状态,并致力于将当前状态转变为期望的状态。都是一个单独的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。
这些控制器包括:
- 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应。
- 副本控制器(Replication Controller):负责为系统中的每个副本控制器对象维护正确数量的Pod。
- 端点控制器(Endpoints Controller):填充端点(Endpoints)对象(即加入Service与Pod)。
- 服务帐户和令牌控制器(Service Account & Token Controllers):为新的命名空间创建默认帐户和API访问令牌.
etcd
etcd是兼具一致性和高可用性的键值数据库,可以作为保存Kubernetes所有集群数据的后台数据库
。
您的Kubernetes集群的etcd数据库通常需要有个备份计划。
云控制器管理器-(cloud-controller-manager)
cloud-controller-manager运行与基础云提供商交互的控制器。cloud-controller-manager二进制文件是Kubernetes 1.6版本中引入的alpha功能。
cloud-controller-manager仅运行云提供商特定的控制器循环。您必须在kube-controller-manager中禁用这些控制器循环,可以通过在启动kube-controller-manager时将--cloud-provider参数设置为external来禁用控制器循环。
cloud-controller-manager允许云供应商的代码和Kubernetes代码彼此独立地发展。在以前的版本中,核心的Kubernetes代码依赖于特定云提供商的代码来实现功能。在将来的版本中,云供应商专有的代码应由云供应商自己维护,并与运行Kubernetes的云控制器管理器相关联。
以下控制器具有云提供商依赖性:
- 节点控制器(Node Controller):用于检查云提供商以确定节点是否在云中停止响应后被删除
- 路由控制器(Route Controller):用于在底层云基础架构中设置路由
- 服务控制器(Service Controller):用于创建、更新和删除云提供商负载均衡器
- 数据卷控制器(Volume Controller):用于创建、附加和装载卷、并与云提供商进行交互以编排卷
Node组件
Node节点是运行容器应用化的机器,维护着运行的Pod并提供Kubernetes运行环境。
Node组件:
- kubelet
- kube-proxy
- 容器运行环境
kubelet
与apiserver通信,并管理所在节点的容器。kubelet不会管理不是由Kubernetes创建的容器
。
kube-proxy
kube-proxy是集群中每个节点上运行的网络代理,实现Kubernetes Service概念的一部分。
kube-proxy负责组件之间的负载均衡网络流量
,维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与Pod进行网络通信。
容器运行环境(Container Runtime)
容器运行环境是负责运行容器的软件(例如Docker)。
Kubernetes支持多个容器运行环境:Docker、containerd、cri-o、rktlet以及任何实现Kubernetes CRI(容器运行环境接口)。
插件(Addons)
插件使用Kubernetes资源(DaemonSet,Deployment等)实现集群功能。因为这些提供集群级别的功能,所以插件的命名空间资源属于kube-system命名空间。
可用插件的扩展列表:插件
DNS
尽管并非严格要求其他附加组件,但所有示例都依赖集群DNS,因此所有Kubernetes集群都应具有DNS,它为Kubernetes服务提供DNS记录。
ClusterDNS是一个DNS服务器,和您部署环境中的其他DNS服务器一起工作,为Kubernetes服务提供DNS记录。
Kubernetes启动的容器自动将DNS服务器包含在DNS searches(DNS搜索域)。
Dashboard
Kubernetes集群的Web UI。它使用户可以管理集群中运行的应用程序以及集群本身并进行故障排除。
容器资源监控
容器资源监控将关于容器的一些常见的时间序列度量值保存到一个集中的数据库中,并提供用于浏览这些数据的界面。
集群层面日志
集群层面日志机制负责将容器的日志数据保存到一个集中的日志存储中,该存储能够提供搜索和浏览接口。
Networking and Network Policy
网络插件负责为接口配置和管理IP地址,并且通常提供与IP管理、每个容器的IP分配、以及多主机连接相关的功能。网络策略插件允许集群群组与其他网络终端进行通信时的规范以定义规则。
总结
kubernetes的主要组成
主要有两部分组成,master节点以及node节点。master节点包含kube-apiserver,kube-scheduler,kube-controller-manager,etcd,cloud-controller-manager组件;node节点包含kubelet,kube-proxy,容器运行环境。
哪些附件组件能够更好地帮助我们完善kubernetes集群的属性
DNS:为Kubernetes服务提供DNS记录解析。
Dashboard:kubernetes集群的Web UI,使管理更方便。
资源监控:更好地了解集群状态。
集群日志:更好地排查解决问题。
网络插件:管理网络及网络策略。
小结
更加详细地了解了Kubernetes的组成,以及各组件的一些细节。了解到运行一个Kubernetes集群需要哪些组成,怎么样才能够更好地运行和管理Kubernetes集群等一些基础理论知识。
Kubernetes-2.组件的更多相关文章
- kubernetes kubelet组件中cgroup的层层"戒备"
cgroup是linux内核中用于实现资源使用限制和统计的模块,docker的风靡一时少不了cgroup等特性的支持.kubernetes作为容器编排引擎,除了借助docker进行容器进程的资源管理外 ...
- kubernetes的组件和概念介绍
1.控制平面组件(也被称为master节点组件) 控制平面的组件我们会找一台单独的机器来部署,我们习惯上把部署控制平面组件的机器称为master节点,以下都会用master节点来代替控制平面这个概念, ...
- k8s/Kubernetes常用组件Helm的部署
Helm的安装 1.Helm的基本概念 Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理.可以把Helm比作CentOS的yum工具. Helm有如下几个基 ...
- centos7下kubernetes(4.kubernetes组件)
Kubenetes cluster 由master和node组成 Master是kubenetes的大脑.运行着以下进程:kube-apiserver.kube-scheduler.kube-cont ...
- Kubernetes【K8S】(一):Kubernetes组件
什么是Kubernetes Kubernetes 是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化.Kubernetes拥有一个庞大且快速增长的生态系统. ...
- Kubernetes初步
Kubernetes是Google开源的容器集群管理系统.它构建于docker技术之上.为容器化的应用提供资源调度.部署执行.服务发现.扩容缩容等整一套功能.本质上可看作是基于容器技术的mini-Pa ...
- Ubuntu上手动安装Kubernetes
背景 两台Ubuntu16.04服务器:ip分别为192.168.56.160和192.168.56.161.. Kubernetes版本:1.5.5 Docker版本:1.12.6 etcd版本:2 ...
- China Azure中部署Kubernetes(K8S)集群
目前China Azure还不支持容器服务(ACS),使用名称"az acs create --orchestrator-type Kubernetes -g zymtest -n kube ...
- Kubernetes 架构(上)- 每天5分钟玩转 Docker 容器技术(120)
Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 Kubernetes Cluster ...
- Kubernetes 概念整理
注:以下大部分内容来自网上摘录,以便后期查阅. Kubernetes (通常称为 K8s) 是用于自动部署.扩展和管理容器化(containerized)应用程序的开源系统,是 Google 内部工具 ...
随机推荐
- Inceptor查询语句
-- MySQL中的语句都能用,不再一一描述,只记录一些不同 详情见Inceptor 6.0文档 3.4.4查询语句这节 -- 查询语句 SELECT开头,可以通过添加多种从句从Inceptor中的表 ...
- CF-1354 E. Graph Coloring(二分图,背包,背包方案输出)
E. Graph Coloring 链接 n个点m条边的无向图,不保证联通,给每个点标号1,2,3.1号点个数n1,2号点个数n2,3号点个数n3.且每条边的两点,标号之差绝对值为1.如果有合法方案, ...
- HDU 4289 Control(最大流+拆点,最小割点)
题意: 有一群恐怖分子要从起点st到en城市集合,你要在路程中的城市阻止他们,使得他们全部都被抓到(当然st城市,en城市也可以抓捕).在每一个城市抓捕都有一个花费,你要找到花费最少是多少. 题解: ...
- Codeforces Round #666 (Div. 2) B. Power Sequence (枚举)
题意:有一个长度为\(n\)的序列,你每次可以对序列重新排序,然后花费\(1\)使某个元素加减\(1\),多次操作后使得新序列满足\(a_{i}=c^i\),\(c\)是某个正整数,求最小花费. 题解 ...
- Django分页APP_django-pure-pagination
一.App说明 该App用户Django的数据分页功能 二.安装 pip install django-pure-pagination 三.使用方法 (1)settings注册 INSTALLED_A ...
- spfa+链式前向星模板
#include<bits/stdc++.h> #define inf 1<<30 using namespace std; struct Edge{ int nex,to,w ...
- BZOJ3211 花神游历各国(分块 区间开根号)
题意:给n个数,可以进行两种操作:给区间[l,r]每个数开方向下取整:算区间[l,r]的和. 思路:我们可以知道,一个数一直开方下去,就会变成0或者1,然后就不会变了.那么当一个区间只剩0或1时,就不 ...
- XSS脚本汇总
(1)普通的XSS JavaScript注入<SCRIPT SRC=http://***/XSS/xss.js></SCRIPT> (2)IMG标签XSS使用JavaScrip ...
- 让你像黑客一样写代码(not really)
让你像黑客一样写代码(not really) http://poznan.tvp.pl 这是一个波兰的视频网站. poznan 波兹南(波兰城市 视屏链接 http://video.sina.com. ...
- 中英文混排网站排版指南 All In One
中英文混排网站排版指南 All In One 排版 数字与单位 正确 5G 的下载速度可以达到 1Gbps,4G 为100Mbps 1Gbps === 1000Mbps 错误 5G的下载速度可以达到1 ...