k8s 组件与网络

作者: yuan_dongj | 来源:发表于2020-05-23 16:55 被阅读0次

    K8S架构

    k8s给用户提供两种操作,kubectl与restful接口。这两个方式都使用api server与集群打交道。
    master节点:api server是集群内部的大内总管,scheduler通过api server来完成pod调度分配,replication controller通过api server来保证pod副本达到期望值。
    k8s架构集群内所有的重要数据都持久化在etcd上。

    node节点:kubelet直接与容器打交道,创建管理pod。kube proxy代理pod服务,定义iptables,实现service到pod的请求转发。


    k8s架构

    K8S网络通信

    K8S集群内部拥有扁平式的网络通信,Flannel让集群中的不同节点创建的docker容器都具有全局唯一的IP,docker IP与物理机IP在etcd上存储映射。


    Flannel.png

    同一个pod内的多个容器:localhost
    同一个宿主机上的pod:Flannel的Docker0网桥
    不同宿主机上的pod:通过Flannel将pod ip与Node ip进行关联,通过这个关联可以让pod进行互相访问。pod1 -> docker0 -> node1网卡 -> node2网卡 -> docker0 -> pod2。
    pod到外网:pod转发数据包到宿主机网卡,向外网发送请求。
    外网到pod:service

    K8S资源类型

    • pod:k8s编排调度的最小单元
    • controller:控制pod的状态、行为、副本数量
    • service:pod对外的抽象,提供统一入口与负载均衡
    • 存储:数据的持久化
    • 集群调度:控制pod被调度到集群中的哪一节点
    • 安全:针对开发人员与运维人员的RBAC权限控制

    相关文章

      网友评论

        本文标题:k8s 组件与网络

        本文链接:https://www.haomeiwen.com/subject/jbhlahtx.html