欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何進(jìn)行DockerSwarm集群環(huán)境搭建及彈性服務(wù)部署

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)為企業(yè)級(jí)客戶提高一站式互聯(lián)網(wǎng)+設(shè)計(jì)服務(wù),主要包括做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都app軟件開發(fā)、小程序開發(fā)、宣傳片制作、LOGO設(shè)計(jì)等,幫助客戶快速提升營(yíng)銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗(yàn)豐富的經(jīng)驗(yàn),可以確保每一個(gè)作品的質(zhì)量和創(chuàng)作周期,同時(shí)每年都有很多新員工加入,為我們帶來(lái)大量新的創(chuàng)意。 

集群搭建

環(huán)境準(zhǔn)備

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

  • 五臺(tái)安裝了 Docker 的 CentOS 機(jī)器,版本為:CentOS 7.8.2003

  • Docker Engine 1.12+(最低要求 1.12,本文使用 19.03.12)

  • 防火墻開啟以下端口或者關(guān)閉防火墻:

    • TCP 端口 2377,用于集群管理通信;

    • TCP 和 UDP 端口 7946,用于節(jié)點(diǎn)之間通信;

    • UDP 端口 4789,用于覆蓋網(wǎng)絡(luò)。

機(jī)器分布

角色IPHOSTNAMEDocker 版本
Manager192.168.10.101manager119.03.12
Manager192.168.10.102manager219.03.12
Manager192.168.10.103manager319.03.12
Worker192.168.10.10worker119.03.12
Worker192.168.10.11worker219.03.12
  • 可以通過(guò) hostname 主機(jī)名 修改機(jī)器的主機(jī)名(立即生效,重啟后失效);

  • 或者 hostnamectl set-hostname 主機(jī)名 修改機(jī)器的主機(jī)名(立即生效,重啟也生效);

  • 或者 vi /etc/hosts 編輯 hosts 文件,如下所示, 給 127.0.0.1 添加主機(jī)名(重啟生效)。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 manager1
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

創(chuàng)建集群

在任意節(jié)點(diǎn)下通過(guò) docker swarm init 命令創(chuàng)建一個(gè)新的 Swarm 集群并加入,且該節(jié)點(diǎn)會(huì)默認(rèn)成為 Manager 節(jié)點(diǎn)。根據(jù)我們預(yù)先定義的角色,在 101 ~ 103 的任意一臺(tái)機(jī)器上運(yùn)行該命令即可。

通常,第一個(gè)加入集群的管理節(jié)點(diǎn)將成為 Leader,后來(lái)加入的管理節(jié)點(diǎn)都是 Reachable。當(dāng)前的 Leader 如果掛掉,所有的 Reachable 將重新選舉一個(gè)新的 Leader。

[root@localhost ~]# docker swarm init --advertise-addr 192.168.10.101
Swarm initialized: current node (clumstpieg0qzzxt1caeazg8g) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5ob7jlej85qsygxubqypjuftiwruvew8e2cr4u3iuo4thxyrhg-3hbf2u3i1iagurdprl3n3yra1 192.168.10.101:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

加入集群

Docker 中內(nèi)置的集群模式自帶了公鑰基礎(chǔ)設(shè)施(PKI)系統(tǒng),使得安全部署容器變得簡(jiǎn)單。集群中的節(jié)點(diǎn)使用傳輸層安全協(xié)議(TLS)對(duì)集群中其他節(jié)點(diǎn)的通信進(jìn)行身份驗(yàn)證、授權(quán)和加密。

默認(rèn)情況下,通過(guò) docker swarm init 命令創(chuàng)建一個(gè)新的 Swarm 集群時(shí),Manager 節(jié)點(diǎn)會(huì)生成新的根證書頒發(fā)機(jī)構(gòu)(CA)和密鑰對(duì),用于保護(hù)與加入群集的其他節(jié)點(diǎn)之間的通信安全。

Manager 節(jié)點(diǎn)會(huì)生成兩個(gè)令牌,供其他節(jié)點(diǎn)加入集群時(shí)使用:一個(gè) Worker 令牌,一個(gè) Manager 令牌。每個(gè)令牌都包括根 CA 證書的摘要和隨機(jī)生成的密鑰。當(dāng)節(jié)點(diǎn)加入群集時(shí),加入的節(jié)點(diǎn)使用摘要來(lái)驗(yàn)證來(lái)自遠(yuǎn)程管理節(jié)點(diǎn)的根 CA 證書。遠(yuǎn)程管理節(jié)點(diǎn)使用密鑰來(lái)確保加入的節(jié)點(diǎn)是批準(zhǔn)的節(jié)點(diǎn)。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

