k8s 基本介绍

k8s架构图

在这里插入图片描述
说明:调度器和控制器都不直接和etcd打交道,都是通过api server进行操作的

etcd

etcd分布式键值数据库,可以为整个分布式集群提供关键数据的存储,协助整个集群正常运行,Etcd v2版已经在 k8s v1.11中弃用,目前是V3版。

kube-apiserver

Kubernetes API,集群的统一入口,各组件协调者,以HTTPAPI提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。

kube-controller-manager

处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的(多个控制器)。

kube-scheduler

根据调度算法为新创建的Pod选择合适的Node节点。

kubelet

kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作,kubelet将每个Pod转换成一组容器。

kube-proxy

在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作(负责写入规则至 IPTABLES IPVS 实现服务映射访问)。

CoreDNS

可以为集群的SVC创建一个域名IP的对应关系解析

Ingress

可以实现k8s的七层代理(基于域名或ip),k8s本身只能实现4层代理

ReplicationController(RC)

用来确保容器应用的副本数保持在客户指定的个数,如果有容器异常退出,就会创建新的pod;如果异常多出来的容器也会被回收。新版本中建议使用ReplicaSet(RS)来替代RC

ReplicaSet(RS)

RS和RC可以理解为RS是RC的升级版,RS支持集合式的selector,但是一般还是建议使用depoyment来自动管理RS,这样就无需担心兼容问题(比如RS不支持rolling-update,但是deployment支持)

deployment

deployment 通过创建rs来创建pod,在控制滚动升级时rs并不会被删除,而是被停用这样可以达到版本回退的目的

statefullSet

是为了解决有状态服务问题(RS和deployment是为无状态服务设计的),其应用场景:

  • 稳定的持久化存储,pod重新调度后 ,还能够访问到相同的持久化数据,基于pvc来实现
  • 稳定的网络标识,pod重新调度后 其podName和HostName不变,基于HeadLess Service(没有clusterId 的service)来实现
  • 有序部署,有序扩展,即pod是有序的,在部署或扩展时要按照定义的顺序依次进行(即从0到N-1,在下一个pod运行之前,所有之前的pod都必须是running或ready状态),基于init-container来实现
  • 有序收缩,有序删除(N-1到0)

prometheus

提供K8S的集群监控能力

ELK

k8s集群日志统一分析介入平台

Node组件

Node:是kubernetes集群的工作负载节点。Master为其分配工作,当某个Node宕机时,Master会将其工作负载自动转移到其他节点

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值