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 内部工具 ...
随机推荐
- HDU6311 Cover【欧拉路径 | 回路】
HDU6311 Cover 题意: 给出\(N\)个点的简单无向图,不一定联通,现在要用最少的路径去覆盖所有边,并且每条边只被覆盖一次,问最少路径覆盖数和各条路径 \(N\le 10^5\) 题解: ...
- Poj-3922 A simple stone game(k倍动态减法)
题意: 游戏是这样的:两个玩家以一堆n个石头开始游戏.他们轮流从石堆里取石头,每次至少取一块.先走的人第一步最多可以拿n-1块石头.从那时起,一个玩家最多可以拿k倍于他的对手上次拿的石头.例如,如果一 ...
- Failed to start LSB 网络服务启动失败
有些时候 VMare虚拟机挂起,重新运行后,XShell远程连接不上,检查VMare虚拟机,重启网卡会报错,查看日志,会有 Failed to start LSB .... CentOS7 会有一个网 ...
- kubernetes进阶(二)核心网络插件Flannel
网络插件Flannel介绍:https://www.kubernetes.org.cn/3682.html 首先,flannel利用Kubernetes API或者etcd用于存储整个集群的网络配置, ...
- tensorflow报错:Attempting to fetch value instead of handling error Internal: failed to get device attribute 13 for device 0: CUDA_ERROR_UNKNOWN:
就是在spyder跑上一篇文章的代码然后就报错: Attempting to fetch value instead of handling error Internal: failed to get ...
- Ubuntu桌面消失
Ubuntu桌面消失 按Ctrl + Alt + F1, 切回文本模式, 输入用户名和密码登录. 重装桌面和unity: sudo apt-get update sudo apt-get instal ...
- 如何快速定位 Redis 热 key?
背景 在 Redis 中,热 key 指的是那些在一段时间内访问频次比较高的键值,具体到业务上,商品的限时抢购.瞬时的新闻热点或某个全局性的资源,都极有可能产生热点 key. 热点 key 的出现可能 ...
- cnblogs blogs backup & node.js crawler
cnblogs blogs backup & node.js crawler refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访 ...
- how to enable vue cli auto open the localhost url
how to enable vue cli auto open the localhost URL bad you must click the link by manually, waste of ...
- Headless Chrome Node API
puppeteer Headless Chrome Node API https://github.com/GoogleChrome/puppeteer https://pptr.dev/ PWA h ...