Manager

若要向該集群添加 Manager 節(jié)點(diǎn),管理節(jié)點(diǎn)先運(yùn)行 docker swarm join-token manager 命令查看管理節(jié)點(diǎn)的令牌信息。

docker swarm join-token manager

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

然后在其他節(jié)點(diǎn)上運(yùn)行 docker swarm join 并攜帶令牌參數(shù)加入 Swarm 集群,該節(jié)點(diǎn)角色為 Manager。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

Worker

通過(guò)創(chuàng)建集群時(shí)返回的結(jié)果可以得知,要向這個(gè)集群添加一個(gè) Worker 節(jié)點(diǎn),運(yùn)行下圖中的命令即可?;蛘吖芾砉?jié)點(diǎn)先運(yùn)行 docker swarm join-token worker 命令查看工作節(jié)點(diǎn)的令牌信息。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

然后在其他節(jié)點(diǎn)上運(yùn)行 docker swarm join 并攜帶令牌參數(shù)加入 Swarm 集群,該節(jié)點(diǎn)角色為 Worker。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

查看集群信息

在任意 Manager 節(jié)點(diǎn)中運(yùn)行 docker info 可以查看當(dāng)前集群的信息。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

查看集群節(jié)點(diǎn)

在任意 Manager 節(jié)點(diǎn)中運(yùn)行 docker node ls 可以查看當(dāng)前集群節(jié)點(diǎn)信息。

docker node ls

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

* 代表當(dāng)前節(jié)點(diǎn),現(xiàn)在的環(huán)境為 3 個(gè)管理節(jié)點(diǎn)構(gòu)成 1 主 2 從,以及 2 個(gè)工作節(jié)點(diǎn)。

節(jié)點(diǎn) MANAGER STATUS 說(shuō)明:表示節(jié)點(diǎn)是屬于 Manager 還是 Worker,沒(méi)有值則屬于 Worker 節(jié)點(diǎn)。

  • Leader:該節(jié)點(diǎn)是管理節(jié)點(diǎn)中的主節(jié)點(diǎn),負(fù)責(zé)該集群的集群管理和編排決策;

  • Reachable:該節(jié)點(diǎn)是管理節(jié)點(diǎn)中的從節(jié)點(diǎn),如果 Leader 節(jié)點(diǎn)不可用,該節(jié)點(diǎn)有資格被選為新的 Leader;

  • Unavailable:該管理節(jié)點(diǎn)已不能與其他管理節(jié)點(diǎn)通信。如果管理節(jié)點(diǎn)不可用,應(yīng)該將新的管理節(jié)點(diǎn)加入群集,或者將工作節(jié)點(diǎn)升級(jí)為管理節(jié)點(diǎn)。

節(jié)點(diǎn) AVAILABILITY 說(shuō)明:表示調(diào)度程序是否可以將任務(wù)分配給該節(jié)點(diǎn)。

  • Active:調(diào)度程序可以將任務(wù)分配給該節(jié)點(diǎn);

  • Pause:調(diào)度程序不會(huì)將新任務(wù)分配給該節(jié)點(diǎn),但現(xiàn)有任務(wù)仍可以運(yùn)行;

  • Drain:調(diào)度程序不會(huì)將新任務(wù)分配給該節(jié)點(diǎn),并且會(huì)關(guān)閉該節(jié)點(diǎn)所有現(xiàn)有任務(wù),并將它們調(diào)度在可用的節(jié)點(diǎn)上。

刪除節(jié)點(diǎn)

Manager

刪除節(jié)點(diǎn)之前需要先將該節(jié)點(diǎn)的 AVAILABILITY 改為 Drain。其目的是為了將該節(jié)點(diǎn)的服務(wù)遷移到其他可用節(jié)點(diǎn)上,確保服務(wù)正常。最好檢查一下容器遷移情況,確保這一步已經(jīng)處理完成再繼續(xù)往下。

docker node update --availability drain 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID

然后,將該 Manager 節(jié)點(diǎn)進(jìn)行降級(jí)處理,降級(jí)為 Worker 節(jié)點(diǎn)。

docker node demote 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID

然后,在已經(jīng)降級(jí)為 Worker 的節(jié)點(diǎn)中運(yùn)行以下命令,離開集群。

