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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Kubernetes学习(六)—— Pod控制器

發布時間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes学习(六)—— Pod控制器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本章節主要介紹常用的Pod控制器。

1. Pod控制器介紹

在kubernetes中,按照pod的創建安方式可以將其分為兩類:

  • 自主式pod:kubernetes直接創建出來的pod,這種pod刪除后就沒有了,也不會重建
  • 控制器創建的pod:通過控制器創建的pod,這種pod刪除了之后還會自動重建

什么是Pod控制器

Pod控制器是管理pod的中間層,使用了pod控制器之后,我們只需要告訴pod控制器,想要多少個什么樣的pod就可以了,它就會創建出滿足條件的pod并確保每個pod處于用戶期望的狀態,如果pod在運行中出現故障,控制器會基于指定策略重啟動或者重建pod。

在kubernetes中,有很多類型的pod控制器,每種都有自己的適合的場景,常見的有下面這些:

  • ReplicationController:比較原始的pod控制器,已經被廢棄,由ReplicaSet替代
  • ReplicaSet:保證指定數量的pod運行,并支持pod數量變更,鏡像版本變更
  • Depployment:通過控制ReplicaSet來控制pod,并支持滾動升級、版本回退
  • Horizontal Pod AutoScaler:可以根據集群負載自動調整Pod的數量,熟悉愛你削峰填谷
  • DaemonSet:在集群中的指定Node上運行一個副本,一般用于守護進程類的任務
  • Job:它創建出來的pod只要完成任務就立即退出,用于執行一次性任務
  • Cronjob:他創建的pod會周期性的執行,用于執行周期任務

2. ReplicaSet

ReplicaSet的主要作用是保證一定數量的pod能夠正常運行,它會持續監聽這些pod的運行狀態,一旦pod發生故障,就會重啟或重建。同時它還支持對pod數量的擴縮容和版本鏡像的升級。

ReplicaSet的資源清單文件:

apiVersion: v1 kind: ReplicaSet # 類型 metadata: # name: # rs名稱namespace: # 所屬命名空間labels: # 標簽controller: rs spec: # 詳情描述replicas: 3 # 副本數量selector: # 選擇器,通過它指定該控制器管理那些podmatchLabels: # Labels匹配規則app: nginx-podmatchExpressions: # Expression匹配規則- {key: app, operator: In, values: [nginx-pod]}template: # 模本,當副本數量不足時,會根據下面的模板創建pod副本metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1ports:- containerPort: 80

在這里面,需要新了解的配置項即使spec下面幾個選項:

  • replicas:指定副本數量,其實就是當前rs創建出來的pod的數量,默認為1
  • selector:選擇器,它的作用就是建立pod控制器和pod之間的關聯關系,采用的Label Selector機制,在pod模板上定義label,在控制器上定義選擇器,就可以表明當期那控制器就能管理哪些pod了
  • template:模板,就是當前控制器創建pod所使用的模板,里面其實即使前一章學過的pod的定義

創建ReplicaSet

創建pc-replicaset.yaml文件,內容如下:

apiVersion: apps/v1 kind: ReplicaSet metadata:name: pc-replicasetnamespace: dev spec:replicas: 3selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1 # 創建rs [root@master ~]# kubectl create -f pc-replicaset.yaml replicaset.apps/pc-replicaset created # 查看rs # DESIRED:期望副本數量 # CURRENT:當前副本數量 # READY:已經準備好提供服務的副本數量 [root@master ~]# kubectl get rs pc-replicaset -n dev -o wide NAME DESIRED CORRENT READY AGE CONTAINERS IMAGES SELECTOR pc-replicaset 3 3 3 22s nginx nginx:1.17.1 app=nginx-pod# 查看當前控制器創建出來的pod # 這里發現控制器創建出來的pod的名稱是在控制器名稱后面拼接了-xxxx隨機碼 [root@master ~]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE pc-replicaset-6vmvt 1/1 Running 0 54s pc-replicaset-fm8f 1/1 Running 0 54s pc-replicaset-snrk 1/1 Running 0 54s

擴縮容

# 編輯rs的副本數量,修改spec:replicas: 6 即可 [root@master ~]# kubectl edit rs pc-replicaset -n dev replicaset.apps/pc-replicaset edited# 查看pod [root@master ~]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE pc-replicaset-6vmvt 1/1 Running 0 114s pc-replicaset-cftnp 1/1 Running 0 10s pc-replicaset-fjlm6 1/1 Running 0 10s pc-replicaset-fmb8f 1/1 Running 0 114s pc-replicaset-s2whj 1/1 Running 0 10s pc-replicaset-snrk2 1/1 Running 0 114s# 當然也可以直接使用命令實現 # 使用scale命令實現擴縮容,后面--replias=n直接指定目標數量即可 [root@master ~]# kubectl scale rs pc-replicaset --replicas=2 -n dev replicaset.apps/pc-replicaset scale# 命令運行完畢,立即查看,發現已經有4個開始準備退出了 [root@master ~]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE pc-replicaset-6vmvt 0/1 Terminatin 0 118s pc-replicaset-cftnp 0/1 Terminatin 0 4m17 pc-replicaset-fjlm6 0/1 Terminatin 0 4m17 pc-replicaset-fmb8f 1/1 Running 0 118s pc-replicaset-s2whj 0/1 Terminatin 0 4m17 pc-replicaset-snrk2 1/1 Running 0 118s# 稍等片刻,就只剩下2個了 [root@master ~]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE pc-replicaset-fmb8f 1/1 Running 0 119s pc-replicaset-snrk2 1/1 Running 0 119s

鏡像升級

# 編輯rs的容器鏡像 - image: nginx:1.17.2 [root@master ~]# kubectl edit rs pc-replicaset -n dev replicaset.apps "pc-replicaset" edited# 再次查看,發現鏡像版本已經變更了 [root@master ~]# kubectl get rs -n dev -o wide NAME DESIRED CORRENT READY AGE CONTAINERS IMAGES pc-replicaset 2 2 2 140m nginx nginx:1.17.2# 同樣的道理,也可以使用命令完成這個工作 # kubectl set image rs rs名稱 容器=鏡像版本 -n namespace [root@master ~]# kubectl set image rs pc-replicaset nginx=nginx:1.17.1 -n dev# 再次查看,發現鏡像版本已經變更了 [root@master ~]# kubectl get rs pc-replicaset -n dev -o wide NAME DESIRED CORRENT READY AGE CONTAINERS IMAGES pc-replicaset 2 2 2 145m nginx nginx:1.17.1

刪除ReplicaSet

# 使用kubectl delete命令會刪除此RS以及它管理的pod # 在kubernetes刪除RS前,會將RS的replicascalear調整為0,等待所有的pod被刪除后,在執行RS對象的刪除 [root@master ~]# kubectl delete rs pc-replicaset -n dev replicaset.apps "pc-replicaset" deleted[root@master ~]# kubectl get pod -n dev -o wide No resources found in dev namespace.# 如果希望僅僅刪除RS對象(保留Pod),可以使用kubectl delete 命令時添加--cascade=false選項(不推薦) [root@master ~]# kubectl delete rs pc-replicaset -n dev --cascade=false replicaset.apps "pc-replicaset" deleted [root@master ~]# kubectl get pods -n dev NAME READY STATUS RESTARTS AGE pc-replicaset-cl82j 1/1 Running 0 75s pc-replicaset-fslhb 1/1 Running 0 75s# 也可以使用yaml直接刪除(推薦) [root@master ~]# kubectl delete -f pc-replicaset.yaml replicaset.apps "pc-replicaset" deleted

3. Deployment

為了更好的解決服務編排的問題,kubernetes在v1.2版本開始,引入了Deployment控制。值得一提的是,這種控制器并不直接管理pod,而是通過管理ReplicaSet來間接管理Pod,即:Deployment管理ReplicaSet,ReplicaSet管理Pod。所以Deployment比ReplicaSet功能更加強大。

Deployment主要功能有下面幾個:

  • 支持ReplicaSet的所有功能
  • 支持發布的停止、繼續
  • 支持版本滾動升級和版本回退

Deployment的資源清單文件:

apiVersion: apps/v1 # 版本號 kind: Deployment # 類型 metadata: # 元數據name: # rs名稱namespace: # 所屬命名空間labels: # 標簽controller: deploy spec: # 詳情描述replicas: 3 # 副本數量revisionHistoryLimit: 3 # 保留歷史版本,默認為是10pause: false # 暫停部署,默認是falseprogressDeadlineSeconds: 600 # 部署超時時間(s),默認是600strategy: # 策略type: RollingUpdate # 滾動更新策略rollingUpdate: # 滾動更新maxSurge: 30% # 最大額外可以存在的副本數,可以為百分比,也可以為整數maxUnavailable: 30% # 最大不可用狀態的Pod的最大值,可以為百分比,也可以為整數selector: # 選擇器,通過他指定該控制器管理哪些PodmatchLabels: # Labels匹配規則app: nginx-poxmatchExpressions: # Expressions匹配規則- {key: app, operator: In, values: [nginx-pod]}template: # 模板,當副本數量不足時,會根據下面的末班創建pod副本metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1ports:- containerPort: 80

