zoukankan      html  css  js  c++  java
  • 第十二章 网络(上)

    12.1 kubernetes网络模型

      集群中每个pod都有自己的IP地址,Pod之间不用配置NAT就能直接通信。

       同一个Pod中的容器共享Pod的IP,能通过localhost通信。

      每个pod可被看做是一个个独立的系统,而pod中的容器则可被看做是同一个系统中的不同进程

      1. Pod内容器之间通信

      当Pod被调度到某个节点,Pod中的所有容器都在这个节点上运行,这些容器共享相同的本地文件系统,IPC和网络命名空间。

      2. Pod之间的通信

      Pod的IP是集群可见的,即集群中的任何其他Pod和节点都可以通过IP直接与Pod通信,这种通信不需要任何网络地址转换、隧道或代理技术。

      3. Pod与Service的通信

      Pod间可以直接通过IP地址通信,但是前提是Pod需要知道对方的IP。 在K8s集群中,Pod频繁的被创建和销毁,pod的IP是不固定的。

      为了解决这个问题,Service提供了访问Pod的抽象层。无论Pod如何变化,service对外提供相对稳定的服务。此外,service还提供了高可用和负载均衡,转发给Pod。

      4. 外部访问

      无论是Pod和service的ClusterIP(注意是Cluster Ip),它们只能在K8s集群中可见,对集群之外的世界,这些IP是私有的

      K8s提供了两种方式让外界能够与Pod通信:

    • NodePort: Service通过Cluster节点的静态端口对外提供服务。外部可以通过 <NodeIP>:<NodePort>访问service。
    • LoadBalancer:   

     12.2 各种网络方案

      为了保证网络方案的标准化、扩展性和灵活性,K8s采用了Container Networking Interface(CNI)规范。

      CNI: 是CoreOS提出的容器网络规范,使用了插件(Plugin)模型创建容器的网络栈。

    12.3 Network Policy

      Network Policy是K8s的一种资源,通过Label选择Pod,并指定其他Pod或外界如何与这些Pod通信。

      默认情况下,所有Pod是非隔离的,任何来源的网络流量都可以访问Pod;当为Pod定义了Network Policy时,只有Policy允许的流量才能访问Pod。

      

  • 相关阅读:
    问题 A: 走出迷宫(BFS)
    问题 A: 工作团队(并查集删点操作)
    刷题-力扣-989
    刷题-力扣-12
    刷题-力扣-628
    刷题-力扣-11
    刷题-力扣-1018
    刷题-力扣-9
    刷题-力扣-7
    刷题-力扣-6
  • 原文地址:https://www.cnblogs.com/liufei1983/p/10224709.html
Copyright © 2011-2022 走看看