Kubenetes cluster 由master和node组成

Master是kubenetes的大脑。运行着以下进程:kube-apiserver、kube-scheduler、kube-controller-manager、etcd 和 Pod 网络(例如 flannel)。

API Server(kube-apiserver)

API Server 提供 HTTP/HTTPS RESTful API,即 Kubernetes API。API Server 是 Kubernetes Cluster 的前端接口,各种客户端工具(CLI或UI)以及kubenetes其他组件可以通过管理 Cluster 的各种资源。

Scheduler(kube-scheduler)

Scheduler负责决定将Pod放在那个node上运行,Scheduler在调度时会充分考虑Cluster的拓扑结构,当前各个节点的负载,以及应用对高可用,性能,数据亲和性的需求

Controller Manager(kube-controller-manager)

Controller Manager 负责管理 Cluster 各种资源,保证资源处于预期的状态。Controller Manager 由多种 controller 组成,包括 replication controller、endpoints controller、namespace controller、serviceaccounts controller 等。不同的controller管理不同的资源。

ETcd

etcd负责保存 Kubernetes Cluster的配置信息和各种资源的状态信息。当数据发生变化时,Etcd会快速的通知Kubenetes相关组件

Pod网络

Pod之间相互通信的网络,我们在部署的时候选择了flannel,还有其他选项可选

node

node是运行pod的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。 Node上运行的 Kubernetes 组件有 kubelet、kube-proxy 和 Pod 网络(例如 flannel)。

kubelet:

kubelet是node的agent,当scheduler确定在某个node上运行pod后,会将pod的具体配置信息(image,volume)发送给该节点kubelet,kubelet根据这些信息创建和运行容器,并向master报告运行状态

kube-proxy

每个node都会运行kube-proxy服务,它负责将访问service的TCP/UDP数据流转发到后端的容器。如果有多个副本,kube-proxy会实现负载均衡

pod网络

负责集群中的pod进行通信,例如我们部署的flannel

几乎所有的 Kubernetes 组件本身也运行在 Pod 里

kubectl get pod --all-namespaces -o wide

这些pod默认的运行在kube-system的namespaces中

kube-dns组件,它为cluster提供DNS服务。在执行集群初始化的时候作为组件安装。

kubelet是唯一没有以容器形式运行的kubenetes的组件,在系统中以systemd服务的形式运行。

kubernetes各组件的联系

通过运行应用进行解析

kubectl run httpd-app --image=httpd --replicas=2

kubectl get deployment

kubectl get pod  -o wide

kubernetes部署了deployment httpd-app,有两个副本,分别运行在两个node上

执行过程:

1.kubectl发送部署请求到API Server

2.API Server通知Controller manager创建一个deployment

3.Scheduler执行调度任务,将两个副本pod分发到两个node上

4.两个node分别执行创建并运行pod

应用的配置和当前状态信息保存在etcd中,执行kubectl get pod时,API Server会从etcd中读取这些信息

flannel会为每个POD都分配IP。

