久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Kubernetes集群Pod CIDR與Service CIDR在線修改實(shí)戰(zhàn)指南

Kubernetes集群Pod CIDR與Service CIDR在線修改實(shí)戰(zhàn)指南 1. 動(dòng)手前必須想清楚的事:為什么要改Pod CIDR和Service CIDR先說個(gè)現(xiàn)實(shí)情況:Kubernetes集群的網(wǎng)絡(luò)地址段,最佳的調(diào)整時(shí)機(jī)是在集群創(chuàng)建之前。但實(shí)際運(yùn)維中,總有各種原因讓你不得不在集群運(yùn)行起來之后去動(dòng)這兩個(gè)網(wǎng)段。我自己碰到過的場景大概這么幾類:集群創(chuàng)建初期網(wǎng)段規(guī)劃拍腦袋定得太隨意,結(jié)果Pod一多就把網(wǎng)段地址耗盡;或者是公司網(wǎng)絡(luò)策略調(diào)整,原來用的10.x網(wǎng)段和公司內(nèi)部其他系統(tǒng)的網(wǎng)段沖突了;還有的是多集群統(tǒng)一管理需求,每個(gè)集群的網(wǎng)段必須要納入統(tǒng)一規(guī)劃,結(jié)果老集群的網(wǎng)段不合規(guī)。Pod CIDR管的是集群里每一個(gè)Pod的IP從哪里分配,Service CIDR管的是ClusterIP從哪個(gè)網(wǎng)段來。這兩個(gè)網(wǎng)段一旦定下來,幾乎所有網(wǎng)絡(luò)相關(guān)的組件都會(huì)圍繞它們工作,改起來等于整個(gè)集群的網(wǎng)絡(luò)系統(tǒng)要?jiǎng)右淮未笫中g(shù)。但好消息是:如果你的集群是基于kubeadm部署的標(biāo)準(zhǔn)集群,結(jié)構(gòu)清晰、組件干凈,那么這個(gè)操作是完全可以完成的,而且有相對(duì)穩(wěn)定的操作路徑可以走。如果你用的是云廠商托管的Kubernetes服務(wù),大概率沒有這個(gè)權(quán)限去改,這類操作基本只適用于自建的、可控的集群環(huán)境。在決定動(dòng)手之前,先花一天時(shí)間確認(rèn)自己是真的需要改,而不是懶得重建集群。原因很簡單:整個(gè)過程的停機(jī)時(shí)間、排查成本、出問題回滾的復(fù)雜度,大概率比重建一個(gè)集群要高出不少。如果集群規(guī)模小、應(yīng)用都是無狀態(tài)的,重建新集群然后把應(yīng)用遷過去,可能比你想象中更快更穩(wěn)。但如果集群里有大量的持久化存儲(chǔ)、復(fù)雜的網(wǎng)絡(luò)策略、或者很多依賴固定IP的老應(yīng)用,那就只能選擇在線修改這條路。我自己經(jīng)歷過一次生產(chǎn)環(huán)境的修改,當(dāng)時(shí)集群的大小大概是30多個(gè)節(jié)點(diǎn),Pod數(shù)破千,Service也有幾百個(gè)。整個(gè)操作花了大概4個(gè)小時(shí)的維護(hù)窗口,中間踩了不少坑,有一兩個(gè)坑差點(diǎn)把集群搞癱。這篇文章,就是想把整個(gè)過程的思路、步驟、坑,完整地寫出來。2. 需要?jiǎng)拥兜暮诵慕M件與牽連面分析2.1 哪些組件管著這兩個(gè)網(wǎng)段Pod CIDR和Service CIDR在Kubernetes里不是存到一個(gè)魔法配置文件里就完事的,而是散布在多個(gè)組件的啟動(dòng)參數(shù)、資源對(duì)象的字段和聲明里。先列一下核心組件。kube-controller-manager負(fù)責(zé)管理整個(gè)控制面的控制器邏輯,它有兩個(gè)參數(shù)在這件事里非常關(guān)鍵。--cluster-cidr參數(shù)決定了為每個(gè)節(jié)點(diǎn)分配Pod子網(wǎng)時(shí)的總范圍,換句話說,整個(gè)集群的Pod網(wǎng)段是由它用一把大尺子劃出來的。--service-cluster-ip-range參數(shù)則決定了Service的ClusterIP可以從哪些地址中分配。這兩個(gè)參數(shù)分別控制Pod網(wǎng)段和Service網(wǎng)段的總邊界,是全局配置中的頂層設(shè)置。接著是kube-apiserver,它只涉及Service CIDR,通過--service-cluster-ip-range參數(shù)來決定Service資源在創(chuàng)建時(shí)從哪個(gè)范圍給你分配ClusterIP。這個(gè)參數(shù)在apiserver和controller-manager里必須保持一致,不然會(huì)出現(xiàn)Service創(chuàng)建成功但I(xiàn)P分配不遵循預(yù)期的情況。再往下是kubelet,每個(gè)節(jié)點(diǎn)上的kubelet會(huì)從所在節(jié)點(diǎn)的Pod CIDR子網(wǎng)里給Pod分配IP。Node資源對(duì)象上有個(gè)spec.podCIDR字段,在kubeadm部署的集群中,這個(gè)字段默認(rèn)是kube-controller-manager里的節(jié)點(diǎn)IPAM控制器自動(dòng)分配的。調(diào)用節(jié)點(diǎn)宿主機(jī)的網(wǎng)絡(luò)工具時(shí)會(huì)引用這個(gè)字段,所以這個(gè)字段的值如果和實(shí)際不匹配,Pod網(wǎng)絡(luò)就起不來。然后是kube-proxy。它本身不直接配置CIDR,但它的iptables或IPVS規(guī)則里到處都是基于Service CIDR的判斷邏輯和加載規(guī)則。Service的ClusterIP發(fā)生變化時(shí),如果只改了控制面的參數(shù),但kube-proxy還在用舊網(wǎng)段加載規(guī)則,那網(wǎng)絡(luò)轉(zhuǎn)發(fā)就會(huì)出現(xiàn)各種奇怪的問題。最后是網(wǎng)絡(luò)插件層。無論是Calico、Flannel還是Cilium,它們?cè)诩撼跏蓟臅r(shí)候,都會(huì)讀取配置來指定網(wǎng)絡(luò)通告范圍、IP池范圍、路由發(fā)布策略。這些配置和kube-controller-manager的CIDR設(shè)置必須對(duì)齊。這里用個(gè)生活化類比:整個(gè)集群像一個(gè)小城市的規(guī)劃。Pod CIDR是居民住宅區(qū)的總地塊范圍,Service CIDR是商業(yè)區(qū)的總地塊范圍。政府(控制器)負(fù)責(zé)分割土地,警察局(網(wǎng)絡(luò)插件)負(fù)責(zé)維護(hù)治安巡邏路線。你要把整個(gè)城市的地塊重新劃分,就必須同時(shí)讓規(guī)劃局、政府、警察局、以及每個(gè)建筑物里的物業(yè)(節(jié)點(diǎn)上的kubelet)全部同步到位,不然就會(huì)出現(xiàn)有人按舊地圖辦事的情況。2.2 修改后受影響的資源清單不考慮清楚哪些資源和數(shù)據(jù)會(huì)受到影響,貿(mào)然動(dòng)手改,后面必定是要吃苦頭的。我先梳理一下會(huì)被直接影響的東西。第一類,是所有已經(jīng)創(chuàng)建出來的Service。Service的ClusterIP一旦分配就不會(huì)自動(dòng)變。假如你的Service CIDR原來是10.96.0.0/12,現(xiàn)在已經(jīng)有一堆Service拿到了10.96.x.x的IP。你改成10.100.0.0/16后,這些舊IP的Service不會(huì)自動(dòng)遷移,它們還在舊網(wǎng)段里,但apiserver和kube-proxy已經(jīng)不認(rèn)這個(gè)網(wǎng)段了。結(jié)果就是DNS解析出來的ClusterIP是一個(gè)“外面的世界已經(jīng)不認(rèn)”的地址,流量轉(zhuǎn)發(fā)直接斷掉。第二類,是所有已經(jīng)分配了IP的Pod。每個(gè)節(jié)點(diǎn)上的子網(wǎng)是由節(jié)點(diǎn)IPAM分配的,比如原節(jié)點(diǎn)的Pod CIDR子網(wǎng)是10.244.1.0/24,里面已經(jīng)跑了幾個(gè)Pod,分別拿到了10.244.1.5、10.244.1.6這些地址。你修改總網(wǎng)段之后,如果不處理這些存量Pod,它們會(huì)繼續(xù)占著舊地址運(yùn)行,直到被重建。所以在線修改Pod CIDR的過程,本質(zhì)上就是個(gè)節(jié)點(diǎn)分批驅(qū)逐、然后讓節(jié)點(diǎn)重新獲取新子網(wǎng)、再讓Pod在新子網(wǎng)里重建的過程。第三類,是Kubernetes內(nèi)置的DNS服務(wù)。kube-dns或者CoreDNS本身也是以Pod的形式運(yùn)行的,它也有自己的Service。如果你的Service CIDR一改,CoreDNS的Service ClusterIP也會(huì)變,而集群里所有應(yīng)用是通過這個(gè)ClusterIP去訪問DNS的,如果這個(gè)IP沒同步好,整個(gè)集群的域名解析都會(huì)出問題。第四類,是網(wǎng)絡(luò)插件的狀態(tài)。Calico的IP池?cái)?shù)據(jù)、Flannel在etcd里的網(wǎng)絡(luò)配置,這些東西如果不更新,網(wǎng)絡(luò)插件會(huì)和Kubernetes控制面的認(rèn)知互相打架。最典型的表現(xiàn)就是:Pod成功創(chuàng)建了,但一直處于ContainerCreating狀態(tài),因?yàn)榫W(wǎng)絡(luò)插件不知道自己應(yīng)該給新Pod做網(wǎng)絡(luò)配置。所以,改CIDR不是改一批配置文件重啟組件那么簡單。它實(shí)際上是在做一次有風(fēng)險(xiǎn)的網(wǎng)絡(luò)重構(gòu)。3. 完整執(zhí)行步驟:從環(huán)境備份到集群恢復(fù)3.1 執(zhí)行前的檢查、備份與風(fēng)險(xiǎn)預(yù)估強(qiáng)烈建議在執(zhí)行前把所有可能用到的信息先備份下來,這不是可選項(xiàng),是必選項(xiàng)。第一步,備份etcd。Kubernetes集群的幾乎所有狀態(tài)都存在etcd里,包括所有Service的ClusterIP分配、Node的podCIDR字段、網(wǎng)絡(luò)插件的狀態(tài)。etcd備份是最有底氣的一步,有了它,萬一操作到一半發(fā)現(xiàn)走不通,可以快速回滾到操作前的狀態(tài)。etcd的備份方式看你的部署方式,kubeadm自帶的etcd一般是靜態(tài)Pod,可以直接在etcd Pod里用etcdctl snapshot save命令做快照。注意在快照前先設(shè)置好ETCDCTL_API3環(huán)境變量,防止默認(rèn)走v2協(xié)議。第二步,記錄當(dāng)前所有Service的ClusterIP。用kubectl get svc -A -o wide把每個(gè)名字空間下的Service的ClusterIP、類型、選擇器等信息全部導(dǎo)出來。后面如果你需要手動(dòng)重建Service,這些信息就是依據(jù)。第三步,記錄當(dāng)前所有Node的podCIDR字段。用kubectl get nodes -o json | jq .items[] | {name: .metadata.name, podCIDR: .spec.podCIDR}之類的命令把所有信息記錄到文件里。第四步,和團(tuán)隊(duì)確認(rèn)收益。把所有應(yīng)用都列出來,檢查哪些是無狀態(tài)應(yīng)用、可以接受重建,哪些是有狀態(tài)應(yīng)用、依賴持久化存儲(chǔ)或固定IP。有狀態(tài)應(yīng)用的處理策略是單獨(dú)定義的,不要在維護(hù)窗口里現(xiàn)想。還有一些前置條件必須確認(rèn)。集群一定是kubeadm部署的或者類型接近的標(biāo)準(zhǔn)集群,管理組件是靜態(tài)Pod形式或者systemd服務(wù)形式。如果集群是用云平臺(tái)自帶的部署工具做的,大概率不可改。集群中不能有正在執(zhí)行中的資源變更操作,維護(hù)窗口內(nèi)要禁止其他同事在集群里做任何變更。3.2 控制面組件的修改順序與重啟技巧整個(gè)操作的順序有個(gè)總原則:先改控制面,再改數(shù)據(jù)面;先改配置,再動(dòng)節(jié)點(diǎn);先在測試節(jié)點(diǎn)驗(yàn)證,再逐步擴(kuò)大范圍??刂泼娴男薷?主要落在/etc/kubernetes/manifests/目錄下的三個(gè)靜態(tài)Pod的YAML文件里,分別是kube-apiserver.yaml、kube-controller-manager.yaml、kube-scheduler.yaml。kube-apiserver.yaml里的--service-cluster-ip-range參數(shù)是必須改的。舉例來說,原來配置是--service-cluster-ip-range10.96.0.0/12,要改成--service-cluster-ip-range10.100.0.0/16,保留好SDN之前的參數(shù),不要?jiǎng)悠渌渲谩ube-controller-manager.yaml里要改兩個(gè)參數(shù):--cluster-cidr控制Pod分配的總網(wǎng)段,--service-cluster-ip-range控制Service網(wǎng)段的范圍。這里有個(gè)非常容易踩的坑:controller-manager和apiserver的Service CIDR參數(shù)必須完全一致,否則會(huì)導(dǎo)致kube-controller-manager在分配Service IP時(shí)產(chǎn)生診斷和分配行為的不一致。改完這兩個(gè)文件之后,kubelet會(huì)檢測到靜態(tài)Pod清單文件發(fā)生變化,自動(dòng)重啟對(duì)應(yīng)組件。這一步是kubeadm的標(biāo)準(zhǔn)機(jī)制,不需要手動(dòng)操作,但要記住一件事:apiserver和controller-manager是分開的靜態(tài)Pod,它們的重啟是逐個(gè)進(jìn)行的。在apiserver重啟期間,所有kubectl操作會(huì)短暫不可用,這是正?,F(xiàn)象。需要特別注意的是kube-apiserver和kube-controller-manager的啟動(dòng)順序。理論上先改哪一個(gè)都行,但實(shí)際操作中我的經(jīng)驗(yàn)是先改controller-manager再改apiserver。因?yàn)閏ontroller-manager重啟失敗的影響小于apiserver重啟失敗的影響,先處理風(fēng)險(xiǎn)小的組件更合理。等apiserver重啟完成后,立刻檢查kubectl get --raw/healthz來確認(rèn)API Server恢復(fù)健康。組件重啟完成后,去etcd里確認(rèn)一下是否已經(jīng)有新的Service IP開始被分配??梢杂胑tcdctl get /registry/services/specs --prefix的方法去查看,也可以直接創(chuàng)建兩個(gè)測試Service看它們分配到的ClusterIP是不是新網(wǎng)段里的地址。如果新創(chuàng)建的Service拿到的還是舊網(wǎng)段的IP,說明apiserver或controller-manager的修改沒有生效,需要回到配置文件里排查。3.3 處理存量Service的ClusterIP遷移策略控制面組件改完并且確認(rèn)新Service能拿到新網(wǎng)段IP之后,接下來面對(duì)的就是一堆已經(jīng)存在且IP還是舊網(wǎng)段的存量Service。處理思路不復(fù)雜:把Service刪掉,再用新的ClusterIP重新創(chuàng)建。但是這里有個(gè)細(xì)節(jié),直接刪掉Service對(duì)外部服務(wù)的影響是短暫的,因?yàn)镾ervice的Endpoints數(shù)據(jù)可能在刪除的瞬間被清掉,而后端Pod卻還正常活著。對(duì)于集群內(nèi)部應(yīng)用,馬上重建一個(gè)新的同名Service,流量會(huì)無縫切換,因?yàn)樗袘?yīng)用是通過Service名加端口訪問的,不再依賴舊的ClusterIP。但我強(qiáng)烈不建議一條條命令去手動(dòng)操作,即使再小的集群,也不值得把時(shí)間花在不停輸入kubectl命令上。我推薦寫一個(gè)簡單的腳本,把上面第1步記錄的所有Service信息讀進(jìn)來,逐個(gè)處理。腳本的核心邏輯:遍歷全部名字空間下所有非默認(rèn)類型的Service,針對(duì)ClusterIP類型的進(jìn)行重建。先執(zhí)行刪除,再把原Service配置導(dǎo)出成YAML后,把spec.clusterIP字段置空,交給apiserver自動(dòng)分配新網(wǎng)段里的IP。注意保留原來所有的labels、selector、ports和annotations。有個(gè)特殊的Service必須提前想好方案:CoreDNS的Service。等所有存量Service都重建完之后,再單獨(dú)處理CoreDNS。原因是CoreDNS一旦被重建,集群內(nèi)所有DNS解析都會(huì)短暫中斷,而不只是某一個(gè)應(yīng)用的流量中斷,所以要放在最后一步來做,把影響面控制在最短時(shí)間內(nèi)。還有一類特殊情況:給定了固定clusterIP的Service。有些應(yīng)用在設(shè)計(jì)時(shí)會(huì)給Service的clusterIP指定一個(gè)固定值,這類Service依賴舊網(wǎng)段的權(quán)限設(shè)定,是必須修改配置里指定的clusterIP的。先把YAML配置里的spec.clusterIP改成新網(wǎng)段里的一個(gè)可用地址,再執(zhí)行重建。否則apiserver會(huì)直接報(bào)錯(cuò),不會(huì)讓你創(chuàng)建成功。3.4 節(jié)點(diǎn)層面Pod CIDR的遷移:節(jié)點(diǎn)驅(qū)逐與重新分配存量Service的問題處理完之后,接著處理最折騰的部分:節(jié)點(diǎn)Pod網(wǎng)段的遷移。每個(gè)節(jié)點(diǎn)只能處理它自己被分配的Pod子網(wǎng),而每個(gè)節(jié)點(diǎn)的子網(wǎng)一旦分配了就不會(huì)自動(dòng)變。kube-controller-manager的節(jié)點(diǎn)IPAM控制器只會(huì)在節(jié)點(diǎn)剛加入集群、spec.podCIDR字段還沒有值的時(shí)候去分配子網(wǎng),如果已經(jīng)分配了,它不會(huì)自動(dòng)重新分。想要讓節(jié)點(diǎn)拿到新網(wǎng)段的子網(wǎng),思路是:把節(jié)點(diǎn)踢出集群,再讓它重新加入。在kubeadm集群里,這個(gè)過程就是kubectl drain加上重新初始化,但實(shí)際的流程會(huì)更加精細(xì)。我的操作順序是這樣的:標(biāo)記節(jié)點(diǎn)為不可調(diào)度:kubectl cordon node-name驅(qū)逐節(jié)點(diǎn)上的Pod:kubectl drain node-name --ignore-daemonsets --delete-emptydir-data在節(jié)點(diǎn)上重置kubeadm:kubeadm reset清除或修改節(jié)點(diǎn)上網(wǎng)絡(luò)插件的狀態(tài)信息(具體取決于網(wǎng)絡(luò)插件)重新執(zhí)行kubeadm join,把節(jié)點(diǎn)加回集群取消節(jié)點(diǎn)不可調(diào)度標(biāo)記:kubectl uncordon node-name等待該節(jié)點(diǎn)上的Pod全部重建完成驗(yàn)證該節(jié)點(diǎn)的spec.podCIDR已經(jīng)是新網(wǎng)段注意驅(qū)逐時(shí)--ignore-daemonsets是必須的,因?yàn)镈aemonSet的Pod不應(yīng)該也不行被驅(qū)逐,比如網(wǎng)絡(luò)插件的DaemonSet。--delete-emptydir-data也是必須的,否則使用emptyDir的應(yīng)用Pod會(huì)因?yàn)閿?shù)據(jù)需要被刪除而一直處于驅(qū)逐失敗狀態(tài)。這里有一個(gè)沒人會(huì)提前告訴你的大坑:節(jié)點(diǎn)的驅(qū)逐順序要考慮網(wǎng)絡(luò)插件本身。Calico或Flannel這類網(wǎng)絡(luò)插件是以DaemonSet形式跑在每個(gè)節(jié)點(diǎn)上的,它們的DaemonSet Pod天然不可被驅(qū)逐,但這不代表網(wǎng)絡(luò)插件沒有狀態(tài)需要清理。拿Calico舉例,如果節(jié)點(diǎn)上的calico-node和calico-kube-controllers正常工作,你在節(jié)點(diǎn)上執(zhí)行了kubeadm reset,節(jié)點(diǎn)會(huì)脫離集群,但是Calico的IP池里可能還殘留著這個(gè)節(jié)點(diǎn)之前分配過的Pod子網(wǎng)狀態(tài)。如果不清理,節(jié)點(diǎn)重新加入時(shí),IPAM控制器會(huì)嘗試給同一個(gè)節(jié)點(diǎn)分配新的子網(wǎng),這時(shí)Calico的數(shù)據(jù)存儲(chǔ)里可能存在沖突,節(jié)點(diǎn)上的新Pod會(huì)一直拿不到IP,一直處于ContainerCreating。所以我推薦的處理方式:在節(jié)點(diǎn)被重置之前,要把Calico對(duì)該節(jié)點(diǎn)的IP池分配信息清掉。Calico通過CRD資源做IP池管理時(shí),通常是直接刪除Node資源中對(duì)應(yīng)的BGP Peer和IP池綁定記錄。一般通過calicoctl node status去查看和清理,或者在節(jié)點(diǎn)重新加入后手動(dòng)設(shè)置跨越現(xiàn)有池和新的池之間的路由。這一部分非常依賴你用的網(wǎng)絡(luò)插件,沒法給出通用命令。但通用思路是:保證網(wǎng)絡(luò)插件認(rèn)為這個(gè)節(jié)點(diǎn)是一個(gè)全新的、沒有歷史包袱的節(jié)點(diǎn)。如果集群規(guī)模不大,還有一種不走kubeadm reset的做法:手動(dòng)改Node的spec.podCIDR字段,然后讓kubelet重新初始化網(wǎng)絡(luò)。這個(gè)方法理論上省事,但實(shí)際操作中踩坑無數(shù),原因是kubelet初始化時(shí)的很多網(wǎng)絡(luò)判斷邏輯是基于節(jié)點(diǎn)已有的子網(wǎng)配置來的,你強(qiáng)行改了字段但不清理舊網(wǎng)絡(luò)接口和路由表,大概率起不來。除非你非常了解你的網(wǎng)絡(luò)插件和kubelet的網(wǎng)絡(luò)初始化邏輯,否則我強(qiáng)烈不推薦手動(dòng)改字段,老老實(shí)實(shí)走驅(qū)逐、重置、重新加入的流程更安全。重新加入節(jié)點(diǎn)之后,立刻用kubectl get node node-name -o jsonpath{.spec.podCIDR}去檢查新子網(wǎng),確認(rèn)是新網(wǎng)段。然后檢查節(jié)點(diǎn)上的Pod是不是都從新子網(wǎng)里拿到的IP,可以用kubectl get pods -A -o wide | grep node-name確認(rèn)。3.5 網(wǎng)絡(luò)插件的同步調(diào)整網(wǎng)絡(luò)插件層的調(diào)整是整個(gè)操作里最容易被忽視、后果卻最嚴(yán)重的部分。先說Flannel的情況。Flannel的配置是存在ConfigMap里的,而且實(shí)際生效的配置在etcd里。如果你用的是kubeadm自帶的Flannel方案,網(wǎng)絡(luò)配置在kube-flannel-cfg這個(gè)ConfigMap里,但真正驅(qū)動(dòng)flanneld的網(wǎng)絡(luò)配置是存在etcd里的一份JSON配置。最穩(wěn)妥的操作是:先把ConfigMap里的Network字段改成新網(wǎng)段,再刪除Flannel的DaemonSet Pod,讓所有節(jié)點(diǎn)的flanneld用新配置重啟一遍。但這還不夠,Flannel會(huì)在每個(gè)節(jié)點(diǎn)上創(chuàng)建cni0網(wǎng)橋和flannel.1隧道接口,這些老接口如果不清理,新配置起來時(shí)可能會(huì)判斷“接口已存在”而跳過重新配置,結(jié)果就是新Pod拿到新網(wǎng)段的IP,但流量完全不通。Calico的情況稍微復(fù)雜一點(diǎn)。Calico用IPPool CRD定義IP池,如果Pod CIDR改了,需要?jiǎng)?chuàng)建對(duì)應(yīng)新網(wǎng)段的IPPool,并且要處理IPAM的地址分配序列。在節(jié)點(diǎn)重新加入集群之前,需要先配置好新網(wǎng)段的IPPool,否則calico-ipam給節(jié)點(diǎn)上的Pod分配IP時(shí)會(huì)發(fā)現(xiàn)沒有對(duì)應(yīng)的池可用。Cilium也比較類似,它不一定用CRD管理網(wǎng)絡(luò)范圍,有些場景直接讀kube-controller-manager的--cluster-cidr來綁定規(guī)則。這種情況下,只要控制面的配置改對(duì)了,kube-proxy也改對(duì)了,網(wǎng)絡(luò)插件會(huì)自動(dòng)基于新CIDR工作。但如果你在Cilium里顯式配置過cluster-pool-ipv4-cidr,就必須同步修改。這里給一個(gè)通用的判斷思路:所有網(wǎng)絡(luò)插件本質(zhì)上都在回答“集群的Pod網(wǎng)段范圍是多少”和“某個(gè)節(jié)點(diǎn)負(fù)責(zé)哪個(gè)子網(wǎng)”這兩個(gè)問題。你的調(diào)優(yōu)目標(biāo)就是讓網(wǎng)絡(luò)插件對(duì)這兩個(gè)問題的回答,和Kubernetes控制面的回答保持一致。不一致的表現(xiàn)通常很簡單直接:Pod一直處于ContainerCreating,報(bào)錯(cuò)信息指向網(wǎng)絡(luò)配置沖突。3.6 kube-proxy與各節(jié)點(diǎn)參數(shù)的同步處理kube-proxy的運(yùn)行模式通常不影響修改后的行為,它的配置是動(dòng)態(tài)監(jiān)聽Service和Endpoint,基于apiserver的數(shù)據(jù)生成轉(zhuǎn)發(fā)規(guī)則。理論上,只要控制面的Service CIDR改了,kube-proxy會(huì)自動(dòng)適配新規(guī)則。但是這里有潛在問題:kube-proxy在啟動(dòng)時(shí)通過--cluster-cidr參數(shù)判斷是否需要開啟--masquerade-all等特性時(shí)用的網(wǎng)段還是舊值。所以我在操作中的做法是:改完控制面之后,順手把每個(gè)節(jié)點(diǎn)的kube-proxy配置文件里的CIDR字段同步改掉。kube-proxy的配置默認(rèn)在kube-system名字空間下的kube-proxy這個(gè)ConfigMap里,里面有個(gè)clusterCIDR字段,把它改成新的Pod CIDR即可。改了ConfigMap后,重啟所有節(jié)點(diǎn)的kube-proxy Pod,讓它們重新加載配置。這一步不做的后果是:節(jié)點(diǎn)上kube-proxy還是用舊網(wǎng)段作為判斷流量是否需要做NAT的基準(zhǔn),新網(wǎng)段的Pod流量可能會(huì)出現(xiàn)源IP被錯(cuò)誤處理的狀況,表現(xiàn)為跨節(jié)點(diǎn)訪問Service正常,但Pod訪問外部網(wǎng)絡(luò)時(shí)源IP不對(duì),導(dǎo)致很多第三方服務(wù)的回調(diào)、日志、狀態(tài)判斷全部出錯(cuò)。3.7 集群內(nèi)應(yīng)用服務(wù)的最終驗(yàn)證組件和節(jié)點(diǎn)都處理完之后,不代表就完事了。驗(yàn)證環(huán)節(jié)是整個(gè)流程里最后一道保險(xiǎn)。我的驗(yàn)證清單大概是這樣:先驗(yàn)證基礎(chǔ)網(wǎng)絡(luò):在兩個(gè)不同的節(jié)點(diǎn)上分別創(chuàng)建兩個(gè)測試Pod,互相ping對(duì)方的Pod IP,確認(rèn)跨節(jié)點(diǎn)Pod通信正常。再驗(yàn)證Service訪問:部署一個(gè)簡單的測試應(yīng)用和Service,在集群內(nèi)使用kubectl run創(chuàng)建一個(gè)臨時(shí)的curl Pod,curl測試Service的ClusterIP加端口,確認(rèn)Service轉(zhuǎn)發(fā)正常,CoreDNS域名解析正常。接著驗(yàn)證外部訪問:如果集群里有Ingress或者LoadBalancer類型的Service,必須逐個(gè)驗(yàn)證。NodePort類型的Service也要測試,因?yàn)镹odePort的端口范圍仍然需要和Service的ClusterIP通過kube-proxy規(guī)則配合,這里出問題影響面比較大。然后要驗(yàn)證有狀態(tài)應(yīng)用:如果你的集群里有StatefulSet,它有穩(wěn)定的網(wǎng)絡(luò)標(biāo)識(shí)和存儲(chǔ)卷,重建后要確認(rèn)PVC綁定正常、數(shù)據(jù)完整性沒有受到損害。這一步容易出現(xiàn)各種存儲(chǔ)層的問題。最后驗(yàn)證監(jiān)控和日志,這個(gè)很多人會(huì)忘記。監(jiān)控Agent(比如node-exporter的DaemonSet)訪問apiserver的方式、日志采集Agent的端點(diǎn)配置,這些不會(huì)因?yàn)镃IDR變化自動(dòng)更新,如果它們的配置里寫死了舊IP,會(huì)一直報(bào)錯(cuò)。我見過某次操作之后監(jiān)控?cái)?shù)據(jù)完全中斷的情況,原因就是Prometheus的配置文件里寫死了一個(gè)舊網(wǎng)段的Service ClusterIP。4. 實(shí)際操作過程中的免坑指南4.1 執(zhí)行流程的時(shí)間表與回滾方案整個(gè)過程的時(shí)間節(jié)奏,按我做過一次的規(guī)模(30節(jié)點(diǎn)、Pod上千、Service幾百)來算:控制面修改與驗(yàn)證約40分鐘,存量Service重建約30分鐘,節(jié)點(diǎn)逐個(gè)遷移約2.5小時(shí)(每個(gè)節(jié)點(diǎn)約5到8分鐘),網(wǎng)絡(luò)插件與kube-proxy調(diào)整約30分鐘,最終驗(yàn)證約30分鐘??傆?jì)4小時(shí)左右,這已經(jīng)是比較理想的情況。如果中間出現(xiàn)意外,比如節(jié)點(diǎn)驅(qū)逐卡住、網(wǎng)絡(luò)插件狀態(tài)清理不干凈,時(shí)間會(huì)翻倍。所以維護(hù)窗口至少準(zhǔn)備6個(gè)小時(shí),并且要有一個(gè)明確的回滾機(jī)制?;貪L的前提就是etcd快照。什么情況下要回滾?我自己的判斷標(biāo)準(zhǔn)是:apiserver或controller-manager重啟后一直不健康,且15分鐘內(nèi)無法解決;或者前幾個(gè)節(jié)點(diǎn)驅(qū)逐后新子網(wǎng)分配異常,Pod創(chuàng)建不起來,說明網(wǎng)絡(luò)插件控制面和節(jié)點(diǎn)對(duì)齊的過程存在根本性缺陷;或者發(fā)生了數(shù)據(jù)面網(wǎng)絡(luò)大面積中斷,導(dǎo)致核心業(yè)務(wù)長時(shí)間不可用。回滾操作本身不復(fù)雜:停掉kubelet,恢復(fù)etcd快照,再把控制面組件配置恢復(fù)原樣,所有節(jié)點(diǎn)上的kubelet網(wǎng)絡(luò)接口全部清理后重啟kubelet。但回滾也不便宜,它基本等于一次集群重啟,所以這個(gè)決策要果斷,不要猶豫。改了CIDR最怕的就是“再試著調(diào)調(diào)”,這和在高速公路上邊開車邊修方向盤沒區(qū)別。4.2 我踩過的幾個(gè)經(jīng)典坑第一個(gè)坑是Drain節(jié)點(diǎn)時(shí),有Pod卡在Terminating。原因通常是這個(gè)Pod的終止依賴某個(gè)已刪除的Service或者PVC,驅(qū)逐過程一直握手失敗。解決辦法是檢查這個(gè)Pod的事件,找到依賴關(guān)系,把依賴問題處理完后重新驅(qū)逐。不要一開始就--force,強(qiáng)制刪除Pod可能讓業(yè)務(wù)徹底中斷。第二個(gè)坑是節(jié)點(diǎn)重新加入后,kubelet反復(fù)重啟。原因通常是kubeadm reset之后,節(jié)點(diǎn)上留有舊的CA證書或kubelet配置,導(dǎo)致新的kubeadm join生成的證書和apiserver不匹配。解決辦法是在重置后清理干凈/etc/kubernetes/目錄、/var/lib/kubelet/目錄,必要時(shí)也把/etc/cni/net.d/目錄下的網(wǎng)絡(luò)插件配置一起清掉再重新加入。第三個(gè)坑是網(wǎng)絡(luò)插件的IPv4Pool殘留。我在處理一個(gè)Calico集群時(shí)就遇到這個(gè),新節(jié)點(diǎn)重新加入集群后,節(jié)點(diǎn)上的Pod報(bào)Calico IPAM: no IPs available的錯(cuò)誤。查下來是Calico的block還在被舊節(jié)點(diǎn)信息引用,舊節(jié)點(diǎn)信息沒有清理干凈。解決方法是刪除Calico的IPAM數(shù)據(jù)中對(duì)該節(jié)點(diǎn)的引用,或者用calicoctl把對(duì)應(yīng)的IPPool和block一并刪除再重新放。第四個(gè)坑比較隱蔽:部分應(yīng)用Pod里寫死了舊網(wǎng)段的IP。比如某個(gè)中間件的配置里指定了舊網(wǎng)段的數(shù)據(jù)庫Pod IP,節(jié)點(diǎn)驅(qū)逐重建后,數(shù)據(jù)庫的Pod拿到了新IP,但應(yīng)用的配置還指向舊IP,應(yīng)用自然連不上數(shù)據(jù)庫。這個(gè)只能在遷移前就做排查,把所有應(yīng)用配置里的硬編碼IP找出來,在維護(hù)窗口開始前就發(fā)公告讓相關(guān)應(yīng)用Owner們處理好自動(dòng)重連邏輯。4.3 什么時(shí)候應(yīng)該放棄在線修改最后一定要說清楚一個(gè)現(xiàn)實(shí):如果集群里有下面這幾個(gè)條件,不太建議用在線修改的方案。集群里有大量依賴固定IP訪問的應(yīng)用,并且這些應(yīng)用沒有配置中心化管理的配置;集群里存在比較多的StatefulSet且每個(gè)Pod的PVC沒有做異地備份;網(wǎng)絡(luò)插件版本的定制化程度很高,修改和調(diào)試成本難以預(yù)估;或者集群規(guī)模巨大節(jié)點(diǎn)的數(shù)量超過50個(gè)。在這些情況下,我個(gè)人的傾向是明確告訴團(tuán)隊(duì):重建集群,做應(yīng)用遷移。時(shí)間成本不一定更高,穩(wěn)定性卻高出很多。在線改CIDR真正合適的前提是:應(yīng)用無狀態(tài)化程度高、網(wǎng)絡(luò)配置全部走Service和DNS的抽象層、網(wǎng)絡(luò)插件是常見的標(biāo)準(zhǔn)組件、團(tuán)隊(duì)手里有完整的配置管理能力。這四個(gè)條件缺一個(gè),風(fēng)險(xiǎn)都會(huì)讓操作收益變得非常不值得。5. 操作后的長期影響與收尾工作操作完成且業(yè)務(wù)驗(yàn)證無異常之后,還有幾個(gè)長期項(xiàng)需要做。第一,把所有集群的CIDR規(guī)劃文檔同步更新,避免后續(xù)建設(shè)者不知道新網(wǎng)段規(guī)劃。第二,將所有組件的配置參數(shù)檢查一遍,確保沒有遺漏的舊網(wǎng)段引用。第三,把這次操作的復(fù)盤記錄寫好,把所有踩過的坑和對(duì)應(yīng)解法整理成文檔,方便未來有人遇到同樣的問題時(shí)有據(jù)可查。此外,把etcd的新快照再備份一份,確保當(dāng)前狀態(tài)有一個(gè)安全備份點(diǎn)。這一步很多人做完操作之后會(huì)忽略,結(jié)果下次出問題時(shí)發(fā)現(xiàn)備份的還是改CIDR之前的狀態(tài),恢復(fù)反而一個(gè)大回退。最后再發(fā)一個(gè)有價(jià)值的經(jīng)驗(yàn):不管哪個(gè)組件出了問題,排查的第一命令永遠(yuǎn)是journalctl -u kubelet -f或者查看對(duì)應(yīng)靜態(tài)Pod的日志,而不是到處猜。網(wǎng)絡(luò)問題排查的第一命令永遠(yuǎn)是ip route、ip addr和iptables -t nat -L -n,把實(shí)際路由和規(guī)則先看一遍,再去看配置。大多數(shù)“配置沒問題”的網(wǎng)絡(luò)故障,本質(zhì)上都是實(shí)際生效的東西和配置里寫的東西不一致而已。改CIDR這件事,風(fēng)險(xiǎn)高但路徑清晰。做好每一步的確認(rèn),控制好節(jié)奏,列清楚回滾方案,應(yīng)對(duì)好細(xì)節(jié)問題,是可以在不重建集群的前提下完成的。但作為運(yùn)維,真正重要的不是“能不能改”,而是“值不值得改”,以及“如果真的改掛了,能不能在一小時(shí)以內(nèi)恢復(fù)”。把這兩個(gè)問題想清楚了,再動(dòng)手,你的勝算就大很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文字幕av乱伦| 熟妇熟女一区二三区| 后入 亚洲 美女 射| 日日躁天天躁狠狠躁| 亚洲日韩美女丝袜美腿人妻视频| 日本人妻伦在线中文字幕| 国产日韩欧美三级片| av在线一区二区三区| 久久久久久久久久久久久9999| 欧美性爱一区| 国产精品福利视频| 91日韩网站| 中文字幕日韩国产传媒欧美精品| ...日韩成人一区二区三区字幕| 亚洲男人的天堂va亚洲男人社| 色欲无码人妻日韩欧美精品| 国产97/欧美| 亚洲日韩av专区无码| 日本激情免费大片| 国产综合久| 99久久久久| 欧美色图亚洲色| 91精品伊人久久久大香线蕉91| 夜夜嗨一区二区三区三州加勒比| 天天综合精品| 老司机香蕉| 久久婷综合| 69视频入口| 日韩中文字幕精品一二三事国产精品| 69AV女优男人的天堂| 日韩性爱长视频免费| 欧美日韩理论一区| www.yw尤物| 精品久久久久久无码| 黄色一区三区| 天天碰操中国年青熟妇| 丁香五月成人| 激情久久久| 欧美色图91| 少妇极品熟妇人妻无码| 国产超碰人人操| 69久久久久久久久久久久久| 婷婷午夜成人色中色| 国产suv一区二区三区6| 日本布卡一区二三区| 国产九区| 黄色小说亚洲| 久久手机视直播| 狠狠色噜噜狠狠狠狠狠色综合久久 | www.色婷婷色综合| 午夜啪啪片| 日韩在线一区二区| 深夜视频| 91色色综合| 国产传媒日本欧美专区| 免费观看的av| 五月综合激情| 一区二区三区蜜桃成人撸久久东京热| 国产欧美日韩在线不卡第一页| www成人啪啪18秘 免费| 久久精品国产亚洲粉嫩| 婷婷性网| www.男人的天堂| 欧美精品黑人猛交高潮| 97亚洲欧美日韩| 男人的天堂激情| 中日韩久久久免费看| 九九九九九精品十六| 精品妇操一区二区三区| 中文有码9| 日本三级精品| 浓厚中出中文字幕在线| 国产亚州精品美女久久久免费| 亚洲大胆人体av| 久久久久久久久女黄| 久久尹人大香焦视| 成人七区| 久久久久久人妻| 大香樵伊人网| 啊啊啊轻点在线观看| 蜜色网色哟哟| 日韩三级在线观看mp4| 日韩啪啪啪视频| 熟妇女伦乱视频| 天堂а√在线最新版在线| 人人爱操| 欧美色图小说综合| 欧美强奸乱能| 搡老女人老妇女老妇老熟女怎么读| 蜜桃精品一区二区三区久在线| 99自拍视频| 东北操逼| 国产强奸乱伦xd| www.狠狠干.coom| 亚洲天堂少妇| 婷婷五月天AV| 无色无码| 国产成人天堂| 老熟女91视频| 激情五月天色色网| 亚洲情色在线| 91操人| 91亚·色| 2017天天操| 四虎午夜影院| 久久亚洲熟妇在线视频| 欧美精品69性爱| 日韩 欧美 视频 在线 一区| 91亚洲狠狠色| 在线观看免费视频国产| 青青草玖玖爱| 国产精品嫩草影院免费| 口爆欧美91| 国产精品探花色| 熟妇人妻精品一区二区视频色欲| 深夜激情| 骚货操死你| 乱伦av国产| 国产吹潮女在线观看| 97超碰色屌| 性色AV网站| 亚洲精品欧美专业| 国产偷拍自拍在线视频| 一区二区三区一亚洲中文字幕、综合区灬| 哈哈操电影| 久久性爱视频免费看| 嗯嗯啊啊亚欧精品| 另类小说五月天| 国产精品久久久久久久AV大片| 91电影色诱| 精品制服美女中文一区二区三区| 日本一久是| 久久无码成人| 超碰在线香蕉| 97香焦色区| 久久女婷| 91 丝袜在线| 加勒比东京热五月天天堂网| 狠狠爱夜夜干| 中文字幕第二页| 国产熟女自拍| 啊嗯嗯啊好大好爽| 久久一二三四五六七八九区区| 国产精品4p在线观看| 久久久久久久久久久六六| 日本精品加勒比海一区| 97爱爱| 97国产色综合| 美女刺激久久国产欧美| 大香蕉十区| 国产成人AV麻豆| 亚洲成人妻日韩在线| 亚洲系列欧美| 日日骚一区二区三区| AV色女综合| 91社区伊人| 成人a大片在线观看| 久久精品国产亚洲AV无码做| 国产原创精品| av东京热男人的天堂| 日韩精品电影| 亚洲熟伦熟妇AV无码春色| 亚洲国产精品久久久久婷婷青年| 欧美v日韩v亚洲v最新在线| 亚洲性感丝袜诱惑在线观看| 亚洲欧洲无码bt精品合集| 蜜臀人妻少妇久久在线观看| 黄色高清无码无码破解免费暗网| 色欲蜜臀AV| 浪人综合网| 自拍二页| www.男人天堂| 十八禁黄色成人网站观看| 亚洲资源一区| 国产AV激情无码久久无码| av 模特一区了| 欧美亚洲今日在线| 国产自偷自拍一区| 变态乱伦伪娘灌肠一区二区| 大香蕉欧美| 亚洲色图欧美视频| 国内97干免费看| 人人操人人操人人人操| 竹菊影视国产一区二区| 丝袜天堂网| 欧美A√综合网| 天天干天天拍| 69超碰综合| 久久直播国产| 国产精品久久久久久 百度| 国产高清1234区| 麻豆亚洲Av成人无码一区精品| 精品伊人久久久大香线蕉小说| 欧美一区二区三区另类精品| 九九热超碰| 乱精品一区字幕二区| 婷婷丁香成人| 精品久久久久久亚洲| 人人透人人操| 男人把坤坤插入女人的下体| 色九久| 免费a v| 伊人欧美大香蕉视频| 欧美少妇高潮| 在线视频免费观看午夜| 多乙久久久久久| 欧插网站| 亚洲在钱| 成人亚欧免费视频| 亚州久久9| 少妇人妻激情四射| 91无码西班牙视频在线| 久久婷五月天| 一本久久精品中文字| 久久有码视频| 国产女性无套 免费观看| 操操啪| 伊人丝袜美腿高跟在线观看高清 | 欧美人人曰人人操人人射射| 香蕉一区二区三区在线视频| 噜噜噜噜久久久精品免费| 97久久久久| 岛国毛片在线观看免费| 91久久伊人婷婷青青草| 成人a级高清视频在线观看| www鬼畜国产男人的天堂| 情色五月天就去干| 99精彩视频| 乱子伦一区二区三区国产精品| 人人摸人人入| 日韩97在线| 国产操操日韩三级黄| 91人人看| 国产一级操B视频| 高清肉丝中文无码| 男女激情黄色网址| 国产综合久| 志村玲子视频一区二区| 神马久久久久久久久久久久| 日韩欧美大力操| 六月婷婷一区二区三区| 亚洲成人网站在线观看| 91 欧美| 青青操轻轻| 中文字幕午夜精品久久久| 岛园激情| 一级做a爰片性色毛片久久| 99国产天美| 超碰人妻天天干| 精品射1999| 一区二区三区免费岛国片| 欧美,亚洲,日韩,v,天堂,手机在线观看| 在线观看国产黄色| 欧美第二页| 欧美大干日韩| 自拍丝袜美腿人妻| av中文在线| 欧美一级美片在线观看免费| 日韩精品9999| 任你艹| 天美传媒一二三区永久网站| 免费看污网址| 思思久热在线精品66| 中日无幕一二三四区| 精品国产人成在线| 女人综合网| 中文字幕人乱码中文字的预防方法 | 91无码人妻精品一区二区三区蜜桃| 91GD.COM| 国产日韩区| 精品国产99999| caorenqi shipin| 国产精品网址| 国产精品福利视频| 欧美日韩国产精品久久色婷婷| 超碰97爽| 人妻啊啊人妻啊| 亚洲最新av无码成人精品区| 日韩兔费看黄片| 玖玖大干人妻| 综合网久久| 国产精品久久99日日| 欧美少妇人妻| 天天综合欧美黑人| 夜夜国产一区| 久久欧洲| 免费看美国人人爽,人人操| 免费家庭乱伦视频| 国产99999| 国语精品av| 熟妇人妻精品一区二区视频色欲| 天堂8在线新版官网| 色色网91| 久久久久久久久久va| 丰满人妻一区二区三区蜜桃视频| 国产又粗又长的视频| 四季AV一区二区凹凸精品小说| 日韩人妻精品久久久久| 日韩AV一区二区三区四四| 乱伦3P视频| 国产毛片在线| 九月丁香婷婷色| 91网站18禁| 啊啊在线| 久久东京热久久| 青青草原综合久久大伊人精品| 国产尹人在线视频免费| 久久草在线综合视频| 欧美自拍偷拍免费观看| 免费在线观看国内色片网站网址| 26uuu性物| 欧美熟妇成人一区二区| 歐美性天天| www黄片免费看com| 欧美久久伊人| 日韩av影片在线观看| 少妇淫妇久久久久久久| 综合 亚洲 欧美| 欧美日韩精品青青| AV男人天堂网| 啊啊啊好湿久久| 99色婷婷中文字幕乱色| 欧美91久久久久| 蜜臀精品1区2区| 综合色久| 国产97色在线| 91在线欧色| 亚洲欧综合另类无码一区| 成人性爱视频在线看| J?P?NESEHD熟女熟妇伦| 日韩中文字幕国产| 亚洲国产成人福利在线观看| 国产女人成人精品视频| 激情五月婷| 色综合色色| 中文字幕在线播放2中文字幕在线观看2| 色色色色色色色色色色色色色色综合| 小草精彩毛片| 激情亚洲天堂| 国产中文福利| av影院十区| 蜜臀在线看片| 国产成人亚洲精品无| 欧美性色网| 人人九九精| 国产欧美成人精品| 亚洲丝袜少妇在线| 欧美激情视频在线一区| 亚洲人妻中文高清| 欧美九九爱| 亚州色图欧美| 日骚逼视频| 国产av激情无码久久天堂| 亚洲二区精品在线观看| 亚洲欧洲小说图片视频| 丝袜色综合| 在线日韩精品一区二区三区| 翔田千里AⅤHD无码| 五月天婷精品激情| 一区二区三区男女操逼黄色小电影| 欧美 牲| 亚洲毛片久久| 艹比视频国产精品| 夜夜嗨AV一区天天| 综合天天。| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 看黄片视频免费| 99亚洲精品| 97超碰久久色| 无码不卡亚洲成?人片| 国产精品自在自拍视频| 天天日天天爽| 伦在线97| 亚洲素人综合| 超碰78| 黄色视频特级毛片| 久久精彩视频9| 91成人亚洲色图| 18禁在线视频| 久超碰在| 亚洲成人激情小说视频| 亚洲无无码αⅴ每日更新| 黄色大片免费在线| 91爱综合| 99丝袜福利在线播放| 97网址97| 国产精品人人爽人人做可爱福利| 欧美专区在线| 日韩精品在线视频在线观看| 久久婷婷色综合一区二区三区| 日本欧美一区二区三区免费| 2026国产精品视频| 黄片qw| 国产精品一区二区三区,亚洲综合| 久操精品| 精品国产乱码久久久久久久久1| 少妇熟女视频一二三区| 国内亚洲精彩视频在线| 99re99视频在线免费观看| 尤物视频视频官网| 精品无吗久久| 无码一区免费在线不卡| 一道本东京热加勒比一区二区三区| 亚洲国产青青| 亚洲无码偷拍| 欧亚免费视频| 久久婷婷成人综合色怡春院| 日产欧美电影一区二区三区| 久视频在线观看| 亚洲天堂一区| 九九热免费在线国产视频伊人五月| 搡老女人老91二区| 97久久久久久久精| 丁香色狠狠色综合久久小说| 天天看综合网| 欧美性爱18观看| 欧美亚洲AN| 无码av永久免费专区网站| 久久精品中文| av凤凰久久久| 久久男人的天堂| 国产天天骚| 国产强奸乱伦xd| 国产情色第一第二页在线观看| 99久久久无码国产精品性啊聊 | 亚洲熟妇极品| 国内毛片欧美香蕉精品| 国产25页| 秋霞欧美性爰视频| 青青色在线观看| 性欧美天天| 国产 热久久久久国产精品| 超碰在线1234区| 精品亚洲黄色片 国产精品导航一区二区| 91热情品| 97色色网| 久久精品91| 91麻豆va国产精品| 成年人网站在线免费观看| 蜜桃视频一区二区三区| 国产久久久久久久久一区二区 | 性猛交| 人人澡人人弄| 欧日韩不卡视.频| 日本色色视频网站| 超碰在线成人电影| 精品人妻二区三区| 人妻少妇av在线观看| 搡老女人老熟女91| 熟妇高潮二区三区| 少妇500双飞99| 欧美婷婷五月天| 午夜精品久久一区二区| 男人天堂网手机版婷婷| 蜜桃久久久久久| wwwcaobibi| 国产精品又黄又猛又粗| 国产精品一二三| 亚洲精品一二三四区| 国产成人自拍视频视频| 超碰导航97| 亚洲无套久久嗯嗯| 国产乱色国产精品免费视| 国产十八禁视频| 91成人在线免费视频| 日本人妻最新在线中| 欧美特黄视频网站| 国产又黄又猛又粗又爽的网站| 中日韩熟女| 亚洲中字幕日本一区二区三区| 激情文学小说一区二区| 国产超碰在线一区| 高凊专区人人操| 免费综合亚洲中文| av在线一区二区三区| 三级日韩一区二区三区| 精品九九九九九| 5252色欧美在线男人的天堂| 欧美在线第五页| 成人一区二区三区四区| 久久一留热品黄| 美女诱惑爱爱| 欧美激情综合色综合啪啪五月| 日本Xx性爱| 天天操天天干一区二区| 中文字幕日韩人妻视频| 一个色导综合| 亚洲欧洲成人在线电影| 人人人摸人人| 大香蕉中文在线| 91精品导航| 日日嗷| 91青青在线视频| 91少妇通奸网站| 强上我不卡卡| 67194无码不卡| 77777亚洲蜜臀精品久久综合蜜臀| 五月丁香影院| 热久久这里只有精品| 九九精品热| 欧美日本国产日韩激情视频| 久久精品中文字幕无码l| 盗摄女人妻在线| 中国熟女老妇仑乱一区二区三区| sewuyueav| 欧美东京热青青草| 久久亚洲AV无码白度| 欧美色999| 玖玖爱在线视频免费观看| 96国产精品| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 深爱五月婷婷| 97综合在线观看| 欧美色图天堂网m| 人妻 制服 日韩 中文 在线| 中文字幕乱偷人妻久久艾草网| 黄色十八禁| A一级色女| 成人开心网在线视频| 精品人妻一区二区三区不卡断 | 欧美伊人久久综合网| 国产 日韩 欧美一区| 无码久久亚洲高清,| 日日噜噜夜夜狠狠视频无| 八戒午夜福利理论片| 日本视频一区二区三区| 欧美亚洲另类在线蜜桃| 天天爽天天爽| 久久不卡一区二区| 啊啊啊啊啊啊啊在线| 少妇色综合| 秋霞鲁丝午夜无码一区二区三| 男人天堂2012| 91精品无码人妻系列| 亚洲综合另类| 婷婷丁香一区二区三区| 久久东京热成人| 污色区网站| 青青免费在线视频一区| 色青青久久影视| 91女人的网站| 精品人妻一区二区三区蜜桃视频| 日产精品久久久一区二区| 又粗又长又大国产不卡| 日本一区二区三区四区免费观看| 黄色网址久久精品欧美喷水| 天天拍天天操| 亚州欧美一区| 熟女色综合久久| 人妻夜夜爽天天爽麻豆三区网站 | 亚洲熟妇自偷自拍另欧美| 超碰无码加勒比| 91成人久久| 91蜜桃传媒精品久久久一区二区| 美女诱惑一区| 成人福利视频网| 麻豆精品A片免费观看| 欧美色图99| 天天色黄色影院天天操| 五月婷婷丁香中文字幕| 伊人久久大香蕉线AV五月天| a片亚洲一本通视频| 少妇色综合| 精品高潮| 色色色热| 亚洲综合情色| 九九九精品成人免费视频小说| 天天操天天干一区二区 | 中文人妻av高清一区| 五月丁香综合啪啪| 91无摭挡| 亚洲无 码A片在线观看麻豆| 大香蕉五月天婷婷| 天天操天天日天天干| 翔田千里无码一区| 伊色综合天堂色97| 黄页网站成人免费| 黄色av片三级三级三级免费看| 欧美久热| 青青草一本道福利视频| 性色AV蜜色av色欲av| 大香蕉手机视频| 久日91在线| 成人av性爱电影在线观看| 小少妇| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 欧美色图天堂网m| 天天影视亚洲| 日本人体九九九九九九| 鸥美中出| 蜜桃视频精品一区二区| 91 丝袜在线观看| 亚洲av综合色区无码一| 日韩人妻丝袜美腿中文| 免费又黄又裸乳的视频| 男人把坤坤插入女人的下体| 国产宅男宅女在线观看| 日韩 欧美 国产 麻豆| 日韩精品碰碰| 91精品免费| 久久精品店| 熟妇无码视频三区| 久热大香蕉| 78精品在线| 欧美日韩m| 精品综合久久久久久五月天| 密桃99999| 热G综合热G中文| 97五月天| 翔田千里一区二区三区奶水| 美女AV一区二区| 内射夫妻三片| 伦理日韩国产久久| 日韩AV无码网站| 亚洲男人天堂2| 婷婷五月av| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 在线中文AV| 亚洲欧美日韩夜夜| 国产精品久久久久久久久久久久久久吹| 校园春色制服丝袜中文字亚洲| 老司机福利青青草| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 国产视频一区二区三区在线免费观看 | 人妻夜夜爽天天爽麻豆三区网站| 思思视频免费看网站| 中文字幕女同在线| 色99在线| 午夜亚洲WWW湿好大| 综合欧美日韩在线| 天天日天天爽| 欧美天天干| 激情四射婷婷六月天| 欧美日韩性爱无码| 国产亚洲色婷婷99精品91| 国产三级日产三级韩国三级| 92久久| 日韩精品9999| 强奸乱伦中文字幕AV| 久久综合97| 综合色拍| 岛国黄色大片网站| 人妻精品视频一区二区三区| 97热视频在线观看| 丁香九月婷婷| 欧美激情另类一区二区| 亚洲精品人伦一区二区| 亚欧高清| 国产精品午夜成人福利| 欧美一级久久久久久久大片动画| 亚洲欧美天| 亚洲av热热色| www.色婷婷| 日韩A优精品在线观看| 91麻豆天美国产欧美高潮| 人妻久久久久久久久久久久久久久| 啪啪视频亚洲第一| 亚洲情色欧美| 天天综合~91| 热热热热日日漂亮永久永久国产日| 久久影视二区三区行押| 亚洲情色一区三区| 超碰美女97| 操死我了啊啊啊| 精品国产一区二区三区久久久蜜臀 | 91网九色蝌蚪操熟女| 91青青在线视频| 躁躁日曰躁2020| 国产不卡精品91| 日本综合色图| 四虎影视永久在线免费| 日韩一级久久毛片| 欧美日韩亚洲少妇寂寞影院正在播放 | 亚欧毛片基地国产毛片基地| 一卡二卡在线播放| 久久成年精品| 青青草日韩无码| 亚洲国产综合图区中文字幕| 亚洲天堂另类| 加勒比海成人视频网| 国产三级在线现体验区| 高清国产av无码| 欧美αv.com| 高跟丝袜AV专区国产| 极品色社| 久操精品网| 亚洲图片欧洲图片aⅴ| 欧美激情性爱视频网站| 伊人操你| 国产AV久久久蜜爱影集| www.久久制服糖| 天天cao在线| 少妇色综合| 人人澡综合涩| 久久久蜜桃一区二区三区| 激情五月天社区| 国产剧情AV不卡在线观看| 日本东京热加勒比久久| 狠狠色噜噜狠狠狠狠狠色综合久久| 影音先锋少妇| A 在线网址| 青青伊人这里只有精品| 亚洲一本色道中文无码aV天美| 久草视频在线视频在线视频在线观看| 97人人操人人摸人人爱| 亚洲乱码国产乱码精网站| 永久免费发布性爱网| 18禁在线视频| 久久美女国产| 中文精品一区二去| 国产av波波国产精品| 日本超碰在线国产一区| 成人三级片无码| 操狠狠| 91人妻视频| 久久这里都是精品| Julia Annxxxxx| 69人妻精品一区二区绯色| 超碰人人妻| www.91理论| 精品视频一区二区| 久久人妻少妇| 日本欧美不卡| 色操逼网| 91久久精品蜜臀| 欧美日日夜夜| 亚洲欧美内射| 天天在线91| 自拍第一页| 午夜小电影在线插入淫高潮| 好色综合| 97超碰色色| 久久久涩| 天堂性色| 99久久久| 污污汅18禁网站在线永久免费观看| 日本孕妇孕交| 黄色工厂这里只有精品| 亚洲天堂久久| 国产精品日日摸夜夜添骚逼| 亚洲 欧美 另类 综合 偷拍| 大香蕉手机在线| 18禁免费视频| 国产精品九9| 青青草视频久久久久| 久操频道免费在线呗看| 午夜男人av| 大乔未久88一区| 四虎AV在线播放| 中文字幕日韩精品久久| 亚洲国产一区二区入口| 色激情五月天| 亚洲凸凹超碰成人| 久久大香蕉97| 久久精品国产精品一区 | 999国产精品999| 夜夜操av亚洲一区二区| 色婷婷aV一区二区三区麻豆综合| 久久久久久裸体| 午夜男女爽爽大片免费观看| 婷婷五月天久久久| 亚洲欧美一区二区不卡视频播放 | 亚洲无码电影久久久| 亚洲一区中文字幕一区| 国产熟妇一区二区| 久久天堂网| 超碰在线人人射| 91人妻PORNY九色大屁股| 久久久99999久网站| 在线色资源| 啪啪AV导航| 亚洲天天影视综合网| 探花视频免费观看国产专区| 国产亚洲在线观看| 国产精品69久久久久久久| 国产女同视频在线播放| 美女高潮视频91| 久久久新亚洲AV| 蜜臀av一区二区三区免费观看| 国产AB视频| 久操视频资源站公开| 99re6国产精品99re在线| 久久九九99| 91在线一起| 人人妻人人爱人人玩| 91丨九色丨43老版熟女| 欧美偷| 日韩精品亚洲专区在线影视| 亚洲日韩欧美一区二区| 国产精品ⅴ无码大片在线看.| 99欧美| 欧美激情 亚洲色图| 全免费a敌肛交毛片免费| 中文字幕神马久久| 人人操人人插人www| 青青草在线视频人人想人人上| 免费视频观看60秒| 国产女生在线| 最新AV在线| 九月丁香| 国产乱子伦久久精品综合一区二区三| 色播五月丁香| 天天爽入口| 欧美精品1区2区3区| 夜夜夜夜爽| 日本三级R| 青青草综合在线| 婷婷五月天伊人| 热热色国产一二区AV| 久草视频分类在线| 亚洲黄色AV电影| 久久久久久精品免费看A级| 91视频综合在线| 日本中文字幕在线电影| 中文字幕二区| 99九九精品| 天天噜| 香蕉一区二区三区在线视频| 国产成年精品高清在线观看91| 噜噜噜久久亚洲精品色情| 色综合av男人天堂| 18+91网站| 久热超碰| 啊啊啊啊啊啊啊在线| www.av在线观看| 99这里都是精品| 久热免费视频| AAAA欧美日韩| 99热日| caorenqi shipin| 啪啪性爱免费视频| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 超碰到97情色| 99热免费| 国产丝袜欧美在线视频| 一本大道青青| 亚洲棕合电彰| 91精品无码久久久久久久| 国产日韩欧美| 日韩人妻资源网| 99精品欧美一区二区三区桃色| 久久精品无码不卡| Av色五月| 8050无码八戒| 午夜国产综合视频在线观看| 久久久久久久久久久久黄色 | 蜜桃久久一区二区三区| 国产又黄又爽| 一区二区三区在线日韩影院观看| 亚洲情色第一页| a天堂视频| 老女人综合网| 麻豆区久久久久亚| 欧美熟妇精品黑人巨大一二三区| 一级毛片电影免费看| 中文字幕88av在线| 亚洲色综合| 蜜乳成人AV| 国产精品播放| 97国产精品久久久久| www.久久| 久久久久九九九| 日韩av性爱在线播放| 欧亚成人| 大香蕉日亚洲日本亚大| 啊啊啊啊好爽好舒服一区二区易域| 男人天堂2019亚洲| 91一区二区三区蜜桃| 4tube欧美女厕所| 亚洲日韩东京热一区| 超碰精品在线| 国产99精品一区二区三区免费| 99999国产精品| 超碰久久.com| 人妻天天爽| 男人天堂2012| 国产精品自拍欧美在线| 午夜操逼不卡| 蜜乳AV免费观看| 精品视频久久| 素颜老阿姨乱情色| 99re9这里只有精品| 国产农村妇女一区二区| 丁香五月性爱| 欧美综合制服在线| 激情接吻视频久久久久久| 97Ai亚洲| 啊啊啊啊啊好大好舒服想要| 波多野结衣先锋影音| 精品女人999| 亚洲精品久久一区二区三区蜜桃臀| 99精品久久久久久久婷婷| 一级岛国大片| 超碰97日韩| 欧美精品999| 清纯唯美激情| 久久一留热品黄| 亚洲一本色道中文无码aV天美| 人妻精品一区一区三区蜜桃91| 小少妇| 亚洲精品一二区| 麻豆久久久久久久久丝袜 | 日韩成人高清一区二区| 韩国女主播青草福利视频| 成人亚欧免费视频| 91亚洲图片| 国产 亚洲 丝袜 制服| 中文字幕人乱码中文字的预防方法| blacked精品一区国产| 九九碰九九爱97超碰| 青青青国产手线观看视频2| AV天堂电影网| 人妻天堂综合网| 大香樵伊人网| 98色网| 精品久久久九九九孕妇| 久久夜嗨| 人人操AV| 欧美性生活男人的天堂| 超碰到97情色| 亚洲综合校园春色| 无码一区二区三区四区五区六区七区八区九区十区视频 | 国产精品爽爽va在线观看98| 国产精品免费美女视频| 人人考人人摸人人干| 日韩成人综合网| 91性高朝久久久久久久久| 91天天爽| www激情| 噜噜在线| 亚洲综合精品国产一区| 脫衣舞一区二区三区| 奇米狠999| 欧亚性爱视频免费看| 日韩性爱免费观看视频| 日本亚洲熟女视频| 国产高清成人免费视频| 不卡一区二区日本视频| 尤物黄色在线观看网站| 亚洲欧美激情在线视频| 大香蕉五月天| 99久久这里只有精品| 亚洲欧美高清无码| 狠狠色狠狠色狠狠五月| 欧美一级色| 天天享受天天看| 啊嗯嗯啊好大好爽| 尤物视频偷拍免费| 超碰97日韩| 亚洲āv网址在线观看| 操人人| 三级日本一区二区三区| 国产精品无码av嫩草| 伊人久久大香大香线蕉中文| 色婷婷狠狠| 天天日日日射| 99久在线精品99re8| 1000午夜黄色| a啊啊啊啊啊啊啊啊一区二区| 欧美综合中文| 久久久久久99AV无码免费网站| 午夜毛片亚洲精品片国产久久久| 无遮挡男女激烈动态图| 51久久夜色精品国产麻豆| 国产精品熟女一区二区三区| 免费精品无码一级毛片牛牛影视| 大香蕉淫人网| 久久色一区| 日韩无码三级影院| 欧美色图片色哟哟| 亚洲超碰97| 久久久97| 秋霞鲁丝午夜无码一区二区三| 无码91| 97视频900| 中文字幕精品探花视频| 天天色天天干天天射| 亚洲天堂另类美腿| 乱色视频中文字幕| 97在线播放| 国产高清精品一区二区三区毛片| 久久的网站啊啊啊啊啊| 99www.bibizy香蕉资源国产一区二区三区高清 | 亚洲伊人久久综合97| 岛国网址国产| 色色色综合网| 日韩一区二区熟女| 一区二区亚州激情久婷婷欧美| 熟妇女伦乱视频视频| 中文字幕美女91| 后X久久| 夜夜欧美 | 桃色五月天| 精品人妻视频一区二区在线播放| 亚洲?V无码专区在线电影| 1区2区3区在线视频| 亚洲情色综合| 日韩免费看在线黄色片| 神马午夜久久久| 亚洲自拍偷拍视频在线| 手机看av网站在线看| 91伊人影视综合| 欧美精品成人一区二区在线观看 | 久久久久久九九九| 亚洲欧洲日韩国产自在线| 玖玖爱免费观看视频| 国产精品不卡少妇白| 加勒比大香蕉视频在线| 老女人91| 超碰天天操你比| 玖玖爱在线视频免费观看| 91亚州日韩高清| 97欧美视频| 中文字幕大片三级狠狠干| 少妇久久久免费| 欧美性爱另类综合| 一区二区三区四区五区久久久久久| 国产传媒午夜理伦精品| 精品久久久不卡一区二区| 成人av影院在线观看| 嗯嗯啊啊好疼| 精品无码不卡视频| 伊人久大| 夜夜操二区| 一起草三级AV电影在线观看| 中文字幕一区二区三区人妻少妇在线| A片大香蕉在线| 久久久久久大| 无码 黑人一区二区三区| 麻豆激情综合| 成人国产精品三级A片| 久久久啊啊啊| 精品国产一区二区三区久久久蜜臀 | 欧美一二三区四五区| 翔田千里无码中出中文字幕| 歐美一級亂黃99在綫精品| 你懂的在线观看区国产| 96免费视频在线| 乱论91| 青青欧美| 色婷婷狠狠| 久草资源在线| 欧美性爱第一区| 亚码人妻| 午夜色婷婷| 中文字幕后石码三区四区| 97超碰热线| 色999五月色| 中文字幕在线免费观看| 色婷婷激情| 天天操夜夜操狠很操| 久久久久久免费电影| 91 手机在线播放 绯色| 久久久久亚洲三级电影| 99热99re6国产在线播放| 男人的天堂在线有码| yazhouzaixian| 亚洲色图激情小说| 久操视频资源站公开| 超碰97 线线 在现| 女生自91网站| 国产女人操逼视频| 国产精品麻豆免费视频| 亚洲少妇自拍中文字幕懂色| 夜夜嗨一区二区| 亚欧性爱无码| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 强奸乱伦资源| 国岛片视频| 任你爽视频| 亚洲精品丝袜-不卡成人免费……| 熟女日韩| 免费网色网站| 熟女中出视频| 青青青操| 91激情综合| 亭亭在线资源| 91久久久久久久久久久| 色综合久| 96精品在线| 日韩超碰精品综合| 人人澡综合涩| 毛片99-全集电影手机免费观看完整-B029AV | 97精品人妻一二三四| 一级婬片120分钟试看| 激情婷婷五月天| 2017,超碰| 岛国成人av在线播放网址| 嗯嗯,啊啊,国产精品| 久久久久久少妇| 日韩特级毛片免费观看全集| 最新国产亚洲精品精品国产亚洲综合| 熟女高潮合集-永久久久-成人AV| 3PAV乱伦视频| www.夜夜操| 噜噜噜亚洲精| 国产精品蜜乳AV| 亚洲性综合| 欧美一级黄片免费播放| 亚洲色电影在线| 丁香五月综合| 欧美少妇人妻| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 国产精品久久蜜乳av| 黑人娇小av在线播放| 91校园春色长篇| 天天干一区二区| 亚洲天堂日本| se吧提供91精品国产91久久久久久 | 日逼视频日本| 天天操人人操骚逼网站| 精品亚洲国产成人av网站| 美女丝袜激情小说| 天天日天天爽| 人妻人妻天天碰| 精品亚洲国产成人精品| 牛牛久久国产精品视频一二三| 夜夜嗨免费视频| 国产精品分类在线观看| 日日夜夜干| 亚洲精品久久久久毛片A片拉屎| 久久av网| www.狠狠操| 国产高清视频无码在线| 青青草白白色| 亚洲一区二区三区麻豆传媒| 超碰欧美97| 91色色综合| 丰满人妻一区二区三区四| 尤物黄色在线观看网站| 美日韩在线不卡人妻| 欧美视频一区二区在线| 91丝袜| 国产青青综合伊人| 蜜桃色院一区久久| 色av中文字| 婷婷五月色| 日韩A优精品在线观看| 秋霞 色色| 亚洲天天操| 四虎精品一区| 超碰97欧美日韩| 亚洲色情在线影视| 天天做天天爱天天高潮| 一区二区三区精品视频| 亚洲一卡2卡3卡4卡乱码网站 | 综合亚洲网| 亚洲激情久久久伊人综合| 免费看国产大AB| 超碰97爽| 人妻人人操| 在线国产一区二区av| 男人高清无码一区二区| 四虎国产精品永久入口| 伊人网高清| 亚洲精品久久久久毛片A片拉屎 | 欧美少妇性爱网站| 2020中文字幕在线观看| 欧美爱国产综合、| 热久久99999|