日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes之(十七)网络模型和网络策略

發布時間:2023/12/20 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes之(十七)网络模型和网络策略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • Kubernetes之(十七)網絡模型和網絡策略
    • Kubernetes網絡模型和CNI插件
      • Docker網絡模型
    • Kubernetes網絡模型
    • Flannel網絡插件
      • Direct routing模式配置
      • Host-gw后端
    • 網絡策略
      • 部署Canal提供網絡策略功能
      • 配置策略
      • Ingress管控
      • Egress管控
      • 隔離名稱空間

Kubernetes之(十七)網絡模型和網絡策略

Kubernetes網絡模型和CNI插件

在Kubernetes中設計了一種網絡模型,要求無論容器運行在集群中的哪個節點,所有容器都能通過一個扁平的網絡平面進行通信,即在同一IP網絡中。需要注意的是:在K8S集群中,IP地址分配是以Pod對象為單位,而非容器,同一Pod內的所有容器共享同一網絡名稱空間。

Docker網絡模型

Docker容器的原生網絡模型主要有3種:Bridge(橋接)、Host(主機)、none。

  • Bridge:借助虛擬網橋設備為容器建立網絡連接。
  • Host:設置容器直接共享當前節點主機的網絡名稱空間。
  • none:多個容器共享同一個網絡名稱空間。
[root@master ~]# docker network ls NETWORK ID NAME DRIVER SCOPE ac364a575cb8 bridge bridge local e3bdb1c29df6 host host local 4161accaf430 none null local #none網絡,在該網絡下的容器僅有lo網卡,屬于封閉式網絡,通常用于對安全性要求較高并且不需要聯網的應用 #host網絡,共享宿主機的網絡名稱空間,容器網絡配置和host一致,但是存在端口沖突的問題 #bridge網絡,Docker安裝完成時會創建一個名為docker0的linux bridge,不指定網絡時,創建的網絡默認為橋接網絡,都會橋接到docker0上。

橋接式網絡是目前較為流行和默認的解決方案。但是這種方案的弊端是無法跨主機通信的,僅能在宿主機本地進行,而解決該問題的方法就是NAT。所有接入到該橋接設備上的容器都會被NAT隱藏,它們發往Docker主機外部的所有流量都會經過源地址轉換后發出,并且默認是無法直接接受節點之外的其他主機發來的請求。當需要接入Docker主機外部流量,就需要進行目標地址轉換甚至端口轉換將其暴露在外部網絡當中。如下圖:

容器內的屬于私有地址,需要在左側的主機上的eth0上進行源地址轉換,而右側的地址需要被訪問,就需要將eth0的地址進行NAT轉換。SNAT---->DNAT
這樣的通信方式會比較麻煩,從而需要借助第三方的網絡插件實現這樣的跨主機通信的網絡策略。
容器內的屬于私有地址,需要在左側的主機上的eth0上進行源地址轉換,而右側的地址需要被訪問,就需要將eth0的地址進行NAT轉換。SNAT---->DNAT
這樣的通信方式會比較麻煩,從而需要借助第三方的網絡插件實現這樣的跨主機通信的網絡策略。

Kubernetes網絡模型

我們知道的是,在K8S上的網絡通信包含以下幾類:

  • 容器間的通信:同一個Pod內的多個容器間的通信,它們之間通過lo網卡進行通信。
  • Pod之間的通信:通過Pod IP地址進行通信。
  • Pod和Service之間的通信:Pod IP地址和Service IP進行通信,兩者并不屬于同一網絡,實現方式是通過IPVS或iptables規則轉發。
  • Service和集群外部客戶端的通信,實現方式:Ingress、NodePort、Loadbalance

K8S網絡的實現不是集群內部自己實現,而是依賴于第三方網絡插件----CNI(Container Network Interface)
flannel、calico、canel等是目前比較流行的第三方網絡插件。

這三種的網絡插件需要實現Pod網絡方案的方式通常有以下幾種:
虛擬網橋、多路復用(MacVLAN)、硬件交換(SR-IOV)

K8S支持CNI插件進行編排網絡,以實現Pod和集群網絡管理功能的自動化。每次Pod被初始化或刪除,kubelet都會調用默認的CNI插件去創建一個虛擬設備接口附加到相關的底層網絡,為Pod去配置IP地址、路由信息并映射到Pod對象的網絡名稱空間。

在配置Pod網絡時,kubelet會在默認的/etc/cni/net.d/目錄中去查找CNI JSON配置文件,然后通過type屬性到/opt/cni/bin中查找相關的插件二進制文件,如下面的"portmap"。然后CNI插件調用IPAM插件(IP地址管理插件)來配置每個接口的IP地址:

[root@master ~]# cat /etc/cni/net.d/10-flannel.conflist {"name": "cbr0","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}] }

? CNI主要是定義容器網絡模型規范,鏈接容器管理系統和網絡插件,兩者主要通過上面的JSON格式文件進行通信,實現容器的網絡功能。CNI的主要核心是:在創建容器時,先創建好網絡名稱空間(netns),然后調用CNI插件為這個netns配置網絡,最后在啟動容器內的進程
常見的CNI網絡插件包含以下幾種:

  • Flannel:為Kubernetes提供疊加網絡的網絡插件,基于TUN/TAP隧道技術,使用UDP封裝IP報文進行創建疊 加網絡,借助etcd維護網絡的分配情況,缺點:無法支持網絡策略訪問控制。
  • Calico:基于BGP的三層網絡插件,也支持網絡策略進而實現網絡的訪問控制;它在每臺主機上都運行一個虛擬路由,利用Linux內核轉發網絡數據包,并借助iptables實現防火墻功能。實際上Calico最后的實現就是將每臺主機都變成了一臺路由器,將各個網絡進行連接起來,實現跨主機通信的功能。
  • Canal:由Flannel和Calico聯合發布的一個統一網絡插件,提供CNI網絡插件,并支持網絡策略實現。
  • 其他的還包括Weave Net、Contiv、OpenContrail、Romana、NSX-T、kube-router等等。而Flannel和Calico是目前最流行的選擇方案。

Flannel網絡插件

