k8s基础

什么是k8s1
Kubernetes(k8s)是一个基于容器的集群管理平台。它拥有庞大,快速发展的生态系统,是基于 Google 多年大规模容器管理技术 Borg 的开源版本。

k8s能做什么,k8s提供了一个弹性运行分布式系统的框架。它负责您的扩展要求,故障转移,部署模式等。支持服务发现和负载平衡,存储编排,自动部署和回滚,(自动装箱)资源分配与限制,自我修复,密钥和配置管理这些功能。

简单总结下就是:

node: 提供基础的cpu,内存等资源,可以是物理机或虚拟机,分master和worker,可运行多个pod;
container: 运行在pod中,创建pod时可一次创建一个或多个,不能被直接访问,容器间通过lo虚拟接口通信;
pod: k8s最基本的操作单元,可直接被访问,提供统一服务,pod中可以运行多个容器;
label: 标签,是附着在资源对象上的一组或多组 Key/Value 键值对,用于指定对用户有意义的对象的属性,标签对内核系统是没有直接意义的,在创建对象时就可以指定;
一般其他资源关联pod时就通过pod的label和label选择器关联。
replication controller: 确保任何时候集群中有指定数量的 pod 副本(replicas)在运行。管理 pod 的生命周期,包括扩/缩容,滚动部署和监控等功能。方便支持k8s高可用,弹性伸缩这些功能;
service: 类似iptables,service中定义了一系列映射规则,将pod服务端口映射到固定ip端口,对集群内外提供统一服务接口。原因是pod中的服务默认不能被集群外访问,并且pod是动态的,hostname和ip不固定,所以直接访问pod的服务比较困难。
volume: 存储卷,挂载在pod上。防止pod被删数据丢失;方便外部配置,也方便多个pod共享配置/存储等,和docker的volume类似;
namespace: 为集群提供虚拟的隔离作用,上面那些对象创建时都需要指定命名空间,默认是default;
组件
支撑上面那些对象和对象间调度的一些重要组件:
k8s 的node分master和worker:
master的组件: API Server ,Etcd,Scheduler,Controller-Manager
worker的组件: Kube-Proxy,Kubelet, docker, flannel
大致关系:戳图

k8s的架构和组件关系很复杂,举个栗子简单理解下各组件的作用吧:
客户端kubectl发起创建pod请求到api server;
api server 处理请求,存储pod数据到etcd;
scheduler 通过调度算法选择到合适的node,执行binding操作;
kubelet 根据调度结果创建pod,绑定后,scheduler 调用api在etcd创建boundpod对象,将绑定信息和pod所有信息存放在boundpod对象中;
kubelet 也会定期与etcd同步pod信息到etcd中,一旦发现应该在该工作节点上运行的boundpod对象没有更新,则调用Docker API创建并启动pod内的容器。
注: 因为观察者 list-watch 2的支持,各组件才能实时准确处理各种消息事件,具体表现为客户端(kubelet/scheduler/controller-manager)通过 list-watch 监听 apiserver 中资源(pod/rs/rc等等)的 create, update 和 delete 事件,并针对事件类型调用相应的事件处理函数。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值