2023/2/20

K8S網路

  • 埠號

  • 常用指令
  • K8S網路要求
    • 所有pod能互相溝通
    • 為容器建立網路
      • 建立 veth pair
      • 將veth pair 連接container與bridge
      • 建立container ip地址與route路由 > 在共同的路由上建立
    • kubelet
  • kubelet
    • 在pod創建後 , 調用CNI Plugin創建網路
    • JSON配置 /etc/cni/net.d/xxxxx.conf
  • Weave 
    • 在每一個worker node上建立代理, 每個worker node上的weave彼此溝通 , 將封包包裹一層目的地(節點to節點)

2023/2/17

網路概念

  • 樣貌
     
  • Switch & Route
    • switch 同網段連接
    • routie 不同網段連接
    • net.ipv4.ip_forward=1  允许将一个接口的流量转发到另外一个接口

  • DNS
    • 指向同一台DNS Server查詢
    • 多種 record types
    • nslookup指令替代ping , 但不考慮本地/etc/hosts
    • dig 與 nslookup 有相同功能
    • CoreDNS
  • 網路命名空間
    • 每個namespace都有獨立網路
    • eth0
    • lo : 本地接口 , 假如包是由一个本地进程为另一个本地进程产生的, 它们将通过外出链的’lo’接口,然后返回进入链的’lo’接口.具体参考包过滤器的相关内容。
    • 同一主機 , 建立兩個命名空間通訊

























    • 同一主機 , 建立網路橋














    • 命名空間傳遞封包給外部主機
      • add route
      • add nat












    • 命名空間傳遞封包給公網
      • add route
    • 外部主機傳遞傳遞封包給命名空間













  • Docker網路
    • 網路種類
      • none : 完全隔離
      • host : 無隔離  ,  等同主機網路與埠號
      • bridge : 隔離 , docker host私有網域
    • Bridge應用
      • 網路
      • 建立bridge

      • 每個container皆為一個命名空間
      • link 命名空間&bridge

    • NAT應用
    • 建立封包轉發



  • Container Network Interface(CNI)
    • 每家Container廠商都有相同的bridge與nat網路需求 , 故定義CNI插件標準
    • CNI插件標準
    • 調用bridge程序 , 並傳遞容器id 與名稱空間 , 容器獲得網路配置

    • CNI插件標準支持廠商
      • docker未實現CNI 標準 , 而是使用CNM (container network model)
      • k8s 執行docker時所用指令

















2023/2/16

K8S Storage存儲

  • 驅動分類

  • Docker
    • 目錄結構

    • volume掛載分類
      • 卷掛載
      • 綁定掛載
    • volume driver分類

  • K8S介面
    • Container Storage Interface (CSI)
    • Container Runtime Interface (CRI)
    • Container Network Interface (CNI)
  • Volume & mount
    • hostPath本地目錄 : 不适用于多节点集群;请尝试使用 local 卷作为替代
    • 可連結雲服務商的volume
  • Persistence Volumes
    • 建立持久卷池
  • Persistence Volumes Claim
    • (PV > PVC)管理員建立持久卷池 , 用戶聲明綁定的持久卷
    • 可使用label綁定特定的卷
    • 'PersistentVolumeReclaimPolicy'  刪除PVC策略 
      • 回收策略 Retain 使得用户可以手动回收资源。当 PersistentVolumeClaim 对象被删除时,PersistentVolume 卷仍然存在,对应的数据卷被视为"已释放(released)"。 由于卷上仍然存在这前一申领人的数据,该卷还不能用于其他申领。 管理员可以通过下面的步骤来手动回收该卷:

        1. 删除 PersistentVolume 对象。与之相关的、位于外部基础设施中的存储资产 (例如 AWS EBS、GCE PD、Azure Disk 或 Cinder 卷)在 PV 删除之后仍然存在。
        2. 根据情况,手动清除所关联的存储资产上的数据。
        3. 手动删除所关联的存储资产。

        如果你希望重用该存储资产,可以基于存储资产的定义创建新的 PersistentVolume 卷对象

    • 'Access Modes'需和PV相同
  • Storage Class
    • 因應雲服務建立卷
    • 代替 PVC

test2