在各節點上的Docker主機在docker0上默認使用同一個子網,不同節點的容器都有可能會獲取到相同的地址,那么在跨節點通信時就會出現地址沖突的問題。并且在多個節點上的docker0使用不同的子網,也會因為沒有準確的路由信息導致無法準確送達報文。
而為了解決這一問題,Flannel的解決辦法是,預留一個使用網絡,如10.244.0.0/16,然后自動為每個節點的Docker容器引擎分配一個子網,如10.244.1.0/24和10.244.2.0/24,并將分配信息保存在etcd持久存儲。
第二個問題的解決,Flannel是采用不同類型的后端網絡模型進行處理。其后端的類型有以下幾種:

  • VxLAN:使用內核中的VxLAN模塊進行封裝報文。也是flannel推薦的方式.
  • host-gw:即Host GateWay,通過在節點上創建目標容器地址的路由直接完成報文轉發,要求各節點必須在同一個2層網絡,對報文轉發性能要求較高的場景使用。
  • UDP:使用普通的UDP報文封裝完成隧道轉發。

    VxLAN后端和direct routing

    VxLAN(Virtual extensible Local Area Network)虛擬可擴展局域網,采用MAC in UDP封裝方式,具體的實現方式為:
  • 將虛擬網絡的數據幀添加到VxLAN首部,封裝在物理網絡的UDP報文中
  • 以傳統網絡的通信方式傳送該UDP報文
  • 到達目的主機后,去掉物理網絡報文的頭部信息以及VxLAN首部,并交付給目的終端
  • 跨節點的Pod之間的通信就是以上的一個過程,整個過程中通信雙方對物理網絡是沒有感知的。如下網絡圖:

    flannel運行后,在各Node宿主機多了一個網絡接口:

    #master [root@master ~]# ifconfig flannel.1 flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450inet 10.244.0.0 netmask 255.255.255.255 broadcast 0.0.0.0inet6 fe80::bc1b:fdff:fece:7506 prefixlen 64 scopeid 0x20<link>ether be:1b:fd:ce:75:06 txqueuelen 0 (Ethernet)RX packets 1274 bytes 1105723 (1.0 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 668 bytes 275033 (268.5 KiB)TX errors 0 dropped 8 overruns 0 carrier 0 collisions 0#node01 [root@node01 ~]# ifconfig flannel.1 flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450inet 10.244.1.0 netmask 255.255.255.255 broadcast 0.0.0.0inet6 fe80::10f0:d4ff:fe41:bd69 prefixlen 64 scopeid 0x20<link>ether 12:f0:d4:41:bd:69 txqueuelen 0 (Ethernet)RX packets 2867 bytes 280059 (273.4 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 2886 bytes 353550 (345.2 KiB)TX errors 0 dropped 8 overruns 0 carrier 0 collisions 0#node02 [root@node02 ~]# ifconfig flannel.1 flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450inet 10.244.2.0 netmask 255.255.255.255 broadcast 0.0.0.0inet6 fe80::e8de:4ff:fe2a:cadc prefixlen 64 scopeid 0x20<link>ether ea:de:04:2a:ca:dc txqueuelen 0 (Ethernet)RX packets 3512 bytes 605029 (590.8 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 3386 bytes 1333288 (1.2 MiB)TX errors 0 dropped 8 overruns 0 carrier 0 collisions 0

    從上面的結果可以知道 :

  • flannel默認就是VXLAN模式,即Overlay Network。
  • flanneld創建了一個flannel.1接口,它是專門用來封裝隧道協議的,默認分給集群的Pod網段為10.244.0.0/16。
  • flannel給k8s-master節點配置的Pod網絡為10.244.0.0段,給k8s-node01節點配置的Pod網絡為10.244.1.0段,給k8s-node01節點配置的Pod網絡為10.244.2.0段,如果有更多的節點,以此類推。
  • 舉個實際例子

    #啟動一個nginx容器,副本為3 [root@master manifests]# kubectl run nginx --image=nginx:1.14-alpine --port=80 --replicas=3[root@master manifests]# kubectl get pods -o wide |grep nginx nginx-7849c4bbcd-8srph 1/1 Running 0 22s 10.244.1.62 node01 <none> <none> nginx-7849c4bbcd-brsrv 1/1 Running 0 22s 10.244.2.74 node02 <none> <none> nginx-7849c4bbcd-vjh4w 1/1 Running 0 22s 10.244.2.73 node02 <none> <none>

    查看網絡接口可以發現在各個節點上多了一個虛擬接口cni0,其ip地址為10.244.0.1。它是由flanneld創建的一個虛擬網橋叫cni0,在Pod本地通信使用。 這里需要注意的是,cni0虛擬網橋,僅作用于本地通信.

    [root@node02 ~]# ifconfig cni0 cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450inet 10.244.2.1 netmask 255.255.255.0 broadcast 0.0.0.0inet6 fe80::3c3d:dcff:fe84:c3a4 prefixlen 64 scopeid 0x20<link>ether 0a:58:0a:f4:02:01 txqueuelen 1000 (Ethernet)RX packets 125902 bytes 13768322 (13.1 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 128191 bytes 12079793 (11.5 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    容器跨主機是可以正常通信的,那么容器的跨主機通信是如何實現的呢?????master上查看路由表信息:

    [root@master manifests]# ip route default via 10.0.0.2 dev ens33 proto static metric 100 10.0.0.0/24 dev ens33 proto kernel scope link src 10.0.0.10 metric 100 10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink 10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 #在宿主機和容器內都進行ping另外一臺主機上的Pod ip并進行抓包 [root@master manifests]# kubectl exec nginx-7849c4bbcd-8srph -it -- /bin/sh #進入node01的10.244.1.62 IP的pod內[root@master ~]# kubectl exec -it nginx-7849c4bbcd-brsrv -- /bin/sh #另外開終端進入node02的10.244.2.74 IP的pod內#使用node01的pod ping10.244.2.74 在node02節點抓包[root@node02 ~]# tcpdump -i flannel.1 -nn host 10.244.2.74 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on flannel.1, link-type EN10MB (Ethernet), capture size 262144 bytes 17:16:06.779840 IP 10.244.1.62 > 10.244.2.74: ICMP echo request, id 2816, seq 66, length 64 17:16:06.779904 IP 10.244.2.74 > 10.244.1.62: ICMP echo reply, id 2816, seq 66, length 64 17:16:07.780045 IP 10.244.1.62 > 10.244.2.74: ICMP echo request, id 2816, seq 67, length 64 17:16:07.780080 IP 10.244.2.74 > 10.244.1.62: ICMP echo reply, id 2816, seq 67, length 64 17:16:08.780127 IP 10.244.1.62 > 10.244.2.74: ICMP echo request, id 2816, seq 68, length 64 17:16:08.780173 IP 10.244.2.74 > 10.244.1.62: ICMP echo reply, id 2816, seq 68, length 64 17:16:09.780576 IP 10.244.1.62 > 10.244.2.74: ICMP echo request, id 2816, seq 69, length 64#使用master節點ping 10.244.2.74 在node02節點抓包 [root@node02 ~]# tcpdump -i flannel.1 -nn host 10.244.2.74 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on flannel.1, link-type EN10MB (Ethernet), capture size 262144 bytes 17:17:51.003946 IP 10.244.0.0 > 10.244.2.74: ICMP echo request, id 30700, seq 4, length 64 17:17:51.004017 IP 10.244.2.74 > 10.244.0.0: ICMP echo reply, id 30700, seq 4, length 64 17:17:52.004634 IP 10.244.0.0 > 10.244.2.74: ICMP echo request, id 30700, seq 5, length 64 17:17:52.004688 IP 10.244.2.74 > 10.244.0.0: ICMP echo reply, id 30700, seq 5, length 64 17:17:53.005045 IP 10.244.0.0 > 10.244.2.74: ICMP echo request, id 30700, seq 6, length 64 17:17:53.005098 IP 10.244.2.74 > 10.244.0.0: ICMP echo reply, id 30700, seq 6, length 64 17:17:54.005302 IP 10.244.0.0 > 10.244.2.74: ICMP echo request, id 30700, seq 7, length 64 17:17:54.005359 IP 10.244.2.74 > 10.244.0.0: ICMP echo reply, id 30700, seq 7, length 64#可以看到報文都是經過flannel.1網絡接口進入2層隧道進而轉發

    發送到10.244.1.0/24和10.244.20/24網段的數據報文發給本機的flannel.1接口,即進入二層隧道,然后對數據報文進行封裝(封裝VxLAN首部-->UDP首部-->IP首部-->以太網首部),到達目標Node節點后,由目標Node上的flannel.1進行解封裝。
    VXLAN是Linux內核本身支持的一種網絡虛擬化技術,是內核的一個模塊,在內核態實現封裝解封裝,構建出覆蓋網絡,其實就是一個由各宿主機上的Flannel.1設備組成的虛擬二層網絡。

    由于VXLAN由于額外的封包解包,導致其性能較差,所以Flannel就有了host-gw模式,即把宿主機當作網關,除了本地路由之外沒有額外開銷,性能和calico差不多,由于沒有疊加來實現報文轉發,這樣會導致路由表龐大。因為一個節點對應一個網絡,也就對應一條路由條目。

    host-gw雖然VXLAN網絡性能要強很多。,但是種方式有個缺陷:要求各物理節點必須在同一個二層網絡中。物理節點必須在同一網段中。這樣會使得一個網段中的主機量會非常多,萬一發一個廣播報文就會產生干擾。在私有云場景下,宿主機不在同一網段是很常見的狀態,所以就不能使用host-gw了。

    VXLAN還有另外一種功能,VXLAN也支持類似host-gw的玩法,如果兩個節點在同一網段時使用host-gw通信,如果不在同一網段中,即 當前pod所在節點與目標pod所在節點中間有路由器,就使用VXLAN這種方式,使用疊加網絡。 結合了Host-gw和VXLAN,這就是VXLAN的Direct routing模式

    Direct routing模式配置

    修改kube-flannel.yml文件,將flannel的configmap對象改為:

    [root@master manifests]# wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml #下載原版配置文件進行修改后apply執行[root@master manifests]# vim kube-flannel.yml ......net-conf.json: |{"Network": "10.244.0.0/16","Backend": {"Type": "vxlan", #注意,號"Directrouting": true #增加字段}} ......#此時需要刪除flannel網絡后重建,但是會影響所有pod,生產中不建議這么使用kubectl delete -f kube-flannel.yaml ,kubectl apply -f kube-flannel.yaml #查看已經生成相應規則 [root@master manifests]# ip route show default via 10.0.0.2 dev ens33 proto static metric 100 10.0.0.0/24 dev ens33 proto kernel scope link src 10.0.0.10 metric 100 10.244.1.0/24 via 10.0.0.11 dev ens33 10.244.2.0/24 via 10.0.0.12 dev ens33 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1

    配置完成后,各節點會生成類似directrouting一樣的 路由和iptables規則,用于實現二層轉發Pod網絡的通信報文,省去了隧道轉發模式的額外開銷。但是存在的問題點是,對于不在同一個二層網絡的報文轉發,host-gw是無法實現的。延續上面的例子,進行抓包查看:

    [root@master manifests]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES myapp-deploy-65df64765c-85k8x 1/1 Running 0 28s 10.244.1.66 node01 <none> <none> myapp-deploy-65df64765c-8trf2 1/1 Running 0 28s 10.244.1.65 node01 <none> <none> myapp-deploy-65df64765c-cxgq4 1/1 Running 0 28s 10.244.2.78 node02 <none> <none> myapp-deploy-65df64765c-l646w 1/1 Running 0 28s 10.244.2.79 node02 <none> <none> pod-demo 2/2 Running 0 43s 10.244.2.77 node02 <none> <none>#進入myapp-deploy-65df64765c-85k8x 容器ping另一個節點的容器10.244.2.79[root@master manifests]# kubectl exec -it myapp-deploy-65df64765c-85k8x -- /bin/sh / # ping 10.244.2.79 PING 10.244.2.79 (10.244.2.79): 56 data bytes 64 bytes from 10.244.2.79: seq=0 ttl=62 time=2.812 ms 64 bytes from 10.244.2.79: seq=1 ttl=62 time=0.398 ms 64 bytes from 10.244.2.79: seq=2 ttl=62 time=0.362 ms#node02節點抓包 [root@node02 ~]# tcpdump -i ens33 -nn icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 08:56:37.256880 IP 10.244.1.66 > 10.244.2.79: ICMP echo request, id 2816, seq 38, length 64 08:56:37.256948 IP 10.244.2.79 > 10.244.1.66: ICMP echo reply, id 2816, seq 38, length 64 08:56:38.256295 IP 10.244.1.66 > 10.244.2.79: ICMP echo request, id 2816, seq 39, length 64 08:56:38.256371 IP 10.244.2.79 > 10.244.1.66: ICMP echo reply, id 2816, seq 39, length 64 08:56:39.255704 IP 10.244.1.66 > 10.244.2.79: ICMP echo request, id 2816, seq 40, length 64

    從上面的結果可以看到,發往10.244.1.0/24和10.244.1.0/24的包都是直接經過eth0網絡接口直接發出去的,這就是Directrouting。如果兩個節點是跨網段的,則flannel自動降級為VxLAN模式。

    此時,在各個集群節點上執行“iptables -nL”命令可以看到,iptables filter表的FORWARD鏈上由其生成了如下兩條轉發規則,它顯示放行了10.244.0.0/16網絡進出的所有報文,用于確保由物理接收或發送的目標地址或源地址為10.244.0.0/16網絡的所有報文均能夠正常通行。這些是 Direct Routing模式得以實現的必要條件:
    再在此之前創建的Pod和宿主機上進行ping測試,可以看到在flannel.1接口上已經抓不到包了,在eth0上可以用抓到ICMP的包

    Host-gw后端

    ? Flannel除了上面2種數據傳輸的方式以外,還有一種是host-gw的方式,host-gw后端是通過添加必要的路由信息使用節點的二層網絡直接發送Pod的通信報文。它的工作方式類似于Directrouting的功能,但是其并不具備VxLan的隧道轉發能力。

    ? 編輯kube-flannel的配置清單,將ConfigMap資源kube-flannel-cfg的data字段中網絡配置進行修改,如下:

    [root@master ~]# vim kube-flannel.yml ......net-conf.json: |{"Network": "10.244.0.0/16","Backend": {"Type": "host-gw"}} ......

    配置完成后,各節點會生成類似directrouting一樣的 路由和iptables規則,用于實現二層轉發Pod網絡的通信報文,省去了隧道轉發模式的額外開銷。但是存在的問題點是,對于不在同一個二層網絡的報文轉發,host-gw是無法實現的

    [root@master manifests]# ip route default via 10.0.0.2 dev ens33 proto static metric 100 10.0.0.0/24 dev ens33 proto kernel scope link src 10.0.0.10 metric 100 10.244.1.0/24 via 10.0.0.11 dev ens33 10.244.2.0/24 via 10.0.0.12 dev ens33 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 / # ping -c 2 10.244.1.66 PING 10.244.1.66 (10.244.1.66): 56 data bytes 64 bytes from 10.244.1.66: seq=0 ttl=62 time=0.433 ms 64 bytes from 10.244.1.66: seq=1 ttl=62 time=0.334 ms--- 10.244.1.66 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 0.334/0.383/0.433 ms[root@master mainfest]# tcpdump -i ens33 -nn icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 09:09:39.496407 IP 10.244.2.78 > 10.244.1.66: ICMP echo request, id 3072, seq 0, length 64 09:09:39.496588 IP 10.244.1.66 > 10.244.2.78: ICMP echo reply, id 3072, seq 0, length 64 09:09:40.497129 IP 10.244.2.78 > 10.244.1.66: ICMP echo request, id 3072, seq 1, length 64 09:09:40.497356 IP 10.244.1.66 > 10.244.2.78: ICMP echo reply, id 3072, seq 1, length 64

    該模式下,報文轉發的相關流程如下:

  • Pod10.244.2.78向node02的Pod10.244.1.66發送報文,查看到報文中的目的地址為10.244.1.66,并非本地網段,會直接發送到網關10.0.0.12
  • 網關發現目標的地址為10.244.1.66,要到達10.244.1.0/24網段,需要送達到node01的物理網卡,node01接收以后發現該報文的目標地址屬于本機上的另一個虛擬網卡,然后轉發到相對應的Pod10.244.1.66
  • 以上就是Flannel網絡模型的三種工作模式,但是flannel自身并不具備為Pod網絡實現網絡策略和網絡通信隔離的功能,為此只能借助于Calico聯合統一的項目Calnal項目進行構建網絡策略的功能。

    網絡策略

    網絡策略(Network Policy )是 Kubernetes 的一種資源。Network Policy 通過 Label 選擇 Pod,并指定其他 Pod 或外界如何與這些 Pod 通信。

    Pod的網絡流量包含流入(Ingress)和流出(Egress)兩種方向。默認情況下,所有 Pod 是非隔離的,即任何來源的網絡流量都能夠訪問 Pod,沒有任何限制。當為 Pod 定義了 Network Policy,只有 Policy 允許的流量才能訪問 Pod。

    Kubernetes的網絡策略功能也是由第三方的網絡插件實現的,因此,只有支持網絡策略功能的網絡插件才能進行配置網絡策略,比如Calico、Canal、kube-router等等。

    部署Canal提供網絡策略功能

    Calico可以獨立地為Kubernetes提供網絡解決方案和網絡策略,也可以和flannel相結合,由flannel提供網絡解決方案,Calico僅用于提供網絡策略,此時將Calico稱為Canal。結合flannel工作時,Calico提供的默認配置清單式以flannel默認使用的10.244.0.0/16為Pod網絡,因此在集群中kube-controller-manager啟動時就需要通過--cluster-cidr選項進行設置使用該網絡地址,并且---allocate-node-cidrs的值應設置為true。

    #下載文件到本地 [root@master calico]# wget https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/hosted/canal/rbac.yaml [root@master calico]# wget https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/hosted/canal/canal.yaml#應用 [root@master calico]# kubectl apply -f rbac.yaml [root@master calico]# kubectl apply -f canal.yaml

    Canal作為DaemonSet部署到每個節點,屬于kube-system這個名稱空間。需要注意的是,Canal只是直接使用了Calico和flannel項目,代碼本身沒有修改,Canal只是一種部署的模式,用于安裝和配置項目。

    [root@master calico]# kubectl get pods -n kube-system -w NAME READY STATUS RESTARTS AGE canal-nbspn 0/3 ContainerCreating 0 2m16s canal-pj6rx 2/3 Running 0 2m16s canal-rgsnp 3/3 Running 0 2m16s

    配置策略

    在Kubernetes系統中,報文的流入和流出的核心組件是Pod資源,它們也是網絡策略功能的主要應用對象。NetworkPolicy對象通過podSelector選擇 一組Pod資源作為控制對象。NetworkPolicy是定義在一組Pod資源之上用于管理入站流量,或出站流量的一組規則,有可以是出入站規則一起生效,規則的生效模式通常由spec.policyTypes進行 定義。如下圖:

    默認情況下,Pod對象的流量控制是為空的,報文可以自由出入。在附加網絡策略之后,Pod對象會因為NetworkPolicy而被隔離,一旦名稱空間中有任何NetworkPolicy對象匹配了某特定的Pod對象,則該Pod將拒絕NetworkPolicy規則中不允許的所有連接請求,但是那些未被匹配到的Pod對象依舊可以接受所有流量。
    對特定的Pod集合來說,入站和出站流量默認是放行狀態,除非有規則可以進行匹配。還有一點需要注意的是,在spec.policyTypes中指定了生效的規則類型,但是在networkpolicy.spec字段中嵌套定義了沒有任何規則的Ingress或Egress時,則表示拒絕入站或出站的一切流量。定義網絡策略的基本格式如下:

    apiVersion: networking.k8s.io/v1 #定義API版本 kind: NetworkPolicy #定義資源類型 metadata:name: allow-myapp-ingress #定義NetwokPolicy的名字namespace: default spec: #NetworkPolicy規則定義podSelector: #匹配擁有標簽app:myapp的Pod資源matchLabels:app: myapppolicyTypes ["Ingress"] #NetworkPolicy類型,可以是Ingress,Egress,或者兩者共存ingress: #定義入站規則- from:- ipBlock: #定義可以訪問的網段cidr: 10.244.0.0/16except: #排除的網段- 10.244.3.0/24- podSelector: #選定當前default名稱空間,標簽為app:myapp可以入站matchLabels:app: myappports: #開放的協議和端口定義- protocol: TCPport: 80

    該網絡策略就是將default名稱空間中擁有標簽"app=myapp"的Pod資源開放80/TCP端口給10.244.0.0/16網段,并排除10.244.3.0/24網段的訪問,并且也開放給標簽為app=myapp的所有Pod資源進行訪問。

    Ingress管控

    創建

    [root@master manifests]# mkdir networkpolicy #創建名稱空間 dev prod [root@master manifests]# kubectl create namespace dev namespace/dev created [root@master manifests]# kubectl create namespace prod namespace/prod created [root@master manifests]# kubectl get ns NAME STATUS AGE default Active 12d dev Active 6s ingress-nginx Active 7d16h kube-public Active 12d kube-system Active 12d prod Active 3s#定義規則 [root@master manifests]# cd networkpolicy/ [root@master networkpolicy]# vim ingress-def.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: deny-all-ingress spec:podSelector: {}policyTypes:- Ingress#執行 指定在dev名稱空間生效 [root@master networkpolicy]# kubectl apply -f ingress-def.yaml -n dev networkpolicy.networking.k8s.io/deny-all-ingress created[root@master networkpolicy]# kubectl get netpol -n dev NAME POD-SELECTOR AGE deny-all-ingress <none> 33s

    運行Pod

    [root@master networkpolicy]# vim pod-a.yaml apiVersion: v1 kind: Pod metadata:name: pod1 spec:containers:- name: myappimage: ikubernetes/myapp:v1[root@master networkpolicy]# kubectl apply -f pod-a.yaml -n dev pod/pod1 created [root@master networkpolicy]# kubectl get pods -n dev -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 1/1 Running 0 21s 10.244.2.3 node02 <none> <none>

    嘗試訪問剛剛創建的pod1

    [root@master networkpolicy]# curl 10.244.2.3 curl: (7) Failed connect to 10.244.2.3:80; 連接超時

    嘗試訪問在prod名稱空間的pod1

    [root@master networkpolicy]# kubectl apply -f pod-a.yaml -n prod pod/pod1 created [root@master networkpolicy]# kubectl get pods -o wide -n prod NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 1/1 Running 0 11s 10.244.2.4 node02 <none> <none> [root@master networkpolicy]# curl 10.244.2.4 Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>

    總結
    此時dev名稱空間使用了Ingress規則,但是為空,代表拒絕所有入站請求,而prod名稱空間沒有定義Ingress規則,允許所有訪問。

    定義dev名稱空間可以對外被訪問

    [root@master networkpolicy]# vim ingress-def.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: deny-all-ingress spec:podSelector: {}ingress:- {}policyTypes:- Ingress#應用后嘗試訪問dev名稱空間中的pod1 [root@master networkpolicy]# kubectl apply -f ingress-def.yaml -n dev networkpolicy.networking.k8s.io/deny-all-ingress configured [root@master networkpolicy]# kubectl get pods -n dev -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 1/1 Running 0 11m 10.244.2.3 node02 <none> <none> [root@master networkpolicy]# curl 10.244.2.3 Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>

    dev名稱空間中的pod1可以被訪問,因為增加了ingress規則 {}表示映射所有。

    放行特定的入棧流量:
    可以使用標簽選擇器來選擇指定的一組pod來定義規則

    #給pod1打標簽 [root@master networkpolicy]# kubectl label pods pod1 app=myapp -n dev pod/pod1 labeled#定義 [root@master networkpolicy]# vim allow-netpol-demo.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: all-myapp-ingress spec:podSelector: matchLabels: #使用標簽選擇器匹配app: myappingress:- from:- ipBlock: #允許網段cidr: 10.244.0.0/16except: #排除IP 也可是網段- 10.244.1.88/32ports: #定義入棧規則允許被訪問的端口和協議- protocol: TCPport: 80#應用 [root@master networkpolicy]# kubectl get netpol -n dev NAME POD-SELECTOR AGE allow-myapp-ingress app=myapp 38s deny-all-ingress <none> 26m

    嘗試訪問dev中pod1的80和443端口,驗證,(myapp沒有443端口,如果被阻擋應提示連接超時,如果可以訪問應提示 拒絕連接)

    [root@master networkpolicy]# curl 10.244.2.3 Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a> [root@master networkpolicy]# curl 10.244.2.3:443 curl: (7) Failed connect to 10.244.2.3:443; 連接超時

    Egress管控

    通常,出站的流量默認策略應該是允許通過的,但是當有精細化需求,僅放行那些有對外請求需要的Pod對象的出站流量,也可以先為名稱空間設置“禁止所有”的默認策略,再細化制定準許的策略。networkpolicy.spec中嵌套的Egress字段用來定義出站流量規則。

    實踐中,需要進行嚴格隔離的環境通常將默認的策略設置為拒絕所有出站流量,再去細化配置允許到達的目標端點的出站流量。

    舉例,禁止prod名稱空間所有出站規則,入棧全部允許

    #配置禁止出站規則 [root@master networkpolicy]# vim egress-def.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: deny-all-egress spec:podSelector: {}policyTypes:- Egress#應用并查看 [root@master networkpolicy]# kubectl apply -f egress-def.yaml -n prod networkpolicy.networking.k8s.io/deny-all-egress created [root@master networkpolicy]# kubectl get netpol -n prod NAME POD-SELECTOR AGE deny-all-egress <none> 13s#在prod內創建pod [root@master networkpolicy]# kubectl get pods -n prod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod1 1/1 Running 0 29m 10.244.2.4 node02 <none> <none>#進入pod1內部,嘗試ping集群內dashboard的ip地址 10.244.2.72 [root@master networkpolicy]# kubectl exec -it pod1 -n prod -- /bin/sh / # ping 10.244.2.72 PING 10.244.2.72 (10.244.2.72): 56 data bytes #無法ping通,現在修改配置清單允許所有出站流量 [root@master networkpolicy]# vim egress-def.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: deny-all-egress spec:podSelector: {}egress:- {}policyTypes:- Egress#應用后再次進入pod1內嘗試pingdashboard的ip地址 10.244.2.72 [root@master networkpolicy]# kubectl apply -f egress-def.yaml -n prod networkpolicy.networking.k8s.io/deny-all-egress configured[root@master networkpolicy]# kubectl exec -it pod1 -n prod -- /bin/sh / # ping 10.244.2.72 PING 10.244.2.72 (10.244.2.72): 56 data bytes 64 bytes from 10.244.2.72: seq=144 ttl=63 time=0.189 ms 64 bytes from 10.244.2.72: seq=145 ttl=63 time=0.084 ms 64 bytes from 10.244.2.72: seq=146 ttl=63 time=0.086 ms 64 bytes from 10.244.2.72: seq=147 ttl=63 time=0.092 ms 64 bytes from 10.244.2.72: seq=148 ttl=63 time=0.079 ms

    隔離名稱空間

    實踐中,通常需要彼此隔離所有的名稱空間,但是又需要允許它們可以和kube-system名稱空間中的Pod資源進行流量交換,以實現監控和名稱解析等各種管理功能。下面的配置清單示例在default名稱空間定義相關規則,在出站和入站都默認均為拒絕的情況下,它用于放行名稱空間內部的各Pod對象之間的通信,以及和kube-system名稱空間內各Pod間的通信。

    apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: namespace-deny-allnamespace: default spec:policyTypes: ["Ingress","Egress"]podSelector: {} --- apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata:name: namespace-allownamespace: default spec:policyTypes: ["Ingress","Egress"]podSelector: {}ingress:- from:- namespaceSelector:matchExpressions:- key: nameoperator: Invalues: ["default","kube-system"]egress:- to:- namespaceSelector:matchExpressions:- key: nameoperator: Invalues: ["default","kube-system"]

    有一些額外的系統附件可能會單獨部署到獨有的名稱空間中,比如將prometheus監控系統部署到prom名稱空間等,這類具有管理功能的附件所在的名稱空間和每一個特定的名稱空間的出入流量也是需要被放行的。

    參考資料

    https://www.cnblogs.com/linuxk
    馬永亮. Kubernetes進階實戰 (云計算與虛擬化技術叢書)
    Kubernetes-handbook-jimmysong-20181218

    轉載于:https://www.cnblogs.com/wlbl/p/10694374.html

    總結

    以上是生活随笔為你收集整理的Kubernetes之(十七)网络模型和网络策略的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久av伊人 | 中文字幕视频观看 | 亚洲精品视频在线观看免费视频 | 日韩高清一区二区 | av免费高清观看 | 操老逼免费视频 | 欧美韩日精品 | 亚洲精品成人免费 | 99麻豆视频 | 在线观看理论 | 成人在线黄色 | 亚洲干| 中文亚洲欧美日韩 | 人人射人人爱 | 成人日批视频 | 国产黄a三级三级三级三级三级 | 99精品区 | 亚洲色图27p| 在线观看av麻豆 | 日韩免费成人av | 久久人人97超碰国产公开结果 | 久久久久欧美精品999 | 精品在线看 | 在线看日韩av | 国产精品视频最多的网站 | 国产精品久久久久久久久久久免费 | 天天激情综合网 | 国产高清av免费在线观看 | 91av播放 | 欧洲精品亚洲精品 | www麻豆视频 | 日韩精品免费一线在线观看 | 人人爽人人爽人人爽学生一级 | 天天爽综合网 | 午夜精品久久久 | 永久免费的av电影 | 亚州国产精品久久久 | 亚洲a资源| 亚洲日本va午夜在线电影 | 欧美一区二区免费在线观看 | 国产精品久久久久久爽爽爽 | 成人在线视频免费 | 国产成人免费高清 | 久久久精品午夜 | 亚洲国产精品久久久久婷婷884 | 最新av电影网址 | 激情五月婷婷网 | 在线成人观看 | 午夜久久久精品 | 亚洲精品女| 久久午夜电影院 | 色欧美成人精品a∨在线观看 | 中国一级片在线播放 | 亚洲一区不卡视频 | 国产一区二区视频在线播放 | 久99视频| 国产黄色精品视频 | 国产.精品.日韩.另类.中文.在线.播放 | 狠狠干天天操 | 在线视频日韩精品 | 欧美日韩在线视频一区二区 | 国产精品18久久久久白浆 | 中文字幕丝袜美腿 | www.色国产 | 最近久乱中文字幕 | 91亚洲狠狠婷婷综合久久久 | 日本高清xxxx | 在线观看中文字幕一区 | 波多野结衣动态图 | 国内久久视频 | 国产黄| 在线 精品 国产 | 黄色av电影 | 777久久久| 色综合天天狠狠 | av电影在线免费观看 | 99久久久国产精品免费观看 | 日av免费| 日韩在线观看中文 | 欧美成人黄色片 | 精品国产观看 | 国产黄色资源 | 在线观看亚洲成人 | 免费成人av在线 | 又黄又刺激 | 黄网站免费大全入口 | 精品一区 在线 | 91av在线国产 | 在线国产一区二区三区 | 在线观看av不卡 | 91大神精品视频 | 91精品亚洲影视在线观看 | 日本一区二区三区免费观看 | 99色在线观看 | 国产探花在线看 | 免费色黄 | 国产在线精品视频 | 国产日韩精品一区二区 | 亚洲午夜久久久久久久久 | 久久久人 | 久草在线视频中文 | 黄色aa久久 | 97人人人人 | 狠狠综合 | 99精品国产免费久久久久久下载 | 国产免费二区 | 午夜视频免费在线观看 | 岛国av在线 | 日韩在线观看免费 | 精品一二 | 99色在线 | 免费看的黄色片 | 精品女同一区二区三区在线观看 | 成人黄色片免费 | 国产精品一区二区av日韩在线 | 91片黄在线观看 | 一本到视频在线观看 | 久久久蜜桃 | 国产午夜精品av一区二区 | 麻豆影视在线观看 | 国产亚洲精品免费 | 日日夜夜亚洲 | 福利一区二区 | 综合色综合色 | 亚洲日本中文字幕在线观看 | 一级黄色a视频 | 国产精品久久久久久久久费观看 | 99在线精品视频 | 国产免费观看久久 | 中文字幕中文字幕在线中文字幕三区 | 久草国产精品 | 九九九热精品免费视频观看 | 日韩在线不卡视频 | 成人天堂网| 亚洲区精品视频 | 97干com| 91片黄在线观 | 亚洲乱码在线 | 亚洲综合网站在线观看 | 国产精品不卡视频 | 成人在线观看你懂的 | 成人黄色电影免费观看 | 国产在线视频一区 | 91亚色在线观看 | 国产糖心vlog在线观看 | 91视频3p| 成人在线播放网站 | 97色se| 狠狠色噜噜狠狠 | 亚洲黄色在线看 | 九九九热精品 | 天天干夜夜爱 | 亚洲资源在线观看 | 午夜精品久久久久久久爽 | 99精品在线观看视频 | 日韩经典一区二区三区 | 久久久久久久网站 | 91精品推荐 | 日韩黄色一区 | 精品国产免费人成在线观看 | 国产精品美女久久久久久久 | 91少妇精拍在线播放 | 亚洲精品国产第一综合99久久 | 国产亚洲aⅴaaaaaa毛片 | 欧美国产一区二区 | 国产人成在线观看 | 日韩精品免费在线观看视频 | 久久全国免费视频 | 国产成人高清av | 97色综合 | 美女视频黄免费网站 | 国产综合片| 中文在线免费观看 | 波多野结衣在线观看一区二区三区 | 在线视频黄 | 精品福利视频在线观看 | 99在线国产 | 亚洲精品国产精品国自产 | 99 国产精品| 国产精品露脸在线 | 国产精品美女久久久 | 在线免费av网站 | 亚洲精品一区二区三区高潮 | 日韩免费高清在线观看 | 国产小视频福利在线 | 99久久婷婷国产精品综合 | 久久亚洲精品电影 | 成人网444ppp | 日日干网| 色九九影院 | 97成人在线视频 | 国产成人精品亚洲 | 中日韩三级视频 | 国产精品大片免费观看 | 国产精品女主播一区二区三区 | 激情综合六月 | 亚洲国内精品在线 | 九九热免费在线观看 | 91视频免费看网站 | 欧美日韩中文国产一区发布 | 久久久久久黄色 | 91视频黄色 | 国内小视频 | 911亚洲精品第一 | 国产亚洲精品精品精品 | 在线超碰av | 黄色的视频 | 日av免费 | 免费看黄电影 | 日韩91精品 | 在线观看一区 | 91热| 男女啪啪免费网站 | 天天色.com | 美女黄网站视频免费 | 久久国色夜色精品国产 | 免费福利视频导航 | 国产精品亚洲成人 | 国产精品永久在线观看 | 在线观看av国产 | www.av在线.com| 日韩精品一区二区三区免费视频观看 | 综合色婷婷 | 狠狠久久伊人 | 成人国产亚洲 | 99久久综合狠狠综合久久 | 午夜影院一级 | 日本精品一二区 | 国模精品在线 | 国产成人精品综合久久久久99 | 夜夜躁天天躁很躁波 | 日韩动漫免费观看高清完整版在线观看 | 黄在线| 91丨九色丨丝袜 | 欧美日韩一区二区久久 | 中文字幕之中文字幕 | 99精品一级欧美片免费播放 | 特黄特色特刺激视频免费播放 | 亚洲一二三在线 | 亚洲国产视频a | 久久精品国产亚洲 | 中文资源在线播放 | 久在线观看视频 | 91爱爱中文字幕 | 免费看成人av | 欧美爽爽爽 | 免费色网站 | 国产精品一区二区果冻传媒 | 人人爽人人搞 | 欧美日韩性视频在线 | 久久九九免费视频 | 欧美精品少妇xxxxx喷水 | 国产拍揄自揄精品视频麻豆 | 日本精品视频在线观看 | 91成人天堂久久成人 | 色资源网免费观看视频 | 午夜免费视频网站 | 久久精品国产成人 | 国产系列在线观看 | 午夜.dj高清免费观看视频 | 视频三区| 中文字幕久久精品一区 | 久久免费视频2 | 中文字幕视频观看 | 成人资源在线播放 | 日本资源中文字幕在线 | 国产精品99久久久久久久久 | 日韩一区正在播放 | 91久久在线观看 | 欧美另类老妇 | 色偷偷888欧美精品久久久 | 亚洲久在线 | 成人久久18免费网站图片 | 国产精品18久久久久vr手机版特色 | av在线免费播放 | 久久综合综合久久综合 | 久久久精品国产一区二区电影四季 | 中文字幕亚洲精品日韩 | 91精选在线 | 在线观看亚洲免费视频 | 国产精品1000 | 日韩精品一区二区不卡 | 激情av一区二区 | 欧美激情视频一区 | 国产不卡视频在线播放 | 色婷婷综合久久久 | 国产黄色片免费观看 | 午夜视频在线瓜伦 | av午夜电影| 三级视频片 | 一本一本久久a久久精品综合 | 麻豆影音先锋 | 四虎影视成人永久免费观看视频 | 欧美一级性视频 | 精品国产一区二区三区噜噜噜 | 精品产品国产在线不卡 | av专区在线| 国产欧美精品一区二区三区 | 黄色a大片| 精品国产亚洲日本 | 全久久久久久久久久久电影 | 国产在线精品区 | 免费观看视频的网站 | 99久久日韩精品视频免费在线观看 | 免费亚洲黄色 | 天天操夜夜爱 | 亚洲区精品视频 | 狠狠色狠狠色综合日日小说 | 九九热免费在线视频 | 黄色a一级片 | 国产午夜精品久久久久久久久久 | 精品免费视频123区 午夜久久成人 | 国产精品精品久久久久久 | a在线观看免费视频 | 一区二区精品 | 亚洲人成综合 | 在线观看中文字幕dvd播放 | 欧美与欧洲交xxxx免费观看 | 日韩av女优视频 | 色偷偷中文字幕 | 色干综合| 伊人久久影视 | 精品国产成人在线影院 | 8x成人在线 | 日韩电影在线观看一区二区三区 | 91超在线 | 婷婷久久一区 | 国产精品一区二区三区久久久 | 91在线中文 | 亚洲激精日韩激精欧美精品 | 怡红院av久久久久久久 | 国产不卡在线看 | 在线欧美最极品的av | 97超碰在线视 | 亚洲精品福利视频 | 亚洲精品综合一区二区 | 日本狠狠色 | 视频一区久久 | 久久久久久久综合色一本 | 亚洲综合激情小说 | 中国一级片在线播放 | 97色免费视频 | 夜夜骑日日| 国产无套精品久久久久久 | 欧美性脚交 | 在线国产能看的 | 国产精品视频免费在线观看 | 91超级碰碰 | 欧美无极色 | 欧美日本啪啪无遮挡网站 | 国产中文字幕在线播放 | 日本资源中文字幕在线 | 久久一区二 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 一区精品在线 | 日韩专区在线播放 | 久久精品4 | 九色免费视频 | 天天翘av| 四川bbb搡bbb爽爽视频 | 91在线视频在线观看 | 99成人在线视频 | www.伊人色.com| 中文字幕视频 | 久久网站最新地址 | 中文字幕一区二区在线播放 | 久久福利小视频 | 日韩区欧美久久久无人区 | 五月婷婷综合在线观看 | 天天干,天天操 | 亚洲美女精品 | 最近中文字幕第一页 | 天天天色综合a | 色综合天天综合网国产成人网 | 99久久精品无免国产免费 | 亚洲精品国产精品99久久 | 丝袜网站在线观看 | 国产视频在线观看一区二区 | 久久精品视频网 | 在线观看久草 | 五月婷婷视频在线观看 | 在线观看成人小视频 | 国产精品激情 | 久久午夜电影网 | 欧美日韩一区二区三区在线观看视频 | 91中文字幕在线观看 | 青草视频免费观看 | 91视频久久久 | 亚洲电影自拍 | 国产剧情久久 | 久久免费一 | 四虎影院在线观看av | 狠狠黄| 中文字幕免费高清 | 久久在线精品 | 美女视频黄在线 | 国产精品综合久久 | 日日干天天操 | 中文字幕一二三区 | 久久久久久久久久久综合 | 色婷婷久久 | 99国产精品久久久久久久久久 | 又黄又爽又无遮挡免费的网站 | 国产精选在线 | 99久久这里只有精品 | 我要色综合天天 | 91中文字幕一区 | 国内精品久久久久国产 | av一区二区三区在线观看 | 久久久亚洲国产精品麻豆综合天堂 | 亚洲精品中文字幕在线观看 | 在线观看国产成人av片 | 中文字幕一区二区三区在线观看 | 国产成人在线网站 | 激情视频二区 | 美女网站一区 | 三上悠亚一区二区在线观看 | 九七视频在线观看 | 国产精品久久久一区二区 | 久久这里只有精品视频首页 | 欧美精品久久久久性色 | 一区二区三区四区在线 | 色婷婷88av视频一二三区 | 美女搞黄国产视频网站 | 免费进去里的视频 | 久久激情久久 | 久久久久高清 | 伊人五月婷 | 色婷婷午夜 | 99在线观看免费视频精品观看 | 国产色秀视频 | 国产精品成人一区二区三区 | 亚洲永久精品在线观看 | 欧美日韩精品二区第二页 | 国产精品亚洲综合久久 | 成人网在线免费视频 | 黄色视屏免费在线观看 | 99精品国产一区二区三区不卡 | 国产精在线 | 日本丶国产丶欧美色综合 | 色欲综合视频天天天 | 1024手机基地在线观看 | 精品久久久久久久 | av资源在线观看 | 97视频在线看 | 久久久久国产一区二区三区 | 在线观看中文字幕一区 | 国产在线国偷精品产拍免费yy | 98超碰在线 | 欧美福利片在线观看 | 婷婷色综合 | 午夜视频黄 | 欧洲黄色片| 欧美一二三区在线观看 | 毛片网站观看 | 国产精品久久久久久久久久妇女 | 亚洲在线精品 | 五月开心婷婷网 | 日日碰狠狠添天天爽超碰97久久 | 婷婷爱五月天 | 欧美激情视频免费看 | 干狠狠 | 日韩欧美高清一区二区 | 日韩一级黄色av | 婷婷视频导航 | 久草视频一区 | 激情五月婷婷激情 | 国产精品久99 | 成人三级网站在线观看 | 欧美精品中文字幕亚洲专区 | 一区二区三区免费在线观看视频 | 国产黄色一级片在线 | 精品免费久久久久久 | 99视频精品免费观看, | 中文字幕成人av | 久久精品美女视频网站 | 91精品国产高清自在线观看 | 午夜精品一区二区三区在线播放 | 黄色在线观看网站 | 国产美腿白丝袜足在线av | 成人a级网站| 亚洲综合丁香 | 午夜视频在线观看一区二区 | 在线影院 国内精品 | 国产亚洲免费的视频看 | 国产亚洲永久域名 | 午夜美女av | 国产黄色片在线 | 久草在线久草在线2 | 天天亚洲| 久久精品香蕉 | 午夜精品福利在线 | 日韩免费网址 | 国产精品免费在线 | 久草在线资源免费 | 亚洲国产精品视频在线观看 | 亚洲国产精品99久久久久久久久 | 在线精品视频免费播放 | 欧美嫩草影院 | 91在线亚洲| 国产精品123 | 亚洲一级黄色片 | 久99久精品 | 久久久亚洲电影 | 国产在线观看高清视频 | 在线播放精品一区二区三区 | 五月香视频在线观看 | 天天干天天干天天操 | 日韩精品久久久久久 | 中文字幕文字幕一区二区 | 精品国产一二三 | 成人av电影网址 | 日韩成人免费观看 | 青青射| 超碰电影在线观看 | 日本精品一区二区三区在线播放视频 | 91国内在线视频 | 深爱五月激情五月 | 日韩精品在线视频免费观看 | 精品久久久久久久久久久久久久久久久久 | 高清有码中文字幕 | 国产精品久久久久久高潮 | 最近中文字幕在线 | 国产精品久久久久久久久蜜臀 | 91pony九色丨交换 | 久久成人久久 | 亚洲精品黄色 | 亚洲精品国产视频 | 69中文字幕 | 天天插天天 | 色视频 在线 | 日韩理论影院 | 亚洲精品一区二区在线观看 | 操高跟美女 | 日韩欧美视频一区二区三区 | 日本久久久亚洲精品 | 色噜噜狠狠狠狠色综合久不 | 天天色天天草天天射 | 中文字幕在线视频网站 | 国产日韩欧美精品在线观看 | 欧美激情视频在线观看免费 | 一级成人免费视频 | 久久精品999 | 久久久三级视频 | 视频在线观看国产 | www.黄色网.com| 91亚洲影院 | 国产69久久久 | 青草视频在线播放 | 波多野结衣视频一区二区 | 黄色电影在线免费观看 | 日本精品久久 | 成人福利在线观看 | 国产成人福利 | 午夜精品一区二区三区视频免费看 | 欧美精品免费在线 | 欧美日韩一区二区久久 | 久久天天躁狠狠躁亚洲综合公司 | 射久久久 | 婷婷网址| 国产无套精品久久久久久 | 中文在线中文资源 | 国产精品 9999 | 天天色天天色天天色 | 久久久久免费精品国产 | 天堂av网站 | 丁香视频免费观看 | 91在线播放视频 | 天天躁日日躁狠狠躁 | 国产成人精品一区二区在线观看 | 日本在线中文在线 | 人人澡人人添人人爽一区二区 | 国产精品综合在线观看 | 99国产在线观看 | 亚洲精品中文字幕在线 | 在线亚洲精品 | 91色国产在线 | 色狠狠狠 | 在线观看一级视频 | 国产小视频网站 | 亚洲精品在线看 | 日韩无在线 | 免费黄色网址大全 | 久久免费视频这里只有精品 | 狠狠色丁香婷婷综合欧美 | 97成人在线免费视频 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 丝袜美腿在线播放 | 国产在线观看污片 | 免费中文字幕在线观看 | 色婷婷激情电影 | 色插综合| 日韩在线大片 | 成人网页在线免费观看 | 婷婷激情av | 久草在线视频国产 | 黄色a级片在线观看 | 亚洲一区免费在线 | 国产一级做a| 中文字幕在线观看免费观看 | 免费视频久久久久久久 | av免费网页 | 五月天久久久 | 国产精品一区二区免费视频 | 日韩电影一区二区在线观看 | 国产 av 日韩 | 亚洲午夜久久久久 | 亚洲成年片 | 亚洲精品系列 | 亚洲激情 | 精品国产亚洲在线 | 亚洲精品自在在线观看 | 久久婷婷影视 | 日韩久久久久久 | 免费在线播放 | 91在线视频网址 | 美女在线国产 | 国产成人精品一区二区三区 | 天堂v中文 | 久久久久成人精品 | 日韩在线二区 | 波多野结衣理论片 | 色婷婷视频在线观看 | 黄色日视频 | 国产精品99久久久精品免费观看 | 美女福利视频 | 在线不卡的av | 丁香网婷婷| 97超级碰碰 | www.五月天激情| 成人黄色小说网 | 日韩亚洲在线视频 | 中文字幕一区二区三区久久蜜桃 | 欧美色图亚洲图片 | 国产精品久久久久久久7电影 | 999精品 | 日韩免费高清在线观看 | 精品久久久99| 久久99久| 丁香婷五月 | 亚洲极色 | av7777777 | 在线视频第一页 | 国产色视频123区 | 国产综合香蕉五月婷在线 | 久草在线视频精品 | 丁香六月伊人 | 日韩美女免费线视频 | 日韩中文字幕免费在线播放 | 欧美精品国产综合久久 | 久久精品电影 | 国产成人精品av久久 | 亚洲在线视频观看 | 精品国产区 | 日本韩国精品一区二区在线观看 | 国产精品欧美久久久久久 | 最近中文字幕在线中文高清版 | 亚州av网站| 98超碰在线 | 国产天天综合 | 五月香婷 | 欧美大片在线观看一区 | 国产日韩精品一区二区在线观看播放 | av超碰在线 | 999视频网站| 免费高清在线视频一区· | 天天干天天弄 | 香蕉久久久久久av成人 | 婷婷视频| 欧美在线aaa | 天天躁天天操 | 91人人揉日日捏人人看 | 8x成人在线 | 国产精品一区二区你懂的 | 不卡的av在线播放 | 97精品国产aⅴ | 欧美日韩首页 | 在线电影中文字幕 | 久99视频 | 国产免费视频一区二区裸体 | 中文字幕免费久久 | 国产精品久久久久永久免费看 | 中文字幕第 | 午夜精品影院 | 午夜精品久久久99热福利 | 97人人澡人人添人人爽超碰 | 日韩视频一区二区三区在线播放免费观看 | 婷婷激情五月综合 | 四虎成人免费影院 | 久久久精选| www.av小说 | 人人搞人人干 | 热九九精品| 中文在线免费一区三区 | 久久午夜视频 | 日韩免费播放 | 久久69av | 蜜臀av性久久久久蜜臀av | 久久午夜精品影院一区 | 丁香五月缴情综合网 | 婷婷在线视频 | 香蕉视频色 | 色偷偷男人的天堂av | 狠狠操天天操 | 亚洲香蕉在线观看 | 精品专区 | 国产精品美女视频 | 人人干狠狠干 | 久久久精选 | 国产一区二区在线播放视频 | 欧美黄色免费 | 亚洲欧美一区二区三区孕妇写真 | 三级免费黄色 | 国内毛片毛片 | 精品网站999www | 一区二区av| 久草免费资源 | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲国产影院av久久久久 | 免费能看的黄色片 | 国产日韩视频在线播放 | 日韩中文字 | 久久人人爽人人爽人人片av免费 | 国产精品久久久久久久7电影 | 99久久精品国产系列 | 成人av高清在线观看 | 久久96 | 在线视频欧美日韩 | 国产午夜麻豆影院在线观看 | 国产一区视频导航 | 久久久久欧美精品 | 国产色拍| 国产精品视频久久 | 国产精品久久久久久久久久妇女 | 97精品在线| 免费视频二区 | 在线观看一级片 | 天天要夜夜操 | www.91成人 | 天天爽夜夜爽人人爽一区二区 | 亚洲综合在线五月 | 成人免费视频a | 亚洲激情av| 黄色a级片在线观看 | 久艹视频在线观看 | 91麻豆精品91久久久久同性 | 久热爱 | 国产日产精品久久久久快鸭 | 中文字幕在线国产精品 | 国产精品免费在线播放 | 亚洲精品在线观看中文字幕 | 久久1区| 国产69精品久久久久久久久久 | 国产裸体视频bbbbb | 狠狠干夜夜爱 | 99精品欧美一区二区蜜桃免费 | 久久99精品国产一区二区三区 | 欧美精品久久99 | 国产精品美女免费视频 | 国产精品一区二区三区观看 | 激情五月***国产精品 | 97在线视| 激情五月六月婷婷 | 最新动作电影 | www.香蕉视频在线观看 | 精品在线视频一区 | 久草久草在线 | zzijzzij亚洲成熟少妇 | 69视频在线 | 久久国产欧美日韩精品 | 免费视频一二三区 | 日韩欧美国产精品 | 精品国产色 | 黄色网www| 国产精品刺激对白麻豆99 | 天天拍天天爽 | 日日爱av | 色停停五月天 | 激情综合亚洲 | 久久婷婷色综合 | 免费视频97 | 中文字幕av免费在线观看 | www亚洲视频 | 久久精品免费观看 | 操操综合 | www激情久久 | 99精品色| 日韩精品首页 | 国产91精品一区二区麻豆网站 | 六月丁香婷婷久久 | 日韩在线色视频 | 国产91全国探花系列在线播放 | 最新精品视频在线 | 日韩av片免费在线观看 | 99精品视频观看 | 国产精品久久久久久久久久直播 | 首页国产精品 | www.夜色.com| 91一区二区三区久久久久国产乱 | 韩国av电影在线观看 | www.久久色 | 国际精品久久久 | 三级视频日韩 | 午夜av一区 | 国产一级久久久 | 伊人五月天.com | 激情网第四色 | 久久久九九 | 欧美在线视频免费 | 亚洲天天摸日日摸天天欢 | www视频在线播放 | 97国产一区二区 | 五月婷婷综合激情 | av噜噜噜在线播放 | 91精品视频网站 | 国产精品 欧美 日韩 | 久99久在线视频 | 欧美日韩国产在线精品 | 国产二区视频在线观看 | 操操操日日日干干干 | 天天天插| 2020天天干天天操 | 91精品在线播放 | 91成人网页版 | 日韩最新中文字幕 | 精品国产一区二区三区久久久 | 国产精品精品久久久 | 色91在线视频 | а天堂中文最新一区二区三区 | 在线 你懂 | 久久蜜臀av| 国产精品18久久久久久vr | 成年人视频在线免费 | 99国内精品 | 精品播放 | 97超碰国产精品女人人人爽 | 在线观看中文av | 麻豆91精品 | 黄色中文字幕在线 | 天天操夜夜摸 | 日韩视频专区 | 国产精品综合在线 | 丁香婷婷综合色啪 | 国产精品都在这里 | 欧美最新另类人妖 | 美女又爽又黄 | 国产黄色特级片 | 中文字幕在线视频精品 | 国内精品免费久久影院 | 在线成人短视频 | 久久视频在线看 | 久久国产精品免费视频 | 久草在线免费资源 | 最近中文字幕完整高清 | 干亚洲少妇 | 日韩精品在线观看视频 | 黄色特一级 | 国产丝袜美腿在线 | 天天操天天玩 | 99久久99久久综合 | 成人激情开心网 | 成人资源在线播放 | 国产亚洲精品久久久久久无几年桃 | 中文一区在线 | 国产三级在线播放 | 久草精品视频 | 亚洲高清视频在线播放 | 久久免费影院 | 国产v视频 | www色片 | 国产成人高清av | 日韩在线视频观看免费 | 干干夜夜 | 一区二区视频在线观看免费 | 日韩亚洲欧美中文字幕 | 在线激情小视频 | 综合色在线观看 | 精品国模一区二区三区 | 久9在线| 亚洲国产av精品毛片鲁大师 | 国产精品热视频 | 精品国产伦一区二区三区观看说明 | 久久久www免费电影网 | 国产大片免费久久 | 免费在线观看一级片 | 黄色的网站免费看 | 岛国av在线 | 国产成人99久久亚洲综合精品 | 婷婷亚洲综合五月天小说 | 欧美日韩p片 | 三级在线国产 | 五月天激情综合 | 婷婷综合 | 午夜.dj高清免费观看视频 | 久久久国产一区二区三区四区小说 | 久久色在线观看 | 免费观看性生交 | 69国产盗摄一区二区三区五区 | 免费在线观看黄色网 | 日韩电影中文,亚洲精品乱码 | 国产在线一区二区三区播放 | 日韩字幕在线观看 | 婷婷久操 | jizzjizzjizz亚洲 | 亚洲精区二区三区四区麻豆 | 欧美三人交 | 亚洲高清久久久 | 91在线porny国产在线看 | 亚洲欧美一区二区三区孕妇写真 | 中午字幕在线 | 9草在线 | 国产视频在 | 在线免费黄色av | 国产二区精品 | 日韩三级成人 | 色婷婷视频在线 | 日韩精品一区二区三区第95 | 天天天天色射综合 | 日韩视频一区二区在线 | 久久综合九色综合久99 | 亚洲精品女人 | 婷婷午夜天 | 九九日韩 | 日本一区二区免费在线观看 | 亚洲精品97| 国产精品亚洲精品 | 日本黄色一级电影 | 激情综合色综合久久综合 | 精品亚洲男同gayvideo网站 | av激情五月 | 韩国av免费在线 | 一区二区电影在线观看 | 久久精品这里热有精品 | 日韩女同一区二区三区在线观看 | 亚洲欧美日韩在线看 | 涩五月婷婷 | 国产精品自产拍在线观看中文 | 久久精品亚洲综合专区 | 免费看一级特黄a大片 | 久久人人爽人人爽人人片 | 久久久久亚洲精品男人的天堂 | 免费网址在线播放 | 黄色av电影一级片 | 中文字幕在线影视资源 | 国产精品免费小视频 | 婷婷中文字幕 | 日本黄色免费在线 | 久久免费一级片 | 久久久久久久影院 | 日韩一级黄色片 | 国产一二三四在线视频 | 久草在线观看 | 成人h在线观看 | 成人黄色在线电影 | 国产爽妇网 | 国产一区二区三区高清播放 | 国产欧美日韩精品一区二区免费 | 欧美视频日韩视频 | 亚洲一区二区精品在线 | 国产精品久久久久婷婷 | 国产精品美女久久久久久 | 9999毛片 | 免费看国产曰批40分钟 | 国产精品亚洲片夜色在线 | 色www精品视频在线观看 | 亚洲欧洲精品视频 | 国产精品嫩草69影院 | 国产精品自产拍在线观看桃花 | 久久综合99| a在线一区 | 国产超碰在线 | 99在线免费观看视频 | 在线观看网站你懂的 | 特级西西www44高清大胆图片 | 国产自产在线视频 | 日韩一区正在播放 | 久久综合欧美 | 久青草视频在线观看 | 亚洲欧美激情精品一区二区 | 日韩电影中文字幕在线观看 | 蜜桃av观看 | 亚洲欧美国产日韩在线观看 | 成片视频在线观看 | 日韩av片无码一区二区不卡电影 | 一 级 黄 色 片免费看的 | 亚洲黄色激情小说 | 日韩一级电影在线 | 视频一区视频二区在线观看 | 夜添久久精品亚洲国产精品 | 6080yy午夜一二三区久久 | 国产在线视频不卡 | 亚洲欧美国产精品va在线观看 | 在线看91| 国产在线不卡 | 国产99久久精品一区二区永久免费 | 亚洲国产欧洲综合997久久, | 特及黄色片| 在线精品亚洲一区二区 |