docker swarm leave

最后,在管理節(jié)點(diǎn)中對(duì)剛才離開的節(jié)點(diǎn)進(jìn)行刪除。

docker node rm 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID
Worker

刪除節(jié)點(diǎn)之前需要先將該節(jié)點(diǎn)的 AVAILABILITY 改為 Drain。其目的是為了將該節(jié)點(diǎn)的服務(wù)遷移到其他可用節(jié)點(diǎn)上,確保服務(wù)正常。最好檢查一下容器遷移情況,確保這一步已經(jīng)處理完成再繼續(xù)往下。

docker node update --availability drain 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID

然后,在準(zhǔn)備刪除的 Worker 節(jié)點(diǎn)中運(yùn)行以下命令,離開集群。

docker swarm leave

最后,在管理節(jié)點(diǎn)中對(duì)剛才離開的節(jié)點(diǎn)進(jìn)行刪除。

docker node rm 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID

服務(wù)部署

注意:跟集群管理有關(guān)的任何操作,都是在 Manager 節(jié)點(diǎn)上操作的。

創(chuàng)建服務(wù)

下面這個(gè)案例,使用 nginx 鏡像創(chuàng)建了一個(gè)名為 mynginx 的服務(wù),該服務(wù)會(huì)被隨機(jī)指派給一個(gè)工作節(jié)點(diǎn)運(yùn)行。

docker service create --replicas 1 --name mynginx -p 80:80 nginx

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

  • docker service create:創(chuàng)建服務(wù);

  • --replicas:指定一個(gè)服務(wù)有幾個(gè)實(shí)例運(yùn)行;

  • --name:服務(wù)名稱。

查看服務(wù)

可以通過(guò) docker service ls 查看運(yùn)行的服務(wù)。

[root@manager1 ~]# docker service ls
ID                NAME           MODE              REPLICAS        IMAGE              PORTS
hepx06k5ik5n      mynginx        replicated        1/1             nginx:latest       *:80->80/tcp

可以通過(guò) docker service inspect 服務(wù)名稱|服務(wù)ID 查看服務(wù)的詳細(xì)信息。

[root@manager1 ~]# docker service inspect mynginx
[
    {
        "ID": "k0dbjg1zzy3l3g71kdwa56ect",
        "Version": {
            "Index": 127
        },
        "CreatedAt": "2020-09-16T10:05:55.627974095Z",
        "UpdatedAt": "2020-09-16T10:05:55.629507771Z",
        "Spec": {
            "Name": "mynginx",
            "Labels": {},
            "TaskTemplate": {
                "ContainerSpec": {
                    "Image": "nginx:latest@sha256:c628b67d21744fce822d22fdcc0389f6bd763daac23a6b77147d0712ea7102d0",
                    "Init": false,
                    "StopGracePeriod": 10000000000,
                    "DNSConfig": {},
                    "Isolation": "default"
                },
                "Resources": {
                    "Limits": {},
                    "Reservations": {}
                },
                "RestartPolicy": {
                    "Condition": "any",
                    "Delay": 5000000000,
                    "MaxAttempts": 0
                },
                "Placement": {
                    "Platforms": [
                        {
                            "Architecture": "amd64",
                            "OS": "linux"
                        },
                        {
                            "OS": "linux"
                        },
                        {
                            "OS": "linux"
                        },
                        {
                            "Architecture": "arm64",
                            "OS": "linux"
                        },
                        {
                            "Architecture": "386",
                            "OS": "linux"
                        },
                        {
                            "Architecture": "mips64le",
                            "OS": "linux"
                        },
                        {
                            "Architecture": "ppc64le",
                            "OS": "linux"
                        },
                        {
                            "Architecture": "s390x",
                            "OS": "linux"
                        }
                    ]
                },
                "ForceUpdate": 0,
                "Runtime": "container"
            },
            "Mode": {
                "Replicated": {
                    "Replicas": 1
                }
            },
            "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause",
                "Monitor": 5000000000,
                "MaxFailureRatio": 0,
                "Order": "stop-first"
            },
            "RollbackConfig": {
                "Parallelism": 1,
                "FailureAction": "pause",
                "Monitor": 5000000000,
                "MaxFailureRatio": 0,
                "Order": "stop-first"
            },
            "EndpointSpec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 80,
                        "PublishMode": "ingress"
                    }
                ]
            }
        },
        "Endpoint": {
            "Spec": {
                "Mode": "vip",
                "Ports": [
                    {
                        "Protocol": "tcp",
                        "TargetPort": 80,
                        "PublishedPort": 80,
                        "PublishMode": "ingress"
                    }
                ]
            },
            "Ports": [
                {
                    "Protocol": "tcp",
                    "TargetPort": 80,
                    "PublishedPort": 80,
                    "PublishMode": "ingress"
                }
            ],
            "VirtualIPs": [
                {
                    "NetworkID": "st2xiy7pjzap093wz4w4u6nbs",
                    "Addr": "10.0.0.15/24"
                }
            ]
        }
    }
]

