k8s 중급001_Pod 네트워크01_CNI 플러그인01_플러그인 선택

5514 단어 kubernetes_중급
배경:
클러스터를 구축하기 전에 클러스터의 배포 환경에 따라 CNI 플러그인을 선택해야 합니다.
1. 소개:
  • 컨테이너 네트워크 인터페이스 표준: Container Network Interface
  • CNI 플러그인: CNI 인터페이스 표준의 실현.흔히 볼 수 있는 플러그인은 flannel,Calico,WeaveNet,midonet,Contiv와 공유 클라우드 업체가 제공하는 CNI 플러그인, 예를 들어 Amazon VPC,Aliyun Terway
  • kubelet: CNI 플러그인에 대응하는 ConfigMap 설정 정보에 따라 CNI 플러그인을 호출하여Pod 네트워크 설정을 실현
  • flannel의 경우:
    구성:/etc/cni/net.d/10-flannel.conflist, 네트워크 정보 설정은kubeadm 설정에 저장합니다
    플러그인:/opt/cni/bin/flannel
    flannel 전체 구성을 보려면 다음과 같이 하십시오.
    [root@k8s-ha-master02 ~]# kubectl edit cm kube-flannel-cfg -n kube-system
    
    # Please edit the object below. Lines beginning with a '#' will be ignored,
    # and an empty file will abort the edit. If an error occurs while saving this file will be
    # reopened with the relevant failures.
    #
    apiVersion: v1
    data:
      cni-conf.json: |
        {
          "name": "cbr0",
          "cniVersion": "0.3.1",
          "plugins": [
            {
              "type": "flannel",
              "delegate": {
                "hairpinMode": true,
                "isDefaultGateway": true
              }
            },
            {
              "type": "portmap",
              "capabilities": {
                "portMappings": true
              }
            }
          ]
        }
      net-conf.json: |
        {
          "Network": "10.244.0.0/16",
          "Backend": {
            "Type": "vxlan"
          }
        }
    kind: ConfigMap
    metadata:
      annotations:
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"v1","data":{"cni-conf.json":"{
    \"name\": \"cbr0\",
    \"cniVersion\": \"0.3.1\",
    \"plugins\": [
    {
    \"type\": \"flannel\",
    \"delegate\": {
    \"hairpinMode\": true,
    \"isDefaultGateway\": true
    }
    },
    {
    \"type\": \"portmap\",
    \"capabilities\": {
    \"portMappings\": true
    }
    }
    ]
    }
    ","net-conf.json":"{
    \"Network\": \"10.244.0.0/16\",
    \"Backend\": {
    \"Type\": \"vxlan\"
    }
    }
    "},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"app":"flannel","tier":"node"},"name":"kube-flannel-cfg","namespace":"kube-system"}} creationTimestamp: "2020-03-11T09:00:10Z" labels: app: flannel tier: node name: kube-flannel-cfg namespace: kube-system resourceVersion: "7528" selfLink: /api/v1/namespaces/kube-system/configmaps/kube-flannel-cfg uid: 372fd042-e710-4c8d-89cf-2c6aea5ec2d6

    2. CNI 플러그인 유형
    흔히 볼 수 있는 플러그인은 flannel,Calico,WeaveNet,midonet,Contiv와 공유 클라우드 업체가 제공하는 CNI 플러그인, 예를 들어 Amazon VPC,Aliyun Terway 등이 있다.
    2.1 Overlay 플러그인 - 가상화 환경
    프라이빗 클라우드 openstack, 공유 클라우드 및 VMWare와 같습니다.
    Hypervisor01과 Hypervisor02가 동일한 LAN에 있음
    Hypervisor01:vmware fusion-NAT
    [root@k8s-ha-master02 ~]# arp | grep -v 172
    Address                  HWtype  HWaddress           Flags Mask            Iface
    k8s-ha-vip               ether   00:50:56:25:63:38   C                     ens34
    10.244.2.0               ether   46:e6:cb:45:b0:bb   CM                    flannel.1
    k8s-ha-master01          ether   00:50:56:3b:28:5f   C                     ens34
    10.244.4.0               ether   2a:a6:bd:43:79:29   CM                    flannel.1
    10.244.3.0               ether   e2:1a:a6:2d:05:3a   CM                    flannel.1
    k8s-node02               ether   00:50:56:2b:24:a8   C                     ens34
    k8s-ha-master03          ether   00:50:56:25:63:38   C                     ens34
    10.244.1.7               ether   22:52:b3:8f:a1:bb   C                     cni0
    10.244.0.0               ether   7a:97:6f:d0:e8:8f   CM                    flannel.1
    k8s-node01               ether   00:50:56:2f:61:ef   C                     ens34
    xiliuyaodeMBP            ether   8c:85:90:59:f6:33   C                     ens34

    Hypervisor02:vmware workstation-NAT
    [root@bogon dist]# arp
    ? (192.168.43.149) at 8c:85:90:59:f6:33 [ether] on ens34
    xiliuyaodeMBP (192.168.43.68) at 8c:85:90:59:f6:33 [ether] on ens34
    gateway (192.168.43.1) at a8:9c:ed:f2:4b:a6 [ether] on ens34

    맥 라디오를 통해 알 수 있는 세 가지는 다음과 같다.
  • 하이퍼바이저01 관리 vm 간 맥 브로드캐스트 가능
  • vm는 물리기에 방송
  • 하이퍼바이저02와 하이퍼바이저01은 외부 맥 방송을 모두 격리했다.

  • 요약: 하이퍼바이저 vm 간 데이터 링크 계층 통신 제한
    Overlay 플러그인 선택:
  • 가상화 또는 프라이빗 클라우드: Calico-ipip, Flannel-vxlan, Weave
  • 총 클라우드 권장 클라우드 공급업체에서 제공하는 플러그인: Amazon VPC, Aliyun Terway
  • 이점:
  • pod 생성 속도가 빠릅니다.pause 용기:kubelet은 네트워크 자원을 만들고 하드웨어를 조율할 필요가 없음
  • 지원 서비스 검색
  • 단점:
  • 네트워크 통신은 node 계산 자원과 성능을 소모한다. 예를 들어 node 봉투, 해체 또는 NAT 포트 전송 등이다.
  • pod 네트워크 지연 시간이 비교적 크다
  • 2.2 Underlay 플러그인 - 물리적 기기 node 클러스터(동일한 스위치 아래의 node 또는 맥 브로드캐스트에 제한이 없는 다중 스위치 node)
    제한이 적어 Underlay 플러그인:Calica-bgp,flannel-hostgw,sriov
    이점:
  • 네트워크 성능이 우수하며 node 컴퓨팅 리소스와 성능을 차지하지 않음
  • 네트워크 지연 시간 감소
  • 단점:
  • pod 생성 속도가 느립니다.pause 용기의 생성:kubelet은 하드웨어를 조율해야 합니다
  • pod와 데이터 체인 층을 직접 연결하고 노드 ip층을 거치지 않는 Underlay 플러그인을 실현하며 서비스 서비스 발견을 지원하지 않습니다
  • 일반적으로 네트워크 성능에 대한 용인도가 비교적 낮은 계산 장면에 응용된다

    좋은 웹페이지 즐겨찾기