kubernetes 核心原理

kubernetes API Server


Controller Manager


Scheduler


kubelet


kube-proxy


网络原理–


1、kubernetes 网络模型
基础原则:每个pod都有一个独立的ip地址,所有pod之间都可以直接访问。pod内部共享网络,共享端口,pod内部可以通过localhst直接访问。

2、docker 网络基础

  • 网络命名空间 Network Namespace
    ::linux 在网络栈中引入了Network Namespce,处于不同的命名空间的网络栈是完全隔离的,彼此之间无法通信,通过这种隔离,实现一个宿主机上虚拟多个不同的网络环境。
    ::linux独立的网络命名空间内,可以有独立的路由表、独立的iptables/Netfilter。
    net namespace操作:
  • Veth设备对
    引入Veth设备对,是为了在不同的网络命名空间之间进行通信,Veth设备成对出现。docker把veth设备对的一端放到到docker容器中(并改名为eth0,骗过了所有人以为是真的网卡),另一端放到bridge中。

    • 网桥
      网桥是一个二层的虚拟网络设备,可以把若干个网络接口连接起来。
  • iptables

    iptables-save

  • 路由

    ip route show table local type local
    ip route list


3、docker的网络实现
标准docker支持以下四种网络模式:
  • host模式:使用–net=host指定。
  • container模式:使用–net=container的name或者id指定
  • none模式:使用–net=none指定
  • bridge模式:使用–net=bridge指定

默认是bridge模式,docker daemon第一次启动会创建一个虚拟的网桥,docker0,在私有网络空间中,给这个网桥分配一个子网,针对由docker创建出的每一个容器,创建一个Veth设备对,从网桥的地址段内给ech0接口分配一个ip地址。

4、docker 网络的局限性
docker “简单而美”的理念,一开始没有考虑多主机互联的网络解决方案。

5、kubernetes 网络实现

  • 容器到容器之间直接访问
    pod内部的容器之间由于共享一个网络命名空间,他们之间访问就像在同一台机器上一样,通过localhost可以直接访问。
  • 抽象的pod到pod之间通信
    相同node的pod之间访问:由于同一个node上的pod都连接了docker0网桥,地址端相同,它们之间可以通过IP直接访问。
    不同node的pod之间访问:k8s会记录所有运行的pod的ip信息,保存到etcd数据库中作为service endpoint。
  • pod到service之间的通信
  • 集群外部与集群内部组件之间的通信
  • -

共享存储原理


1、pv详解
pv作为存储资源,主要包括:存储能力、访问模式、存储类型、回收策略、后端存储类型等关键信息的设置。pv的关键配置参数如下:

  • 存储能力 capacity:storage=5Gi
  • 访问模式 access modes:RWO、ROX、RWX
  • 存储类别 class: storageclassname
  • 回收策略 reclaim policy:保留retain、回收recycle、删除delete

2、pvc详解
pvc作为用户对存储资源的需求申请,主要包括:存储空间申请、访问模式、pv选择条件和存储类别等信息。pvc的关键配置参数如下:

  • 资源请求resources:对存储资源请求,目前仅支持存储空间大小。
  • 访问模式access modes:三种模式与pv相同,RWO、ROX、RWX
  • 存储类别 class:
    注意:pvc和pv都受限与namespcae,只有相同namespace的pv才能与pvc绑定。

3、pv和pvc的生命周期,以下是生命周期的各个阶段

  • 1、资源供应 provisioning
    -2、 资源绑定 binding
    -3、 资源使用 using
  • 4、资源释放 releasing
  • 5、资源回收 reclaiming

4、storageclass详解
storageclass的定义主要包括名称、后端存储提供者provisioner、后端存储相关参数配置。

  • 提供者provisioner:描述后端资源的提供者,后端存储驱动。
  • 参数parameters:后端资源提供者的参数设置,

storageclass动态供应模式相对于静态供应模式的优点:

  • 管理员无需预先创建大量的PV作为存储资源
  • 用户申请PVC时无法保证容量与预制pv的完全匹配。

    5、glusterFS 部署

  • 安装glusterfs客户端,在需要使用glusterfs的node节点上
  • 安装glusterfs服务端,以容器的形式运行在每个node节点上,使用daemonset的方式进行部署
  • 部署Heketi服务:提供RESTful API管理 glusterFS卷,
  • 定义storageclass,提供者为glusterFS,配置hiketi服务地址,即可使用
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值