文章目录
- 名词
- 功能要点
- k8s核心要素
- CNCF 云原生框架简介
- k8s组建介绍
名词
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/
参考资料:马哥,杰哥