創建deployment

創建pc-deployment.yaml,內容如下:

apiVersion: apps/v1 kind: Deployment metadata:name: pc-deploymentnamespace: dev spec:replicas: 3selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1 # 創建deployment # --record=true 記錄每次的版本變化 # 創建rs [root@master ~]# kubectl create -f pc-deployment.yaml replicaset.apps/pc-deployment created# 查看deployment # UP-TO-DATE 最新版本的pod的數量 # AVAILABLE 當前可用的pod的數量 [root@master ~]# kubectl get deploy pc-deployment -n dev NAME READY UP-TO-DATE AVAILABLE AGE pc-deployment 3/3 3 3 15s# 查看rs # 發現rs的名稱是在原來的deployment的名字后面添加了一個10位數的隨機串 [root@master ~]# kubectl get rs -n dev NAME DESIRED CURRENT READY AGE pc-deployment-6696798B78 3 3 3 23s# 查看pod [root@master ~]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE pc-deployment-6696798B78-d2c8n 1/1 Running 0 107s pc-deployment-6696798B78-smpvp 1/1 Running 0 107s pc-deployment-6696798B78-wvjd8 1/1 Running 0 107s

擴縮容

# 變更副本數量為5個 [root@master ~]# kubectl scale deploy pc-deployment --replicas=5 -n dev replicaset.apps/pc-deployment scale# 查看deployment [root@master ~]# kubectl get deploy pc-deployment -n dev NAME READY UP-TO-DATE AVAILABLE AGE pc-deployment 5/5 5 5 15s# 查看pod [root@master ~]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE pc-deployment-6696798B78-d2c8n 1/1 Running 0 107s pc-deployment-6696798B78-jxmdq 1/1 Running 0 94s pc-deployment-6696798B78-mktqv 1/1 Running 0 93s pc-deployment-6696798B78-smpvp 1/1 Running 0 107s pc-deployment-6696798B78-wvjd8 1/1 Running 0 107s# 編輯deployment的副本數量,修改spec:replicas: 4 即可 [root@master ~]# kubectl edit deploy pc-deployment -n dev replicaset.apps/pc-deployment edited# 查看pod [root@master ~]# kubectl get pod -n dev NAME READY STATUS RESTARTS AGE pc-deployment-6696798B78-d2c8n 1/1 Running 0 5m23s pc-deployment-6696798B78-jxmdq 1/1 Running 0 2m38s pc-deployment-6696798B78-smpvp 1/1 Running 0 5m23s pc-deployment-6696798B78-wvjd8 1/1 Running 0 5m23s

鏡像更新

Deployment支持兩種鏡像更新策略:重建更新和滾動更新(默認),可以通過strategy選項進行配置。

strategy: # 執行新的pod替換舊的Pod的策略,支持兩個屬性type: # 指定策略類型,支持兩種策略Recreate: # 在創建出新的Pod之前會先殺掉所有已存在的PodRollingUpdate: # 滾動更新,就是殺死一部分,就啟動一部分,在更新過程中,存在兩個版本的PodrollingUpdate: # 當type為RollingUpdate時生效,用于為RollingUpdate設置參數,支持兩個屬性maxUnavailable: # 用來指定在升級過程中不可用Pod的最大數量,默認為25%maxSurge: # 用來指定升級過程中可以超過期望的Pod的最大數量,默認為25%

重建更新

1)編輯pc-deployment.yaml,在spec節點下添加更新策略

spec: strategy: # 策略type: Recreate: # 重建更新策略

2)創建deploy進行驗證

# 變更鏡像 [root@master ~]# kubectl set image deployment pc-deployment nginx-nginx:1.17.2 -n dev replicaset.apps/pc-deployment image updated# 觀察升級過程 [root@master ~]# kubectl get pods -n dev -w NAME READY STATUS RESTARTS AGE pc-deployment-5d89bdfbf9-cl82j 1/1 Running 0 78s pc-deployment-5d89bdfbf9-kkhr9 1/1 Running 0 78s pc-deployment-5d89bdfbf9-vznbl 1/1 Running 0 78spc-deployment-5d89bdfbf9-cl82j 1/1 Terminating 0 97s pc-deployment-5d89bdfbf9-vznbl 1/1 Terminating 0 97s pc-deployment-5d89bdfbf9-kkhr9 1/1 Terminating 0 97spc-deployment-5d89bdfbf9-g9f85 0/1 Pending 0 0s pc-deployment-5d89bdfbf9-qz48q 0/1 Pending 0 0s pc-deployment-5d89bdfbf9-9sw59 0/1 Pending 0 0spc-deployment-5d89bdfbf9-g9f85 0/1 ContainerCreating 0 0s pc-deployment-5d89bdfbf9-qz48q 0/1 ContainerCreating 0 0s pc-deployment-5d89bdfbf9-9sw59 0/1 ContainerCreating 0 0spc-deployment-5d89bdfbf9-g9f85 1/1 Running 0 2s pc-deployment-5d89bdfbf9-qz48q 1/1 Running 0 2s pc-deployment-5d89bdfbf9-9sw59 1/1 Running 0 28s