可以通過(guò) docker service ps 服務(wù)名稱|服務(wù)ID 查看服務(wù)運(yùn)行在哪些節(jié)點(diǎn)上。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

在對(duì)應(yīng)的任務(wù)節(jié)點(diǎn)上運(yùn)行 docker ps 可以查看該服務(wù)對(duì)應(yīng)容器的相關(guān)信息。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

調(diào)用服務(wù)

接下來(lái)我們測(cè)試一下服務(wù)是否能被正常訪問(wèn),并且該集群下任意節(jié)點(diǎn)的 IP 地址都要能訪問(wèn)到該服務(wù)才行。

測(cè)試結(jié)果:5 臺(tái)機(jī)器均可正常訪問(wèn)到該服務(wù)。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

彈性服務(wù)

將 service 部署到集群以后,可以通過(guò)命令彈性擴(kuò)縮容 service 中的容器數(shù)量。在 service 中運(yùn)行的容器被稱為 task(任務(wù))。

通過(guò) docker service scale 服務(wù)名稱|服務(wù)ID=n 可以將 service 運(yùn)行的任務(wù)擴(kuò)縮容為 n 個(gè)。

通過(guò) docker service update --replicas n 服務(wù)名稱|服務(wù)ID 也可以達(dá)到擴(kuò)縮容的效果。

將 mynginx service 運(yùn)行的任務(wù)擴(kuò)展為 5 個(gè):

[root@manager1 ~]# docker service scale mynginx=5
mynginx scaled to 5
overall progress: 5 out of 5 tasks 
1/5: running   [==================================================>] 
2/5: running   [==================================================>] 
3/5: running   [==================================================>] 
4/5: running   [==================================================>] 
5/5: running   [==================================================>] 
verify: Service converged

通過(guò) docker service ps 服務(wù)名稱|服務(wù)ID 查看服務(wù)運(yùn)行在哪些節(jié)點(diǎn)上。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

我們?cè)賮?lái)一波縮容的操作,命令如下:

[root@manager1 ~]# docker service update --replicas 3 mynginx
mynginx
overall progress: 3 out of 3 tasks 
1/3: running   [==================================================>] 
2/3: running   [==================================================>] 
3/3: running   [==================================================>] 
verify: Service converged

通過(guò) docker service ps 服務(wù)名稱|服務(wù)ID 查看服務(wù)運(yùn)行在哪些節(jié)點(diǎn)上。

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

在 Swarm 集群模式下真正意義實(shí)現(xiàn)了所謂的彈性服務(wù),動(dòng)態(tài)擴(kuò)縮容一行命令搞定,簡(jiǎn)單、便捷、強(qiáng)大。

刪除服務(wù)

通過(guò) docker service rm 服務(wù)名稱|服務(wù)ID 即可刪除服務(wù)。

[root@manager1 ~]# docker service rm mynginx
mynginx
[root@manager1 ~]# docker service ls
ID                NAME              MODE              REPLICAS          IMAGE             PORTS

滾動(dòng)更新及回滾

以下案例將演示 redis 版本如何滾動(dòng)升級(jí)至更高版本再回滾至上一次的操作。

首先,創(chuàng)建 5 個(gè) Redis 服務(wù)副本,版本為 5,詳細(xì)命令如下:

# 創(chuàng)建 5 個(gè)副本,每次更新 2 個(gè),更新間隔 10s,20% 任務(wù)失敗繼續(xù)執(zhí)行,超出 20% 執(zhí)行回滾,每次回滾 2 個(gè)
docker service create --replicas 5 --name redis \
--update-delay 10s \
--update-parallelism 2 \
--update-failure-action continue \
--rollback-monitor 20s \
--rollback-parallelism 2 \
--rollback-max-failure-ratio 0.2 \
redis:5
  • --update-delay:定義滾動(dòng)更新的時(shí)間間隔;

  • --update-parallelism:定義并行更新的副本數(shù)量,默認(rèn)為 1;

  • --update-failure-action:定義容器啟動(dòng)失敗之后所執(zhí)行的動(dòng)作;

  • --rollback-monitor:定義回滾的監(jiān)控時(shí)間;

  • --rollback-parallelism:定義并行回滾的副本數(shù)量;

  • --rollback-max-failure-ratio:任務(wù)失敗回滾比率,超過(guò)該比率執(zhí)行回滾操作,0.2 表示 20%。

