k8s介绍和基础概念

一、Kubernetes 介绍

1、Kubernetes 概述

基于 Docker 构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。 基于容器的云平台。
官网:https://kubernetes.io/
优点:

  1. 轻量级:消耗资源小
  2. 开源
  3. 弹性伸缩
  4. 负载均衡:IPVS

2、Kubernetes 组件介绍

架构图

3、Kubernetes 常见组件介绍

  1. master:管理结点
  2. apiserver:提供接口服务,用户通过 apiserver 来管理整个容器集群平台。API Server 负责和 etcd交互,整个集群的所有的交互都是以API Server为核心的。API Server提供的验证和 授权保证了整个集群的安全
  3. scheduler kubernetes:调度服务
  4. Replication Controllers:复制,保证 pod 的高可用
  5. minion : 真正运行容器的物理机,kubernets 中需要很多minion机器,来提供运算。
  6. container:容器,可以运行服务和程序
  7. Pod:调度的最小颗粒,是单纯的容器,Pod 是一个可以被创建、销毁、调度、管理的最小的部署 单元。pod中可以包括一个或一组容器。
  8. Kube_proxy:代理做端口转发,相当于 LVS-NAT 模式中的负载调度器器,Proxy解决了同一宿主机,相同服务端口冲突的问题,还提供了对外服务,Proxy后端使用了随机、轮循负载均衡算法。
  9. Etcd:存储配置信息,可以理解为是k8s的数据库,存储着k8s容器 云平台中所有节点、pods、网络等信息。
  10. Services:最外围的单元,通过虚拟一个访问 IP 及服务端口,可以访问我们定义好的Pod资源
  11. Labels标签:是用于区分 Pod、Service、Replication Controller的key/value键值对,仅使用在 Pod、Service、Replication Controller之间的关系识别,但对这些单元本身迚 行操作时得使用 name标签。
  12. Deployment:用于更新 Pod 和 Replica
    Set的方法,你可以在对象中只描述你所期望的运行状态,控制器会将现在的实际状态转换成期望的状态。可以用来创建新的资源。可以实现无人值守的上线

各组件之间的关系

  1. Kubernetes的架构由一个master和多个minion组成:
  2. master通过 api 提供服务,接受kubectl 的请求来调度管理整个集群。
  3. kubectl:是 k8s 平台的一个管理命令。
  4. Replication controller 定义了多个 pod 或者容器需要运行,如果当前集群中运行的 pod 或容器 达到配置的数量,replication controller 会调度容器在多个 minion 上运行,保证集群中的pod数量。
  5. service则定义真实对外提供的服务,一个 service 会对应后端运行的多个 container。
  6. Kubernetes是个管理平台,minion 上的 kube-proxy 拥有提供真实服务公网 IP。客户端访问 kubernetes 中提供的服务,是直接访问到 kube-proxy 上的。
  7. Kubernetes 中 pod 是一个基本单元,一个 pod 可以是提供相同功能的多个 container,这 些容器会被部署在同一个 minion 上。minion 是运行 Kubelet 中容器的物理机。minion 接 受
    master的指令创建 pod 或者容器。

流程图
Master:

  1. Kubectl:通过命令在master管理node的工具
  2. kube-apiserver:相当于对外窗口,所有node节点都是通过apiserver通讯
  3. kube-controller-manager:负责pod管理
  4. kube-scheduler:controller-manager依据scheduler进行管理pod,调度器
  5. Etcd:存储设备(也可以独立部署)

Node:

  1. Kubelet:负责把本机node的情况汇报给master进行存储、从master节点获取信息然后下发命令
  2. kube-proxy:网络的转发
  3. Docker:跑容器的

二、基础概念

1、Pod概念

  1. 自主式pod
    由命令启动的pod
  2. 管理器管理的pod
    由yaml或者json文件启动的pod

2、网络通讯模式

K8s的网络模型假定了所有的pod都在一个可以连通的扁平网络中,这在GCE里面是现成的网络模型,k8s假定这个网络已经存在。而在私有云里搭建k8s集群就不能假定这个网络已经存在了。我们需要自己实现这个网络假设,将不同节点上的docker容器之间的互相访问打通,然后运行k8s。

  1. 同一个pod内的多个容器之间的通讯(lo)
    同一个pod共享同一个网络命名空间,共享一个linux协议栈
  2. 各个pod之间的通讯(overlay network)
    Flannel是coreos针对k8s设计的一个网络规划服务,它的功能是让集群中的各个 节点主机创建的docker容器具有全集群唯一的虚拟ip地址。而且还能在这些ip地址之间创建一个覆盖网络(overlay network),通过这个覆盖网络,将数据包原封 装不动的传递到目标容器。
    overlay network
    Etcd:
    存储管理flanel可分配的ip地址段资源,监控etcd中每个pod的实际地址,并在内存中建立维护pod节点路由表。
  3. Pod与service之间的通讯(各节点的ipvs规则)
    ipvs

喜欢的亲可以关注点赞评论哦!以后每天都会更新的哦!本文为小编原创文章;
文章中用到的文件、安装包等可以加小编联系方式获得;
欢迎来交流小编联系方式VX:CXKLittleBrother
进入运维交流群

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

含义小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值