滾動更新

  • 編輯pc-deployment.yaml,在spec節點下添加更新策略
  • strategy: # 策略type: RollingUpdate # 滾動更新策略rollingUpdate:maxUnavailable: 25%maxSurge: 25%
  • 創建deploy進行驗證
  • # 變更鏡像 [root@master ~]# kubectl set image deployment pc-deployment nginx=nginx:1.17.3 -n dev replicaset.apps/pc-deployment image updated# 觀察升級過程 [root@master ~]# kubectl get pods -n dev -w NAME READY STATUS RESTARTS AGE pc-deployment-5d89bdfbf9-4b7nw 1/1 Running 0 49s pc-deployment-5d89bdfbf9-95hdx 1/1 Running 0 50s pc-deployment-5d89bdfbf9-wf2b7 1/1 Running 0 47spc-deployment-7865c58bdf-8rxj5 0/1 Pending 0 0s pc-deployment-7865c58bdf-8rxj5 0/1 ContainerCreating 0 0s pc-deployment-7865c58bdf-8rxj5 1/1 Running 0 28s pc-deployment-5d89bdfbf9-wf2b7 1/1 Terminating 0 80spc-deployment-7865c58bdf-6tk5r 0/1 Pending 0 0s pc-deployment-7865c58bdf-6tk5r 0/1 ContainerCreating 0 0s pc-deployment-7865c58bdf-6tk5r 1/1 Running 0 34s pc-deployment-5d89bdfbf9-95hdx 0/1 Terminating 0 81spc-deployment-7865c58bdf-ttwgg 0/1 Pending 0 0s pc-deployment-7865c58bdf-ttwgg 0/1 ContainerCreating 0 0s pc-deployment-7865c58bdf-ttwgg 1/1 Running 0 1s pc-deployment-5d89bdfbf9-4b7nw 0/1 Terminating 0 2m1s

    滾動更新的過程

    鏡像更新中rs的變化:

    # 查看rs,發現原來的rs的依舊存在,只是pod數量變為了0,而后又新產生了一個rs,pod數量為4 # 其實就是deploymennt能夠進行版本回退的奧妙所在,后面會詳細解釋 [root@master ~]# kubectl get rs -n dev NAME DESIRED CURRENT READY AGE pc-deployment-5d89bdfbf9 0 0 0 11m pc-deployment-675d469f8b 0 0 0 10s pc-deployment-7865c58bdf 3 3 3 3m41s

    版本回退

    deployment支持版本升級過程中的暫停、繼續功能以及版本回退等諸多功能,下面具體來看:

    kubectl rollout:版本升級相關功能,支持下面的選項:

    • status 顯示當前升級狀態
    • history 顯示升級歷史記錄
    • pause 暫停版本升級過程
    • resume 繼續已經暫停的版本升級過程
    • restart 重啟版本升級過程
    • undo 回滾到上一級版本(可以使用–to-revision回滾到指定版本)
    # 查看當前升級版本的狀態 [root@master ~]# kubectl rollout status deploy pc-deployment -n dev deployment "pc-deployment" successfully rolled out# 查看升級歷史記錄 [root@master ~]# kubectl rollout history deploy pc-deployment -n dev deployment.app/pc-deployment REVISION CHANGE-CAUSE 1 kubectl create --filename=pc-deployment.yaml --record=true 2 kubectl create --filename=pc-deployment.yaml --record=true 3 kubectl create --filename=pc-deployment.yaml --record=true# 可以發現有三次版本記錄,說明完成過兩次升級# 版本回滾 # 這里直接使用--to-revision=1回滾了1版本,如果省略這個選項,就是回退到上個版本,就是2版本 [root@master ~]# kubectl rollout undo deployment pc-deployment --to-revision=1 -n dev deployment.app/pc-deployment rolled back# 查看發現,通過nginx鏡像版本可以發現到第一版本 [root@master ~]# kubectl get deploy -n dev -o wide NAME READY UP-TO-DATE AVAILABLE AGE CONTANTNERS IMAGES pc-deployment 4/4 4 4 74s nginx ginx:1.17.1# 查看rs,發現第一個rs中有4個pod運行,后面兩個版本的rs中pod為運行 # 其實deployment之所以可是實現版本的回滾,就是通過記錄下歷史rs來實現的, # 一旦想回滾到哪個版本,只需要將當前版本pod數量降為0,然后將回滾版本的pod提升為目標數量就可以了 [root@master ~]# kubectl get rs -n dev NAME DESIRED CURRENT READY AGE pc-deployment-6696798b78 4 4 4 78m pc-deployment-966bf7f44 0 0 0 37s pc-deployment-c848d767 0 0 0 71s

    金絲雀發布

    Deployment支持更新過程中的控制,如“暫停(pause)”或“繼續(resume)”更新操作。

    比如有一批新的Pod資源創建完成后立即暫停更新過程,此時,僅存在一部分新版本的應用,主題部分還是舊的版本。然后,在篩選一小部分的用戶請求路由到新版的Pod應用,繼續觀察能否文檔的按期望的方式運行。確定沒問題之后再繼續完成余下的Pod資源滾動更新,否則立即回滾更新操作。這就是所謂的金絲雀發布。

    # 更新deployment的版本,并配置暫停deployment [root@master ~]# kubectl set image deploy pc-deployment nginx=nginx:1.18.4 -n dev && kubectl rollout pause deployment pc-deployment -n dev deployment.apps/pc-deployment iamge updated deployment.apps/pc-deployment paused# 觀察更新狀態 [root@master ~]# kubectl rollout status deploy pc-deployment -n dev Waiting for deployment "pc-deployment" rollout to finish: 2 out of 4 new replicas have been updated...# 監控更新的過程,可以看到已經新增了一個資源,但是并未按照預期的狀態刪除一個舊的資源,就是因為使用了pause暫停命令[root@master ~]# kubectl get rs -n dev -o wide NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES pc-deployment-5d89bdfbf9 3 3 3 19s nginx nginx:1.17.1 pc-deployment-675d469f8b 0 0 0 14s nginx nginx:1.17.2 pc-deployment-6c9f56fcfb 2 2 2 3m16s nginx nginx:1.17.4[root@master ~]# kubectl get pods -n dev NAME READY STATUS RESTARTS AGE pc-deployment-5d89bdfbf9-rj8sq 1/1 Running 0 7m33s pc-deployment-5d89bdfbf9-ttwgg 1/1 Running 0 7m35s pc-deployment-5d89bdfbf9-v4wvc 1/1 Running 0 7m34s pc-deployment-5d89bdfbf9-996rt 1/1 Running 0 3m31s pc-deployment-5d89bdfbf9-j2gtj 1/1 Running 0 3m31s# 確保更新的pod沒問題了,繼續更新 [root@master ~]# kubectl rollout resume deploy pc-deployment -n dev deployment.apps/pc-deployment resumed# 查看最后的更新情況 [root@master ~]# kubectl get rs -n dev -o wide NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES pc-deployment-5d89bdfbf9 0 0 0 21s nginx nginx:1.17.1 pc-deployment-675d469f8b 0 0 0 16s nginx nginx:1.17.2 pc-deployment-6c9f56fcfb 4 4 4 5m11s nginx nginx:1.17.4[root@master ~]# kubectl get pods -n dev NAME READY STATUS RESTARTS AGE pc-deployment-5d89bdfbf9-76fwh 1/1 Running 0 37s pc-deployment-5d89bdfbf9-996rt 1/1 Running 0 5m27s pc-deployment-5d89bdfbf9-j2gtj 1/1 Running 0 5m27s pc-deployment-5d89bdfbf9-rf84v 1/1 Running 0 37s

    刪除Deployment

    # 刪除deployment,其下的rs和pod也將被刪除 [root@master ~]# kubectl delete -f pc-deployment.yaml deployment.app "pc-deployment" deleted

    4. Horizontal Pod AutoScaler(HPA)

    在前面的課程中,我們可以通過手工執行kubectl scale命令實現Pod擴容,但是這顯然不符合Kubernetes的定位目標–自動化、智能化。Kubernetes期望可以通過檢測Pod的使用情況,實現pod數量的自動調整,于是就產生了HPA這種控制器。

    HPA可以獲取每個pod利用率,然后和HPA中定義的指標進行對比,同時計算出需要伸縮的具體值,最后實現pod的數量的調整。其實HPA與之前的Deployment一樣,也屬于一種Kubernetes資源對象,它通過追蹤分析目標pod的負載變化情況,來確定是否需要針對性地調整目標pod的副本數。

    1 安裝metrics-server
    # 安裝git [root@master ~]# yum install git -y # 獲取metrics-server,注意使用的版本 [root@master ~]# git clone -b v0.3.6 https://github.com/kubernetes-incubator/metrics-server.git # 修改deployment,注意修改的是鏡像和初始化參數 [root@master ~]# cd /root/metrics-server/deploy/1.8+/ [root@master 1.8+]# vim metrics-server-deployment.yaml #按照圖中添加如下選項 hostNetwork: true registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6 - --kubelet-insecure-tls - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP

    # 安裝metrics-server [root@master 1.8+]# kubectl apply -f ./# 查看pod運行情況 [root@master 1.8+]# kubectl get pod -n kube-system metrics-server-6b976979db-2xwbj 1/1 Running 0 90s# 使用kubectl top node 查看資源使用情況(稍微等待一段數時間) [root@master 1.8+]# kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% master 98m 4% 1067Mi 62% node1 27m 1% 727Mi 42% node2 34 1% 800Mi 46%[root@master 1.8+]# kubectl top pod -n kube-system NAME CPU(cores) MEMORY(bytes) coredns-6955765f44-7ptsb 3m 9Mi coredns-6955765f44-vcwr5 3m 8Mi coredns-master 14m 145Mi ... # 至此,metrics-server安裝完成
    2 準備deployment和service

    為了操作簡單,直接使用命令

    # 創建deployment [root@master 1.8+]# kubectl run nginx --image=nginx:latest --requests=cpu=100m -n dev # 創建service [root@master 1.8+]# kubectl expose deployment nginx --type=NodePort --port=80 -n dev# 查看 [root@master 1.8+]# kubectl get deployment,pod,svc -n dev NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx 1/1 1 1 47sNAME READY STATUS RESTARTS AGE pod/nginx-7df9756ccc-bh8dr 1/1 Running 0 47sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/nginx NodePort 10.109.57.248 <none> 80:31136/TCP 35s
    3 部署HPA

    創建pc-hpa.yaml

    apiVersion: autoscaling/v1 kind: HorizontalPodAutoscaler metadata:name: pc-hpanamespace: dev spec:minReplicas: 1 # 最小pod數量maxReplicas: 10 # 最大pod數量targetCPUUtilizationPercentage: 3 # CPU使用率指標scaleTargetRef: # 指定要控制的nginx信息apiVersion: apps/v1kind: Deploymentname: nginx # 創建hpa [root@master 1.8+]# kubectl create -f pc-hpa.yaml horizontalpodautoscaler.autoscaling/pc-hpa created# 查看hpa [root@master 1.8+]# kubectl get hpa -n dev NAME REFERENCE TARGETS NINPODS MAXPODS REPLICAS AGE pc-hpa Deployment/nginx 0%/3% 1 10 1 62s
    4 測試

    使用壓測工具對service地址192.168.109.100:31136進行壓測,然后通過控制臺查看hps和pod的變化

    hpa變化

    [root@master ~]# kubectl get hpa -n dev -w NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE pc-hpa Deployment/nginx 0%/3% 1 10 1 4m11s pc-hpa Deployment/nginx 0%/3% 1 10 1 5m19s pc-hpa Deployment/nginx 22%/3% 1 10 1 6m50s pc-hpa Deployment/nginx 22%/3% 1 10 4 7m5s pc-hpa Deployment/nginx 22%/3% 1 10 8 7m21s pc-hpa Deployment/nginx 6%/3% 1 10 8 7m51s pc-hpa Deployment/nginx 0%/3% 1 10 8 9m6s pc-hpa Deployment/nginx 0%/3% 1 10 8 13s pc-hpa Deployment/nginx 0%/3% 1 10 1 14s

    deployment變化

    [root@master ~]# kubectl get deployment -n dev -w NAME READY UP-TO-DATE AVAILABLE AGE nginx 1/1 1 1 11m nginx 1/4 1 1 13m nginx 1/4 1 1 13m nginx 1/4 1 1 13m nginx 1/4 4 1 13m nginx 1/8 4 1 14m nginx 1/8 4 1 14m nginx 1/8 4 1 14m nginx 1/8 8 1 14m nginx 2/8 8 2 14m nginx 3/8 8 3 14m nginx 4/8 8 4 14m nginx 5/8 8 5 14m nginx 6/8 8 6 14m nginx 7/8 8 7 14m nginx 8/8 8 8 15m nginx 8/1 8 8 20m nginx 8/1 8 8 20m nginx 1/1 1 1 20m

    pod變化

    [root@master ~]# kubectl get pods -n dev -w NAME READY STATUS RESTARTS AGE nginx-7df9756ccc-bh8dr 1/1 Running 0 11m nginx-7df9756ccc-cpgrv 0/1 Pending 0 0s nginx-7df9756ccc-8zhwk 0/1 Pending 0 0s nginx-7df9756ccc-rr9bn 0/1 Pending 0 0s nginx-7df9756ccc-cpgrv 0/1 ContainerCreating 0 0s nginx-7df9756ccc-8zhwk 0/1 ContainerCreating 0 0s nginx-7df9756ccc-rr9bn 0/1 ContainerCreating 0 0s nginx-7df9756ccc-m9gsj 0/1 Pending 0 0s nginx-7df9756ccc-g56qb 0/1 Pending 0 0s nginx-7df9756ccc-sl9c6 0/1 Pending 0 0s nginx-7df9756ccc-fgst7 0/1 Pending 0 0s nginx-7df9756ccc-g56qb 0/1 ContainerCreating 0 0s nginx-7df9756ccc-m9gsj 0/1 ContainerCreating 0 0s nginx-7df9756ccc-sl9c6 0/1 ContainerCreating 0 0s nginx-7df9756ccc-fgst7 0/1 ContainerCreating 0 0s nginx-7df9756ccc-8zhwk 1/1 Running 0 19s nginx-7df9756ccc-rr9bn 1/1 Running 0 30s nginx-7df9756ccc-m9gsj 1/1 Running 0 21m nginx-7df9756ccc-cpgrv 1/1 Running 0 47m nginx-7df9756ccc-sl9c6 1/1 Running 0 33m nginx-7df9756ccc-g56qb 1/1 Running 0 48m nginx-7df9756ccc-fgst7 1/1 Running 0 66m nginx-7df9756ccc-fgst7 1/1 Terminating 0 6m50s nginx-7df9756ccc-8zhwk 1/1 Terminating 0 7m5s nginx-7df9756ccc-cpgrv 1/1 Terminating 0 7m5s nginx-7df9756ccc-q56gb 1/1 Terminating 0 6m50s nginx-7df9756ccc-rr9bn 1/1 Terminating 0 7m5s nginx-7df9756ccc-m9gsj 1/1 Terminating 0 6m50s nginx-7df9756ccc-sl9c6 1/1 Terminating 0 6m50s

    5. DaemonSet

    DaemonSet類型的控制器可以保證集群中的每一臺(或指定)節點上都運行一個副本,一般適用于日志收集、節點監控等場景。也就是說,如果一個pod提供的功能是節點級別的(每個節點都需要且只需要一個),那么這類Pod就適合使用DaemonSet類型的控制器創建。

    DaemonSet控制器的特點:

    • 每當向集群中添加一個節點時,指定的pod副本也將添加到該節點上。
    • 當節點從集群中移除時,pod也就被垃圾回收了

    下面先來看下DaemonSet的資源清單文件

    apiVersion: apps/v1 # 版本號 kind: DaemonSet # 類型 metadata: # 元數據name: pc-daemonSet # rs名稱labels: # 標簽controller: daemontset spec:revisionHistoryLimit: 3 # 保留歷史版本updateStrategy: # 更新策略type: RollingUpdate # 滾動更新策略rollingUpdate: # 滾動更新maxUnavailable: 1 # 最大不可用狀態的pod的最大值,可以為百分比,也可以為正數selector: # 選擇器,通過它指定該控制器管制哪些podmatchLabels: # Labels匹配規則app: nginx-podmatchExpressions: # Expression匹配規則- {key: app, operator: In, values: [nginx-pod]}template: # 末班,當副本數量不足時,會根據下面的模板創建pod副本metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1ports:- containerPort: 80

    創建pc-daemonset.yaml,內容如下:

    apiVersion: apps/v1 kind: DaemonSet metadata:name: pc-daemonsetnamespace: dev spec:selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.17.1 # 創建daemontset [root@master ~]# kubectl create -f pc-daemonset.yaml daemonset.apps/pc-daemonset created# 查看daemonset [root@master ~]# kubectl get ds -n dev -o wide NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES pc-daemont 2 2 2 2 2 24s nginx nginx:1.17.1# 查看pod,發現在每個Node上都運行一個pod [root@master ~]# kubectl get pods -n dev -o wide NAME READY STATUS RESTARTS AGE IP NODE pc-daemonset-9bck8 1/1 Running 0 37s 10.244.1.43 node1 pc-daemonset-k224w 1/1 Running 0 37s 10.244.2.74 node2# 刪除daemonset [root@master ~]# kubectl delete -f pc-daemonset.yaml daemonset.apps "pc-daemontset" deleted

    6. Job

    Job主要用于負責批量處理短暫的一次性任務。Job的特點如下:

    • 當Job創建的pod執行成功時,Job將記錄成功結果的pod數量
    • 當成功結束的pod達到指定的數量時,Job將完成執行

    Job的資源清單文件:

    apiVersion: batch/v1 # 版本號 kind: Job # 類型 metadata: # 元數據name: jobName # rs名稱namespace: # 所屬命名空間labels: # 標簽controller: job spec: # 詳情描述completions: 1 # 指定job需要陳宮運行Pods的次數。默認值:1parallelism: 1 # 指定job在任意時刻應該并發運行Pods的數量。默認值:1activeDeadlineSeconds: 10 # 指定job可運行的時間期限,超過時間還未結束,系統將會嘗試進行終止。backoffLimit: 6 # 指定job失敗后進行重拾的次數。默認是6manuaSelector: true # 是否可以使用selector選擇器選擇pod,默認是falseselector: # 選擇器,通過它指定該控制器管理哪些podmatchLabels: # Labels匹配規則app: counter-podmatchExpressions: # Expressions匹配規則- {key: app, operator: In, values: [counter -pod]}template: # 模板,當副本數量不足時,會根據下面的模板創建pod副本metadata:labels:app: counter-podspec:restartPolicy: Never # 重啟策略只能設置為Never或者OnFailurecontainers: - name: counterimage: busybox:1.30command: ["bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 3;done"]

    關于重啟策略設置的說明:

    • 如果指定為OnFailure,則job會在pod出現故障時重啟容器,而不是創建pod,failed次數不變
    • 如果指定為Never,則job會在pod出現故障時創建新的pod,并且故障pod不會消失,也不會重啟,failed次數+1
    • 如果指定為Always的話,就意味著一直重啟,意味著job任務會重復去執行了,當然不對,所以不能設置為Always

    創建pc-job.yaml,內容如下:

    apiVersion: batch/v1 kind: Job metadata:name: pc-jobnamespace: dev spec:manualSelector: trueselector:matchLabels: app: counter-podtemplate:metadata:labels:app: counter-podspec:restartPolicy: Nevercontainers:- name: counterimage: busybox:1.30command: ["bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 3;done"] # 創建job [root@master ~]# kubectl create -f pc-job.yaml# 查看job [root@master ~]# kubectl get job -n dev -o wide -w NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTOR pc-job 0/1 21s 21s counter busybox:1.30 app=counter-pod pc-job 1/1 31s 79s counter busybox:1.30 app=counter-pod# 通過觀察pod狀態可以看到,pod在運行完畢任務后,就會變成Completed狀態 [root@master ~]# kubectl get pods -n dev -w NAME READY STATUS RESTARTS AGE pc-job-rxg96 1/1 Running 0 29s pc-job-rxg96 0/1 Completed 0 33s# 接下來,調整pod運行的總數量和并行數量,即:在spec下設置下面兩個選項 # completions: 6 指定job需要成功運行Pods的次數為6 # parallelism: 3 指定job并發運行Pods的數量為3 # 然后重新運行job,觀察效果,此時會發現,job會每次運行3個pod,總共執行了6個pod [root@master ~]# kubectl get pods -n dev -w NAME READY STATUS RESTARTS AGE pc-job-684ft 1/1 Running 0 5s pc-job-jhj49 1/1 Running 0 5s pc-job-pfcvh 1/1 Running 0 5s pc-job-684ft 0/1 Completed 0 11s pc-job-v7rhr 0/1 Pending 0 0s pc-job-v7rhr 0/1 Pending 0 0s pc-job-v7rhr 0/1 ContainerCreating 0 0s pc-job-jhj49 0/1 Completed 0 11s pc-job-fhwf7 0/1 Pending 0 0s pc-job-fhwf7 0/1 Pending 0 0s pc-job-pfcvh 0/1 Completed 0 11s pc-job-5vg2j 0/1 Pending 0 0s pc-job-fhwf7 0/1 ContainerCreating 0 0s pc-job-5vg2j 0/1 Pending 0 0s pc-job-5vg2j 0/1 ContainerCreating 0 0s pc-job-fhwf7 1/1 Running 0 2s pc-job-v7rhr 1/1 Running 0 2s pc-job-5vg2j 1/1 Running 0 3s pc-job-fhwf7 0/1 Completed 0 12s pc-job-v7rhr 0/1 Completed 0 12s pc-job-5vg2j 0/1 Completed 0 12s# 刪除job [root@master ~]# kubectl delete -f pc-job.yaml job.batch "pc-job" deleted

    7. Cronjob

    CronJob控制器以Job控制器資源為其管控對象,并借助它管理pod資源對象,Job控制器定義的作業任務在其控制器資源創建之后便會立即執行,但CronJob可以以類似于Linux操作系統的周期性任務作業計劃的方式控制其運行世家你點及重復運行的方式。也就是說,CroonJob可以在特定的時間點(反復的)去運行job任務。

    CronJob的資源清單文件:

    apiVersion: batch/v1beta1 # 版本號 kind: CronJob # 類型 metadata: # 元數據name: cronJob # rs名稱namespace: dev # 所屬命名空間labels: # 標簽controller: cronjob spec: # 詳情描述schedule: # cron格式的作業調度運行時間點,用于控制任務在什么時間執行concurrencyPolicy: # 并發執行策略,用于定義前一次作業運行尚未完成時是否一級如何運行后一次的作業failedJobHistoryLimit: # 為失敗的任務執行保留的歷史記錄數,默認為1successfulJobHistoryLimit: # 為成功的任務執行保留的歷史記錄數,默認為3startingDeadlineSeconds: # 啟動作業錯誤的超時時長jobTemplate: # job控制器模板,用于為cronjob控制器生成job對象;下面其實就是job的定義metadata:spec:completioins: 1parallelism: 1activeDeadlineSeonds: 30backoffLimit: 6manualSelector: trueselector:matchLabels:app: counter-podmatchExpressions: 規則- {key: app, operator: In, values: [counter-pod]}template:metadata:labels:app: counter-podspec:restartPolicy: Nevercontainers:- name: counterimage: busybox:1.30command: ["bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 2;done"] 需要重點解釋的幾個選項: schedule: cron表達式,用于指定任務的執行時間*/1 * * * *<分鐘> <小時> <> <月份> <星期>分鐘 值從0到59小時 值從0到23日 值從1到31月 值從1到12星期 值從0到6,0代表星期日多個時間可以用逗號隔開,范圍可以用連字符給出;*可以作為通配符;/表示每。。。 concurrencyPolicy:Allow: 允許Jobs并發運行(默認)Forbid: 禁止并發運行,如果上一次運行尚未完成,則跳過下一次運行Replace: 替換,取消當前正在運行的作業并用新作業替換它

    創建pc-cronjob.yaml,內容如下:

    apiVersion: batch/v1beta1 kind: CronJob metadata:name: pc-cronjobnamespace: devlabels:controller: cronjob spec:schedule: "*/1 * * * *"jobTemplate:metadata:spec:template:spec:restartPolicy: Nevercontainers:- name: counterimage: busybox:1.30command: ["bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 2;done"] # 創建cronjob [root@master ~]# kubectl create -f pc-cronjob.yaml cronjob batch/pc-cronjob created# 查看cronjob [root@master ~]# kubectl get cronjobs -n dev NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE pc-cronjob */1 * * * * False 0 <none> 6s# 查看job [root@master ~]# kubectl get jobs -n dev NAME COMPLETIONS DURATION AGE pc-cronjob-1592587800 1/1 28s 3m26s pc-cronjob-1592587860 1/1 28s 2m26s pc-cronjob-1592587920 1/1 28s 86s# 查看pod [root@master ~]# kubectl get pods -n dev pc-cronjob-1592587800-x4tsm 0/1 Completed 0 2m24s pc-cronjob-1592587860-r5gv4 0/1 Completed 0 84s pc-cronjob-1592587920-9dxxq 1/1 Running 0 24s# 刪除cronjob [root@master ~]# kubectl delete -f pc-cronjob.yaml cronjob batch/pc-cronjob deleted

    總結

    以上是生活随笔為你收集整理的Kubernetes学习(六)—— Pod控制器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    久久艹国产 | 精品国产激情 | 欧美一区二区三区特黄 | 久草免费在线视频 | 欧美精品亚洲精品日韩精品 | 亚洲综合在线观看视频 | 黄色成人av| 国产成人精品一区二区在线观看 | 深爱婷婷久久综合 | .精品久久久麻豆国产精品 亚洲va欧美 | 国产亚洲精品久久久久久久久久 | 视频在线观看99 | 99久久er热在这里只有精品15 | 中文字幕在线影院 | 亚洲欧洲成人 | 一级做a视频 | 国产美女在线观看 | 99麻豆久久久国产精品免费 | 免费av福利 | 日韩精品久久一区二区三区 | 在线国产视频一区 | wwwwww黄 | 日韩av中文字幕在线 | 九九免费观看全部免费视频 | 久久人人爽人人爽人人片av软件 | 午夜av片 | 成人中文字幕av | 中文字幕在线观看视频一区二区三区 | 久久69精品久久久久久久电影好 | 精品福利视频在线 | 深爱开心激情网 | 五月天伊人 | 在线观看中文字幕2021 | 免费网站黄色 | 日韩免费高清在线观看 | 日韩在线观看视频在线 | 五月婷影院 | 99日精品 | 深爱五月激情五月 | 久久精品一区二区国产 | 天天干天天爽 | 九九热免费在线视频 | 黄色福利网站 | 欧美一级片免费 | 很黄很黄的网站免费的 | 伊人在线视频 | 亚洲乱码久久 | 激情伊人| 九九99视频 | 人人澡人人模 | 日韩精品在线观看视频 | 婷婷四房综合激情五月 | 日韩av电影中文字幕在线观看 | 日韩欧美综合 | 五月亚洲| 四虎永久免费网站 | 国产精品日韩在线观看 | a天堂一码二码专区 | 亚洲五月 | 日韩一区精品 | 伊人久久五月天 | 狠狠色综合欧美激情 | 99久久精品免费视频 | 在线观看国产www | 黄色av一区二区 | 天堂av一区二区 | 91免费网址| 久久久999精品视频 国产美女免费观看 | 这里只有精品视频在线观看 | 狠狠干狠狠久久 | 天天干夜夜干 | 在线观看免费观看在线91 | 久久久国产精品电影 | 日韩成人av在线 | 国产一级电影免费观看 | 国产中文字幕在线看 | 国产精品久久久精品 | 久久这里只有精品9 | 99久久精品免费视频 | 在线观看中文字幕第一页 | 亚洲欧洲在线视频 | 国产精品18久久久久久久网站 | 97av在线视频 | 久久久久国产精品免费免费搜索 | 96久久精品 | 日韩在线免费不卡 | 久久99精品久久久久久三级 | 91福利视频久久久久 | 成人在线免费观看视视频 | 国产中文字幕在线免费观看 | 91大神在线观看视频 | 国产在线不卡精品 | 亚洲精品国产精品久久99热 | av网站免费线看精品 | 成人禁用看黄a在线 | 91精品久久久久久久久 | 免费男女羞羞的视频网站中文字幕 | 日韩欧美视频在线观看免费 | 中文有码在线视频 | 免费av片在线| 亚洲第一区在线播放 | 在线观看免费黄视频 | 国产午夜三级一区二区三 | 欧美日本一二三 | 国产成年人av | 最新日韩在线观看 | 九九久久久久久久久激情 | 四虎国产精品免费观看视频优播 | av电影免费在线看 | www.夜色.com| 亚洲码国产日韩欧美高潮在线播放 | 特级免费毛片 | 伊人伊成久久人综合网站 | 日韩极品视频在线观看 | 欧美精品久久久久a | 国产精品网址在线观看 | 日韩三级视频 | 国产黄网在线 | 狠狠干成人综合网 | www.神马久久 | 国产激情电影综合在线看 | 97超碰资源站 | 午夜国产影院 | 激情五月婷婷综合网 | 一区在线观看 | 国产原创在线 | 午夜色大片在线观看 | 九9热这里真品2 | 成人午夜免费剧场 | 国产精品久久久久久久久久久久冷 | 人人爽久久久噜噜噜电影 | 欧美性大战 | 欧美成人999| 免费在线黄 | 有码中文字幕在线观看 | 久久国内精品99久久6app | av电影在线免费 | 嫩草91影院| 久久激情视频 久久 | 国产成人99av超碰超爽 | 在线免费观看成人 | 久久久精品小视频 | 狠狠色噜噜狠狠 | 国产精品一区二区三区久久 | 国产精品大尺度 | 人人涩| 亚洲午夜精品在线观看 | 亚洲视频免费在线 | 欧美网址在线观看 | 视频福利在线观看 | 蜜臀av免费一区二区三区 | 日韩中文免费视频 | 国产成人免费高清 | 91影视成人 | 国产精品亚洲片夜色在线 | 69av网| 免费一级特黄录像 | 国产在线视频一区二区 | 欧美小视频在线观看 | 国产不卡在线看 | 亚洲精品伦理在线 | 国产成人一区二区三区 | 中文字幕中文字幕在线中文字幕三区 | 97中文字幕 | 精品免费一区二区三区 | 99成人精品| 久久久精品在线观看 | 久久久久久久久免费视频 | 69av久久| 国产黄色片免费在线观看 | a视频在线观看免费 | 久久精品一区二区三区视频 | 欧美91精品国产自产 | 日韩视频区 | 中文字幕在线观看完整 | 9在线观看免费高清完整版在线观看明 | 操操操人人 | 在线免费观看av网站 | 成年人在线观看网站 | 久久久国产精品成人免费 | 国产传媒中文字幕 | 美女一级毛片视频 | 网址你懂的在线观看 | 天堂av色婷婷一区二区三区 | 99热这里精品 | 日韩精品在线免费观看 | 亚洲乱亚洲乱亚洲 | 日韩精品久久中文字幕 | 成 人 黄 色 免费播放 | 96亚洲精品久久久蜜桃 | 久久久久久久99精品免费观看 | 成人黄色在线视频 | 丁香五月亚洲综合在线 | 免费网站看av片 | 精品久久美女 | 成人免费视频网 | 日韩午夜视频在线观看 | 亚洲成人av在线 | 久久免费a| 日日干干| 全黄网站 | 91欧美国产 | 九九热只有这里有精品 | www.天天射.com | 日韩一区二区久久 | 国产第一页在线播放 | 人人草在线观看 | 色综久久 | 综合网久久 | 三级av免费看 | 日本论理电影 | 国产视频18 | 天天操人 | av在线播放国产 | 欧美亚洲免费在线一区 | 97超碰人人澡人人爱 | 激情五月婷婷综合 | 精品在线免费视频 | 久久狠狠一本精品综合网 | 午夜精品电影 | 丁香视频全集免费观看 | 日韩在线观看小视频 | 日韩精品一区二区三区丰满 | 久久久久亚洲天堂 | 丁香花中文字幕 | 久久人人爽人人片av | 久久电影中文字幕视频 | 成人97人人超碰人人99 | 四虎成人免费观看 | 亚洲一级理论片 | 天天操天天艹 | 国产精品va最新国产精品视频 | 欧美小视频在线观看 | 久久毛片网 | 亚洲精品美女久久17c | 国产精品欧美久久久久无广告 | 亚洲伦理一区 | 亚洲日本va午夜在线电影 | 国产精品成人自产拍在线观看 | 中文字幕刺激在线 | 成人免费观看av | 国产精品久久久久一区 | 国内精品视频一区二区三区八戒 | 欧美在线视频一区二区 | 欧美日韩a视频 | 国产性天天综合网 | 婷婷免费在线视频 | 日韩免费在线观看网站 | 国内久久视频 | 美国av大片| 亚洲欧美精品一区 | 国产xvideos免费视频播放 | 国产一区二区观看 | 最新国产在线视频 | 久久久久福利视频 | 久久久精品 | 字幕网av | 欧美人人爱| 麻豆91网站| av一级久久| 亚洲精品婷婷 | 在线免费91 | 五月婷婷丁香在线观看 | 国内揄拍国内精品 | 亚洲精品视频免费 | 色黄www小说 | 亚洲免费成人 | 中文字幕在线观看视频免费 | 久久久久久久久久久福利 | 人人舔人人爽 | 婷婷亚洲五月色综合 | 久久精品看 | 黄色在线视频网址 | 中文av在线天堂 | 97视频免费| 99九九视频 | 黄色a级片在线观看 | 欧美先锋影音 | 在线免费观看黄色小说 | 天天干天天玩天天操 | 亚洲人毛片 | 色99久久| 81国产精品久久久久久久久久 | 91成人在线视频观看 | 国产亚洲小视频 | 日韩激情免费视频 | 午夜久久美女 | 久草在线综合 | www一起操| 99成人免费视频 | 久久国产精品视频观看 | 四月婷婷在线观看 | 日韩在线不卡视频 | 国产精品久久久精品 | 韩日精品在线 | 国产精品欧美久久久久三级 | 日韩欧美在线一区 | 97av色 | 国产一级视频免费看 | 日韩精品不卡在线 | 亚洲精品玖玖玖av在线看 | 国产成人不卡 | 中文字幕av播放 | 亚洲国产免费看 | 狠狠干天天操 | 麻豆播放| avlulu久久精品 | 日韩精品你懂的 | 免费黄色看片 | 国产精品视频线看 | 韩国av一区二区三区 | 久久玖 | 国产视频一区在线 | 天天操夜夜操夜夜操 | 黄色片免费电影 | 国产免费一区二区三区网站免费 | 亚洲婷婷在线视频 | 亚洲高清国产视频 | 中文字幕久久精品一区 | 天天干天天做 | 在线高清av | 91成人在线免费观看 | 尤物九九久久国产精品的分类 | 欧美久久久久久久 | av免费电影在线 | 91日韩在线 | 天天操天天操天天 | 蜜桃视频日本 | 天天做日日做天天爽视频免费 | 在线免费观看黄网站 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 激情五月婷婷综合 | 欧美日韩国产一区二区三区在线观看 | 国产午夜三级一区二区三桃花影视 | 国产精品久久久久久久久免费 | 国产1级视频 | 久久精品五月 | 欧美a在线看 | 日韩在线观看av | 狠狠干夜夜 | 日韩色视频在线观看 | 亚洲国产一区av | 久久精品久久久久久久 | 国产精品久久久久久999 | 日韩精品在线视频 | 黄色av影视 | 4438全国亚洲精品观看视频 | 日批视频在线观看免费 | 中文字幕影视 | 国产在线观看91 | 国产视频九色蝌蚪 | 成年一级片 | 亚洲老妇xxxxxx | 亚洲三级在线免费观看 | 波多野结衣视频一区 | 91精品伦理 | 天天操天天色天天 | 日韩在线二区 | 91精品国产91热久久久做人人 | 成人av高清 | 日韩丝袜 | 狠狠色香婷婷久久亚洲精品 | 日韩免费视频播放 | 国产成人一区二区精品非洲 | 国产在线播放观看 | 久草在线最新视频 | 国产成人综合图片 | 日日爽天天操 | 国产成人精品免费在线观看 | 日韩免费电影一区二区三区 | 久青草视频 | 国产欧美久久久精品影院 | 视频一区二区在线观看 | 夜夜操狠狠操 | 国产日韩亚洲 | 国产在线精品福利 | 2023年中文无字幕文字 | 国产精品久免费的黄网站 | 国产精品美女视频网站 | 激情av网| 久久96国产精品久久99漫画 | 在线久热| 日韩免费一区二区 | av高清网站在线观看 | 色偷偷网站视频 | 亚洲国产美女精品久久久久∴ | 天天干天天干天天干 | av网址在线播放 | 一区二区精品视频 | 九九九毛片 | 少妇bbbb搡bbbb桶 | 天天综合网天天综合色 | 国产麻豆果冻传媒在线观看 | 婷婷色 亚洲 | 午夜精品一二三区 | 四虎4hu永久免费 | 嫩草91影院| 日韩18p| 久久久久网站 | av国产网站 | 国产精品嫩草影视久久久 | 黄色片免费看 | 久久精品久久国产 | 国产精品一区二区免费看 | 99国产精品免费网站 | 91爱爱免费观看 | 99视频精品视频高清免费 | 91九色国产| 久久久久久国产一区二区三区 | 亚洲成av人片在线观看无 | 日韩av中文字幕在线 | www.伊人网 | 欧美久久久久久久久中文字幕 | 日韩国产精品久久 | 成人精品国产 | 在线国产一区二区三区 | 欧美精品久久99 | 五月婷婷狠狠 | 欧美日韩亚洲在线观看 | 久久综合九色综合久99 | 精品视频中文字幕 | 在线免费黄 | 国产欧美精品一区二区三区四区 | 国产精品中文 | 国产精品久久久久久久久大全 | 亚洲国产精品500在线观看 | 国产精品毛片久久久 | 精品在线观看一区二区 | av中文字幕免费在线观看 | 91大神精品视频在线观看 | 久久久久亚洲精品国产 | 久草电影在线 | 4438全国亚洲精品观看视频 | 欧美日韩成人 | 国产精品a久久久久 | 亚洲精品一区二区三区在线观看 | 国产成人在线看 | 免费在线观看日韩 | 成人在线免费看视频 | 伊人春色电影网 | 五月婷婷激情网 | 天天操天天摸天天爽 | 亚洲免费a | 欧美精品久久久久久久 | 99热最新 | 亚洲精品国偷自产在线99热 | 天天摸天天舔 | av超碰在线 | 一级片在线 | 黄色aaa级片 | 黄色软件网站在线观看 | 中文字幕在线观 | 在线91视频 | 日韩av成人在线观看 | 西西4444www大胆视频 | 久久国产精品久久国产精品 | 成年人在线观看网站 | 91免费高清| 久久av网 | 久久不卡视频 | 91麻豆文化传媒在线观看 | 欧美性色综合网站 | 国产一区网址 | 999久久国产| 久久综合九色综合久99 | 成人在线免费看视频 | 欧美三级免费 | 青青河边草免费观看 | 丁香激情婷婷 | 久久不卡免费视频 | 国产福利午夜 | 国产精品久久久久三级 | 成年人在线免费看视频 | 视频一区视频二区在线观看 | 最近日本韩国中文字幕 | 久久少妇免费视频 | 国产精品久久久久久久久久久久 | 又黄又爽的视频在线观看网站 | 怡红院成人在线 | 天堂久久电影网 | 婷婷在线五月 | 天天av天天 | 香蕉视频网站在线观看 | 中文字幕免费观看视频 | 中文字幕在线观看av | 久久综合九色欧美综合狠狠 | 久久不射影院 | 日韩免费 | 婷婷丁香色 | 国内精品久久久久 | 国产精品国产自产拍高清av | 午夜久久| 久久免费视频3 | 黄色视屏免费在线观看 | 国产无套精品久久久久久 | 欧洲精品久久久久毛片完整版 | 成人动图 | 99精品国产aⅴ | 操操日| 黄色片软件网站 | 国模视频一区二区三区 | a黄色一级片| 国产伦精品一区二区三区四区视频 | 500部大龄熟乱视频使用方法 | 中文在线最新版天堂 | 亚洲视频在线播放 | 日韩精品综合在线 | 丰满少妇在线观看资源站 | 白丝av在线 | 中文字幕永久在线 | 国产视频网站在线观看 | 国产日韩在线播放 | 激情五月婷婷综合 | 亚洲电影成人 | 久久精品国产精品亚洲 | 伊人影院99 | 视频在线一区二区三区 | 日韩小视频网站 | 免费看片成年人 | 国产精品va在线观看入 | 在线观看久草 | 国产高清视频在线免费观看 | 精品一区av | 久久精品免费电影 | 日韩在线免费小视频 | 国产成人在线观看 | 狠狠色噜噜狠狠 | 97视频在线免费播放 | 国产在线观看免费av | 国产精品99久久久久久宅男 | 欧美性生爱 | 国产一区在线免费观看视频 | 午夜视频在线网站 | 在线av资源 | 久久深夜福利免费观看 | 成片免费观看视频大全 | 岛国大片免费视频 | 91综合久久一区二区 | 在线精品亚洲 | 黄色a大片| 99久在线精品99re8热视频 | 久久艹在线观看 | 国产综合香蕉五月婷在线 | 日韩av中文在线观看 | 国产 中文 日韩 欧美 | 久久人人爽av | 美女在线观看网站 | 九九影视理伦片 | 在线免费观看国产黄色 | 国产一区二区视频在线播放 | 国产成人av片 | 久亚洲 | 九九日韩 | 亚洲综合精品视频 | 色婷婷福利 | 国产小视频在线观看 | 在线观看国产中文字幕 | 最近最新中文字幕视频 | 黄色的网站在线 | 欧美成人精品三级在线观看播放 | 欧美精品资源 | 久久久久国产精品一区 | 国产精品二区在线观看 | 国产精品女 | 日韩欧美一区二区三区视频 | 在线观看av黄色 | 黄色91免费观看 | 免费一级片在线 | 欧美精品999 | 91少妇精拍在线播放 | 天天干天天插伊人网 | 99热只有精品在线观看 | 天天av在线播放 | 中文字幕综合在线 | 午夜精品一区二区三区在线播放 | 久久人人爽人人爽人人片av免费 | 狠狠色噜噜狠狠 | 一区二区三区精品在线 | 91插插插网站 | 伊人五月天综合 | 成人毛片网| 天天干夜夜爱 | 最新日韩在线观看视频 | 日韩网站免费观看 | 国产手机在线视频 | 国产馆在线播放 | 国产一级不卡毛片 | 亚洲理论在线观看电影 | 亚洲资源视频 | 国产色爽 | 国产香蕉97碰碰碰视频在线观看 | 婷婷网站天天婷婷网站 | 天天爽人人爽 | 人人舔人人舔 | 国产成人av网址 | 91在线看视频免费 | 伊人网综合在线观看 | 欧美精品一二三 | 在线免费观看黄色 | 99在线热播精品免费99热 | 日日麻批40分钟视频免费观看 | 久久成人综合视频 | 中文在线天堂资源 | 97超碰国产精品 | 亚洲涩涩网 | 91免费在线视频 | 日韩精品欧美一区 | 免费三级骚 | 在线看免费 | 天天爽天天射 | 色夜影院| www.色午夜.com | 手机av在线不卡 | 国产一区二区在线观看免费 | 五月花婷婷 | www狠狠操| 亚洲伊人色 | 91视频久久久久 | 日韩免费看 | 成人看片 | 99久久精品费精品 | 国产另类xxxxhd高清 | 久草在线这里只有精品 | 正在播放国产91 | 最近中文字幕免费 | 天天超碰 | 日韩欧美综合 | 亚洲网久久 | 色七七亚洲影院 | 福利一区二区三区四区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 久久婷婷综合激情 | 在线黄网站| 91av网站在线观看 | 久久成人国产精品 | 亚洲日本三级 | av不卡在线看| www.黄色片.com | 91资源在线| 精品999国产| 久草在线高清 | 亚洲激情中文 | 日韩黄色免费电影 | 国产高清中文字幕 | av在线免费观看网站 | 天天色天天操天天爽 | 亚洲国产精品99久久久久久久久 | 五月婷婷另类国产 | 狠狠色狠狠色 | 国产精品麻豆果冻传媒在线播放 | 中文字幕久久网 | 国产高清视频在线播放一区 | 日本中文字幕在线一区 | 美女视频黄色免费 | 夜夜躁日日躁狠狠久久av | 日本mv大片欧洲mv大片 | av成人在线网站 | 99九九99九九九视频精品 | 人人网人人爽 | 人人草人人草 | 69国产成人综合久久精品欧美 | 午夜性盈盈 | 五月天.com| 久久久久久久久福利 | 五月婷社区 | 欧美精品久久人人躁人人爽 | 日本黄色免费网站 | 精品国产一区二区三区噜噜噜 | 国产专区在线视频 | av官网在线| www.香蕉视频在线观看 | 99精品国产一区二区 | 曰韩在线 | 国产精品美女999 | 亚洲最新av | 99精品国产免费久久 | 精品久久久久久综合 | 国产精品第10页 | 久久网站最新地址 | 韩日电影在线 | 亚洲精品动漫在线 | 91精品国产乱码在线观看 | 人人玩人人爽 | 亚洲视频资源在线 | 婷婷在线免费 | 成人在线免费看 | 欧美-第1页-屁屁影院 | 日韩av一区二区三区在线观看 | 中文字幕色在线视频 | 精品久久久久久久久久久久 | 高清精品视频 | 久久视频一区二区 | 久久亚洲私人国产精品va | 日韩羞羞 | av成人免费在线观看 | a级片久久久 | 插久久| 久草精品视频在线看网站免费 | 日韩美一区二区三区 | 国产高清成人av | avav99| 精品999| 日本久草电影 | 亚洲精品人人 | 91视频成人免费 | 国产精品第一视频 | 亚洲成a人片77777潘金莲 | 中文字幕久久久精品 | 成人a视频片观看免费 | www视频免费在线观看 | 精品成人在线 | 在线观看黄 | 黄色一级大片在线免费看产 | 99精品一级欧美片免费播放 | 成人久久 | 最近中文字幕高清字幕在线视频 | 日韩高清精品一区二区 | 在线观看中文字幕一区二区 | 国产在线 一区二区三区 | 97免费公开视频 | 91精品视频在线免费观看 | 亚洲精品久久久久999中文字幕 | 一级黄色片在线免费观看 | 国产人在线成免费视频 | 天堂在线视频免费观看 | 久草在线视频免费资源观看 | 午夜视频福利 | 久草| 国产精品免费久久久久影院仙踪林 | 久久久www成人免费精品张筱雨 | 在线观看视频免费播放 | 午夜影视av | 亚洲一区二区三区四区精品 | 高清av在线免费观看 | 涩涩伊人| 91成人网在线播放 | 国产糖心vlog在线观看 | 九九久久久久久久久激情 | 伊人五月天av | 91中文字幕| 视频精品一区二区三区 | 成人福利av | 成在人线av | 日本中文在线播放 | 不卡的一区二区三区 | 婷婷网址| 99久久婷婷国产精品综合 | 免费在线色 | 国产一区二区三区在线免费观看 | 国产a视频免费观看 | 日韩久久午夜一级啪啪 | www.com久久| 中文字幕精品一区二区三区电影 | 91九色视频导航 | 在线亚洲成人 | 亚洲精品视频中文字幕 | 久久久受www免费人成 | 国产少妇在线观看 | 999久久国精品免费观看网站 | 国产一区二区视频在线播放 | 国产伦精品一区二区三区在线 | 黄色字幕网 | 国产 在线 高清 精品 | 婷婷伊人综合亚洲综合网 | 国产一级免费观看视频 | 色丁香久久 | 激情 婷婷 | 国产精品 中文字幕 亚洲 欧美 | 久久精品免费看 | 在线观看免费高清视频大全追剧 | 国产一区二区在线观看免费 | 国产精品你懂的在线观看 | 国产小视频在线免费观看 | 日韩黄色免费 | 狠狠激情中文字幕 | 亚洲九九九在线观看 | 久久视频一区二区 | 亚洲电影成人 | 亚洲九九影院 | 色香蕉在线视频 | 黄色小视频在线观看免费 | 夜夜操天天摸 | 99精品视频在线免费观看 | av免费在线播放 | 成人一区二区三区中文字幕 | 欧美国产日韩激情 | 久国产在线播放 | 色噜噜在线观看 | 黄色在线成人 | 九九热在线免费观看 | 日日干美女| 91.精品高清在线观看 | 中文在线免费一区三区 | 91精品中文字幕 | 国产精品一区二区三区免费视频 | 国产原创av片 | 综合网伊人 | 97成人资源 | 精品国产伦一区二区三区观看说明 | 97国产小视频 | 五月婷婷激情 | 亚洲精品动漫在线 | 亚洲精品乱码久久久久久 | 久久久免费观看 | 久久一线 | 国产一级性生活视频 | 国产亚洲资源 | 日韩免费电影网站 | 伊人色播| 日韩欧美视频在线观看免费 | 激情狠狠干 | www.99热精品| 久久试看| 午夜视频黄 | 欧美日韩91 | 黄色大片中国 | 国产成人精品电影久久久 | 日本91在线 | 亚洲综合色av | 日韩精品影视 | 日韩av综合网站 | 五月婷婷激情综合 | 欧美性猛片 | 波多野结衣视频一区 | 国产精品久久久久影院 | 国产视频综合在线 | 一区免费观看 | 国产成人久久精品77777 | 国产精品手机播放 | 欧美大香线蕉线伊人久久 | 射射色| 欧美 激情在线 | 精品免费观看视频 | 中文在线a天堂 | 国产乱对白刺激视频在线观看女王 | 99久久99久久精品国产片 | 精品国产色 | 99999精品| 色婷婷五 | 97涩涩视频 | 在线之家官网 | 日韩高清久久 | 国产精品一区专区欧美日韩 | 狠狠躁18三区二区一区ai明星 | 黄色福利网站 | 欧美久久九九 | 黄av免费在线观看 | 日日夜夜天天综合 | 91传媒在线观看 | 亚洲三级毛片 | 最新午夜| 综合色中文 | 亚洲精品国产精品国自产观看浪潮 | 欧美日韩不卡在线 | 亚洲一区二区视频在线 | 日韩av高清在线观看 | 国产日产精品一区二区三区四区的观看方式 | 91精品国自产在线观看 | 4438全国亚洲精品在线观看视频 | 免费在线色 | 成人黄色影片在线 | 98涩涩国产露脸精品国产网 | 精品96久久久久久中文字幕无 | 久久国产精品一区二区三区 | 亚洲丁香久久久 | 久热久草 | 九九久久影视 | 久久久久久久久久久成人 | 色综合久久精品 | 中文字幕在线乱 | 最新国产在线观看 | 亚洲美女精品视频 | 在线观看免费91 | 久久精品一二区 | 欧美国产高清 | 亚洲日本一区二区在线 | 特黄色大片 | 日韩免费看视频 | 精品影院一区二区久久久 | 毛片网在线| 国产最新精品视频 | 伊人狠狠色 | 欧美久久久久久久久久久久 | av成人动漫 | 黄色av三级在线 | 久久国产精品99国产精 | 九九视频免费观看视频精品 | 天天鲁一鲁摸一摸爽一爽 | 国内毛片毛片 | 久久精品91视频 | 婷婷丁香七月 | 国产精品久久久久9999吃药 | 五月婷婷激情综合 | 99久久99久久精品国产片果冰 | 五月婷网站 | 在线中文字幕网站 | 手机av在线网站 | 91视视频在线直接观看在线看网页在线看 | 麻豆视频免费播放 | 美女网站黄免费 | 一区二区三区四区在线 | 最近免费中文字幕 | 在线观看精品视频 | 激情综合中文娱乐网 | 日韩欧美视频一区二区三区 | 97成人资源站 | 成人久久18免费网站图片 | 精品在线视频一区 | 国产精品丝袜在线 | 亚洲欧美日韩精品久久久 | 另类老妇性bbwbbw高清 | 日日夜夜精品 | 成人午夜电影网 | 999成人| 久久久www成人免费精品张筱雨 | 黄色av一区二区三区 | 狠狠色丁香久久综合网 | 日本mv大片欧洲mv大片 | 国产欧美中文字幕 | 日产乱码一二三区别免费 | 国产免费作爱视频 | 国产在线va | 国产99久久久国产精品免费二区 | 亚洲手机av| 久久人人爽人人 | 中文字幕在线字幕中文 | 婷婷在线免费 | 一区二区三区四区五区在线 | 天天躁天天操 | 久久韩国免费视频 | 久久久久久蜜av免费网站 | 最新精品视频在线 | 亚洲伊人网在线观看 | 国产精品欧美 | 免费福利在线播放 | 国产二区精品 | 亚洲一区二区三区毛片 | 免费a网站| a天堂一码二码专区 | 欧美亚洲国产精品久久高清浪潮 | 色婷婷色 | 99视频+国产日韩欧美 | 中文字幕亚洲综合久久五月天色无吗'' | 国产色在线 | 在线看v片成人 | 热久久精品在线 | 成人av在线观| 欧美a在线看 | a一片一级 | 色综合中文综合网 | 丝袜美腿在线 | 黄色一级大片免费看 | 国产精品第52页 | 天天色天天射天天干 | 欧美日韩中 | 国产亚洲午夜高清国产拍精品 | 在线观看亚洲电影 | 91麻豆网站 | 黄色a一级视频 | 91网址在线 | 久久精品亚洲国产 | 亚洲毛片在线观看. | 美女久久精品 | 97成人精品视频在线观看 | 丁香视频 | 午夜久久久久 | 91自拍视频在线 | 男女激情免费网站 | 久久久91精品国产一区二区精品 | 99在线观看视频网站 | 久久久久亚洲天堂 | 国产 日韩 欧美 在线 | 欧美最爽乱淫视频播放 | 午夜美女福利直播 | 日韩二级毛片 | 超碰精品在线观看 | 97福利 | 欧美91精品久久久久国产性生爱 | 欧美三级在线播放 | 久久综合影院 | 日本在线观看中文字幕 | 91九色porny蝌蚪主页 | 精品国产人成亚洲区 | 久久 国产一区 | 国产精品成 | 久久乐九色婷婷综合色狠狠182 | www.xxxx变态.com| 最新国产精品亚洲 | 天天综合91| 中文字幕久久亚洲 | 免费亚洲婷婷 | 成人午夜在线观看 | 狠狠色狠狠色合久久伊人 | 在线看的毛片 | 国产 日韩 在线 亚洲 字幕 中文 | 国产成人av在线影院 | 国产成人中文字幕 | 中文资源在线官网 |