然后通過(guò)以下命令實(shí)現(xiàn)服務(wù)的滾動(dòng)更新。

docker service update --image redis:6 redis

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

回滾服務(wù),只能回滾到上一次操作的狀態(tài),并不能連續(xù)回滾到指定操作。

docker service update --rollback redis

如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署

常用命令

docker swarm

命令說(shuō)明
docker swarm init初始化集群
docker swarm join-token worker查看工作節(jié)點(diǎn)的 token
docker swarm join-token manager查看管理節(jié)點(diǎn)的 token
docker swarm join加入集群

docker node

命令說(shuō)明
docker node ls查看集群所有節(jié)點(diǎn)
docker node ps查看當(dāng)前節(jié)點(diǎn)所有任務(wù)
docker node rm 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID刪除節(jié)點(diǎn)(-f強(qiáng)制刪除)
docker node inspect 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID查看節(jié)點(diǎn)詳情
docker node demote 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID節(jié)點(diǎn)降級(jí),由管理節(jié)點(diǎn)降級(jí)為工作節(jié)點(diǎn)
docker node promote 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID節(jié)點(diǎn)升級(jí),由工作節(jié)點(diǎn)升級(jí)為管理節(jié)點(diǎn)
docker node update 節(jié)點(diǎn)名稱|節(jié)點(diǎn)ID更新節(jié)點(diǎn)

docker service

命令說(shuō)明
docker service create創(chuàng)建服務(wù)
docker service ls查看所有服務(wù)
docker service inspect 服務(wù)名稱|服務(wù)ID查看服務(wù)詳情
docker service logs 服務(wù)名稱|服務(wù)ID查看服務(wù)日志
docker service rm 服務(wù)名稱|服務(wù)ID刪除服務(wù)(-f強(qiáng)制刪除)
docker service scale 服務(wù)名稱|服務(wù)ID=n設(shè)置服務(wù)數(shù)量
docker service update 服務(wù)名稱|服務(wù)ID更新服務(wù)

看完上述內(nèi)容,你們掌握如何進(jìn)行Docker Swarm 集群環(huán)境搭建及彈性服務(wù)部署的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)頁(yè)標(biāo)題:如何進(jìn)行DockerSwarm集群環(huán)境搭建及彈性服務(wù)部署
本文網(wǎng)址:http://aaarwkj.com/article14/ihhege.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站制作、網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作品牌網(wǎng)站設(shè)計(jì)、微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
国产男女乱淫一区二区三区| 丝袜美腿亚洲综合一区| 美女福利视频一区二区| 国产一级成人免费视频| 亚洲国产精品自拍视频| 日韩黄色一级片在线观看| 成人黄色小视频下载| 少妇高潮时会抱紧男人脖子| 日韩欧美精品视频一区| 日产精品一级二级三级爱| av中文字幕熟妇人妻少妇| 91伊人手机在线观看| 亚洲一区二区三区观看视频| 中文字幕伦理一区二区三区| 丰满人妻视频一二三区| 亚洲乱码精品一区二区| 99人妻一区二区三区在线| 九九在线视频免费观看精品视频| 白虎亚洲福利精品一区| 日日躁夜夜躁狠狠躁黑人| 日本福利写真在线观看| 91麻豆成人国产在线观看 | 中文字幕亚洲欧美日韩高清| 欧美日韩国产天堂一区| 久热伊人精品国产中文| 强乱人妻中文字幕日本| 亚洲午夜精品美女写真| 欧美偷拍一区二区三区| 亚洲高清精品一区二区| 老汉av免费在线观看| 国内校园性猛交视频网站| 亚洲最色一区二区三区| 亚洲国产日韩精品自拍av| 日本理论午夜三级在线观看| 97色伦97色伦国产在线| 欧美精品一区影片在线观看| 天堂8在线最新版av| 视频一区中文字幕在线| 日本激情诱惑免费在线播放| 亚洲人妻一区二区三区久久精品| 92午夜福利精品视频|