centos7下kubernetes(4.kubernetes组件)的更多相关文章

  1. Centos7下yum安装kubernetes

    一.前言    Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动态扩缩容等功能套件,目前centos yum源上 ...

  2. [Kubernetes]关于 Kubernetes ,你想要的,都在这儿了

    陆陆续续,关于 Kubernetes 写了有 20+ 篇文章了. 今天这篇文章来一个整合,从实践到理论,可以按需查看(我是按照博客发表时间来排序的,如果后续有想要更新的内容,也会及时更新到这篇文章中) ...

  3. centos7下kubernetes(3。部署kubernetes)

    环境:三个centos7 K8s2是Master;K8s1是node1:K8s3是node2 官方文档:https://kubernetes.io/docs/setup/independent/ins ...

  4. [Kubernetes]CentOS7下Etcd集群搭建

    Etcd简要介绍 Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息 Etcd构建自身高可用集群主要有三种形式: ①静态发现: 预先已知 Etcd 集 ...

  5. centos7.5下kubeadm安装kubernetes集群安装

    文章是按https://blog.csdn.net/Excairun/article/details/88962769,来进行操作并记录相关结果 版本:k8s V14.0,docker-ce 18.0 ...

  6. [Kubernetes]CentOS7下搭建Harbor仓库

    环境依赖: Harbor仓库需要环境:Python 2.7或以上版本,Docker 1.10或以上,Docker Compose 1.6.0或以上. CentOS7自带Python,所以不需要安装. ...

  7. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  8. centos7使用kubeadm安装kubernetes集群

    参考资料:官方文档 一.虚拟机安装 配置说明: windows下使用vbox,centos17.6 min版,kubernetes的版本是1.14.1, 安装如下三台机器: 192.168.56.15 ...

  9. centos7使用kubeadm搭建kubernetes集群

    一.本地实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.222.129 >=2c >=2G master 192.168.222.130 >=2 ...

  10. 从centos7镜像到搭建kubernetes集群(kubeadm方式安装)

    在网上看了不少关于Kubernetes的视频,虽然现在还未用上,但是也是时候总结记录一下,父亲常教我的一句话:学到手的东西总有一天会有用!我也相信在将来的某一天会用到现在所学的技术.废话不多扯了... ...

随机推荐

  1. [PHP] 算法-顺时针打印矩阵的PHP实现

    1.行数和列数取出来row,col,圈数就是 (较小值-1)/2+1 2.外层循环控制圈数,内层四个for循环,i 3.第一个for循环,从左到右,j=i;j<col-i;j++;j<; ...

  2. (7)Jquery1.8.3快速入门_内容过滤选择器

    一.Jquery的内容过滤选择器: 内容过滤选择器: 1.:contains(text) 选取含有文本内容为text的元素 2. :empty 选取不包含子元素或者文本为空的元素 3.:has(sel ...

  3. php生成xml数据

    1.php生成xml数据一般有2种方式, 一个是组装字符串,另一个就是使用php内置的系统类 2.使用php内置类生成xml数据 3.拼装字符串生成xml数据 public function stat ...

  4. 获取邮箱的DNS和MX 工具类

    1.导入Maven  DNS  包: <dependency> <groupId>dnsjava</groupId> <artifactId>dnsja ...

  5. MongoDB 3.0 WT引擎参考配置文件

    单实例: systemLog: destination: file ###日志存储位置 path: /data/mongodb/log/mongod.log logAppend: true stora ...

  6. HTML笔记(适合新手入门)

    HTML Web 标准构成 Web标准不是某一个标准,而是由W3C和其他标准化组织制定的一系列标准的集合. 主要包括结构(Structure).表现(Presentation)和行为(Behavior ...

  7. windows10系统关闭自动更新服务

    一.关闭Windows10系统的自动更新服务 1:使用快捷键Win+R,打开运行 2:输入命令:services.msc,打开系统服务界面 找到Windows Update双击 将启动类型改为[禁用] ...

  8. Nginx 集群 反向代理多个服务器

    准备多个服务器,使用 nginx 先做好代理(我这里只有一台服务器,就拷贝两个 tomcat 了,端口分别设置为 8081 和 8082) 1,复制 tomcat cp -r apache-tomca ...

  9. 【极简】如何挑选合适的百度BCC,并安装宝塔控制面板

    1.前期有百度云账号,登陆系统控制台,点击产品"云服务器BCC". 2.关闭绑定快照策略,选择购买弹性公网IP,如果选择不需要,服务器就没有对外的IP,只能在内网内使用,所以这里要 ...

  10. Javascript 对象 - 数组对象

    JavaScript核心对象 数组对象Array 字符串对象String 日期对象Date 数学对象Math 数组对象 数组对象是用来在单一的变量名中存储一系列的值.数组是在编程语言中经常使用的一种数 ...