名词
CI 持续集成,
自动化构建和测试:通过使用自动化构建工具和自动化测试套件,持续集成可以帮助开发人员自动构建和测试他们的代码。这样可以快速检测到潜在的问题,并及早修复。

频繁集成:开发人员的代码变更通常会频繁地集成到主干中,这有助于减少代码之间的冲突,并更早地发现和解决集成问题。

快速反馈:持续集成通过自动构建和测试过程,为开发人员提供了快速的反馈。如果构建或测试失败,开发人员可以立即得知,并及时修复。

自动化部署:持续集成不仅关注代码集成,还包括自动化部署到目标环境的过程。这有助于更快地将软件交付给最终用户。


CD 持续交付 Delivery
CD 持续部署 Deployment 

自动化构建和测试:通过使用自动化构建工具和自动化测试套件,持续交付可以帮助开发人员自动构建和测试他们的代码。这样可以快速检测到潜在的问题,并及早修复。

自动化部署:持续交付通过自动化部署工具和流程,帮助开发人员自动将软件部署到目标环境中。这有助于加快软件交付的速度,并减少由于手动部署而引入的错误。

可靠性和可重复性:持续交付通过自动化整个交付过程,提高了软件部署的可靠性和可重复性。这有助于降低发布新版本的风险,并提高整个软件交付过程的质量。


kubernetes 是站在 borg的基础上进行改进

kubernetes 更多的关注的是群体,而不是个体,因为其自我修复速度很快

功能要点
自动装箱,自我修复,水平扩张,服务发现和负载均衡,自动发布和回滚
密钥和配置管理,存储编排,任务批量执行


kubernetes 是什么? 
多个主机当一个主机使用,完成一些功能提供给服务使用

不同主机不同角色

k8s核心要素
基于yaml⽂文件实现容器器的⾃自动创建、删除 更更快速实现业务的弹性横向扩容 动态发现新扩容的容器器并对⾃自动⽤用户提供访问 更更简单、更更快速的实现业务代码升级和回滚

在这里插入图片描述

CNCF 云原生框架简介

https://www.kubernetes.org.cn/5482.html

k8s组建介绍
 kube-apiserver:Kubernetes API server 为 api 对象验证并配置数据,包括 pods、 services、
replicationcontrollers和其它 api 对象,API Server 提供 REST 操作,并为集群的共享状态提供前端访
问⼊⼝,kubernetes中的所有其他组件都通过该前端进⾏交互。

kube-scheduler是Kubernetes的pod调度器,负责将Pods指派到合法的节点上,kube-scheduler调度
器基于约束和可⽤资源为调度队列中每个Pod确定其可合法放置的节点,kube-scheduler⼀个拥有丰富
策略、能够感知拓扑变化、⽀持特定负载的功能组件,kube-scheduler需要考虑独⽴的和集体的资源需
求、服务质量需求、硬件/软件/策略限制、亲和与反亲和规范等需求。

kube-controller-manager:Controller Manager作为集群内部的管理控制中⼼,负责集群内的Node、
Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定
额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执⾏⾃动
化修复流程,确保集群中的pod副本始终处于预期的⼯作状态。

kube-proxy:Kubernetes ⽹络代理运⾏在 node 上,它反映了 node 上 Kubernetes API 中定义的服
务,并可以通过⼀组后端进⾏简单的 TCP、UDP 和 SCTP 流转发或者在⼀组后端进⾏循环 TCP、UDP 和
SCTP 转发,⽤户必须使⽤ apiserver API 创建⼀个服务来配置代理,其实就是kube-proxy通过在主机上
维护⽹络规则并执⾏连接转发来实现Kubernetes服务访问。

kubelet:是运⾏在每个worker节点的代理组件,它会监视已分配给节点的pod,具体功能如下:
向master汇报node节点的状态信息
接受指令并在Pod中创建 docker容器
准备Pod所需的数据卷
返回pod的运⾏状态
在node节点执⾏容器健康检查

etcd:
etcd 是CoreOS公司开发⽬前是Kubernetes默认使⽤的key-value数据存储系统,⽤于保存所有集群数
据,⽀持分布式集群功能,⽣产环境使⽤时需要为etcd数据提供定期备份机制。

#核⼼组件:
 apiserver:提供了资源操作的唯⼀⼊⼝,并提供认证、授权、访问控制、API注册和发现等机制
 controller manager:负责维护集群的状态,⽐如故障检测、⾃动扩展、滚动更新等
 scheduler:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上
 kubelet:负责维护容器的⽣命周期,同时也负责Volume(CVI)和⽹络(CNI)的管理;
 Container runtime:负责镜像管理以及Pod和容器的真正运⾏(CRI);
 kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡;
 etcd:保存了整个集群的状态

#可选组件:
 kube-dns:负责为整个集群提供DNS服务
 Ingress Controller:为服务提供外⽹⼊⼝
 Heapster:提供资源监控
 Dashboard:提供GUI
 Federation:提供跨可⽤区的集群
 Fluentd-elasticsearch:提供集群⽇志采集、存储与查询


https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-apiserver/
https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-scheduler/
https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-controller-manager/
https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-proxy/
https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kubelet/
https://kubernetes.io/zh/docs/tasks/administer-cluster/configure-upgrade-etcd/
https://kubernetes.io/zh/docs/concepts/overview/components/ 



在这里插入图片描述

在这里插入图片描述

参考资料:马哥,杰哥

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