精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Dapr 入門教程之密鑰存儲(chǔ)

云計(jì)算 云原生
Dapr 在 Kubernetes 模式下通過 Helm 或 dapr init -k 部署的時(shí)候,啟用一個(gè)內(nèi)置的 Kubernetes Secret 存儲(chǔ),如果你使用另一個(gè) Secret 存儲(chǔ),你可以使用 disable-builtin-k8s-secret-store 設(shè)置禁用 Dapr Kubernetes Secret 存儲(chǔ)。

應(yīng)用程序通常通過使用專用的 Secret 存儲(chǔ)來存儲(chǔ)敏感信息,如密鑰和 Token,用于與數(shù)據(jù)庫、服務(wù)和外部系統(tǒng)進(jìn)行身份驗(yàn)證的 Secret 等。通常這需要涉及到設(shè)置一個(gè) Secret 存儲(chǔ),如 ??Azure Key Vault???、??Hashicorp Vault?? 等,并在那里存儲(chǔ)應(yīng)用程序級(jí)別的私密數(shù)據(jù)。為了訪問這些 Secret 存儲(chǔ),應(yīng)用程序需要導(dǎo)入 Secret 存儲(chǔ)的 SDK,并使用它來訪問私密數(shù)據(jù),這可能需要相當(dāng)數(shù)量的代碼,這些代碼與應(yīng)用程序的實(shí)際業(yè)務(wù)領(lǐng)域無關(guān),因此在可能使用不同供應(yīng)商特定的 Secret 存儲(chǔ)的多云場(chǎng)景中,這將成為更大的挑戰(zhàn)。

為了使開發(fā)者更容易使用應(yīng)用程序的私密數(shù)據(jù),Dapr 有一個(gè)專門的 Secret 構(gòu)建塊 API,允許開發(fā)者從 Secret 存儲(chǔ)中獲取私密數(shù)據(jù)。使用 Dapr 的 Secret 存儲(chǔ)構(gòu)建塊通常涉及以下內(nèi)容。

  • 為特定的 Secret 存儲(chǔ)解決方案設(shè)置一個(gè)組件。
  • 在應(yīng)用程序代碼中使用 Dapr 的 Secret API 來檢索私密數(shù)據(jù)。
  • (可選)在 Dapr 組件文件中引用 Secret。

默認(rèn)情況下,Dapr 在 Kubernetes 模式下通過 Helm 或 dapr init -k 部署的時(shí)候,啟用一個(gè)內(nèi)置的 Kubernetes Secret 存儲(chǔ),如果你使用另一個(gè) Secret 存儲(chǔ),你可以使用 disable-builtin-k8s-secret-store 設(shè)置禁用 Dapr Kubernetes Secret 存儲(chǔ)。

應(yīng)用程序代碼可以調(diào)用 Secret 構(gòu)建塊 API 從 Dapr 支持的 Secret 存儲(chǔ)中檢索私密數(shù)據(jù),這些 Secret 存儲(chǔ)可以在你的代碼中使用。例如,下圖顯示了一個(gè)應(yīng)用程序從配置的云 Secret 存儲(chǔ)庫中的一個(gè)名為 vault 的 Secret 存儲(chǔ)庫中請(qǐng)求名為 mysecret 的私密數(shù)據(jù)。

圖片

Dapr Secret

應(yīng)用程序可以使用 secrets API 來訪問來自 Kubernetes Secret 存儲(chǔ)的私密數(shù)據(jù)。在下面的例子中,應(yīng)用程序從 Kubernetes Secret 存儲(chǔ)中檢索相同的 mysecret。

圖片

Dapr Secret On K8s

本地環(huán)境使用 Secrets

同樣我們以 quickstarts 倉庫進(jìn)行說明。

git clone [-b <dapr_version_tag>] https://github.com/dapr/quickstarts.git
cd quickstarts

然后定位到 secretstore 目錄下面的 node 文件夾:

$ cd tutorials/secretstore/node

在 app.js 中是一個(gè)簡(jiǎn)單的 Express 應(yīng)用,它暴露了一些路由和處理程序,我們可以先查看下該文件中的如下內(nèi)容:

const daprPort = process.env.DAPR_HTTP_PORT || 3500;
const secretStoreName = process.env.SECRET_STORE;
const secretName = "mysecret";

其中 secretStoreName 從環(huán)境變量 SECRET_STORE 中讀取,,其為 Kubernetes 部署注入了值 kubernetes,對(duì)于本地開發(fā),環(huán)境變量必須設(shè)置為 localsecretstore 值。

然后我們看看 getsecret 處理程序代碼:

app.get("/getsecret", (_req, res) => {
const url = `${secretsUrl}/${secretStoreName}/${secretName}?metadata.namespace=default`;
console.log("Fetching URL: %s", url);
fetch(url)
.then((res) => res.json())
.then((json) => {
let secretBuffer = new Buffer(json["mysecret"]);
let encodedSecret = secretBuffer.toString("base64");
console.log("Base64 encoded secret is: %s", encodedSecret);
return res.send(encodedSecret);
});
});

該代碼從 secret store 中獲取名為 mysecret 的數(shù)據(jù),并顯示該數(shù)據(jù)的 Base64 編碼數(shù)據(jù)。

我們?cè)?nbsp;secrets.json 文件中添加一個(gè) mysecret 的 Secret 數(shù)據(jù):

{
"mysecret": "abcd"
}

同樣我們也需要添加一個(gè) Secret 對(duì)應(yīng)的 Component 組件,比如在本地自拓管模式,創(chuàng)建一個(gè)如下所示的配置文件:

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: localsecretstore
namespace: default
spec:
type: secretstores.local.file
version: v1
metadata:
- name: secretsFile
value: secrets.json
- name: nestedSeparator
value: ":"

上面的組件定義了一個(gè)本地 Secret 存儲(chǔ)庫,其 Secret 文件路徑為 secrets.json 文件。

其中 Secret 存儲(chǔ) JSON 的路徑是與你調(diào)用 dapr run 的位置相關(guān)的。

然后我們需要將上面的 Secret Store 名稱設(shè)置為環(huán)境變量:

export SECRET_STORE="localsecretstore"
set SECRET_STORE=localsecretstore

接下來我們?yōu)?Node 應(yīng)用安裝依賴:

npm install

然后我們使用 Dapr 帶上本地的 secret store 組件運(yùn)行 Node 應(yīng)用:

$ dapr run --app-id nodeapp --components-path ./components --app-port 3000 --dapr-http-port 3500 node app.js
?? Starting Dapr with id nodeapp. HTTP Port: 3500. gRPC Port: 58744
INFO[0000] starting Dapr Runtime -- version 1.8.4 -- commit 18575823c74318c811d6cd6f57ffac76d5debe93 app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4

INFO[0000] component loaded. name: localsecretstore, type: secretstores.local.file/v1 app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4
INFO[0000] all outstanding components processed app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4

== APP == Node App listening on port 3000!
INFO[0000] application discovered on port 3000 app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4
WARN[0000] [DEPRECATION NOTICE] Adding a default content type to incoming service invocation requests is deprecated and will be removed in the future. See https://docs.dapr.io/operations/support/support-preview-features/ for more details. You can opt into the new behavior today by setting the configuration option `ServiceInvocation.NoDefaultContentType` to true. app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4
INFO[0000] application configuration loaded app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4
INFO[0000] actors: state store is not configured - this is okay for clients but services with hosted actors will fail to initialize! app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4
INFO[0000] actor runtime started. actor idle timeout: 1h0m0s. actor scan interval: 30s app_id=nodeapp instance=MBP2022.local scope=dapr.runtime.actor type=log ver=1.8.4
INFO[0000] dapr initialized. Status: Running. Init Elapsed 326.57000000000005ms app_id=nodeapp instance=MBP2022.local scope=dapr.runtime type=log ver=1.8.4
INFO[0000] placement tables updated, version: 0 app_id=nodeapp instance=MBP2022.local scope=dapr.runtime.actor.internal.placement type=log ver=1.8.4
?? Updating metadata for app command: node app.js
? You're up and running! Both Dapr and your app logs will appear here.

啟動(dòng)后我們可以使用 dapr list 來查看應(yīng)用列表:

$ dapr list
APP ID HTTP PORT GRPC PORT APP PORT COMMAND AGE CREATED PID
nodeapp 3500 58744 3000 node app.js 11m 2022-09-27 15:13.46 5906

啟動(dòng)完成后我們可以直接訪問應(yīng)用的 getsecret 接口:

$ curl -k http://localhost:3000/getsecret

正常輸出結(jié)果是 YWJjZA==,也就是上面的 abcd 做了 base64 編碼后的值。

然后觀察應(yīng)用的日志會(huì)出現(xiàn)類似于如下所示的內(nèi)容:

== APP == Fetching URL: http://localhost:3500/v1.0/secrets/localsecretstore/mysecret?metadata.namespace=default
== APP == Base64 encoded secret is: YWJjZA==

測(cè)試完成后可以使用 dapr stop 命令來停止應(yīng)用:

dapr stop --app-id nodeapp

Kubernetes 環(huán)境使用 Secrets

接下來我們來了解下在 Kubernetes 模式下 Dapr 是如何使用 Secrets store 的,當(dāng)然首先需要在 Kubernetes 集群中安裝 Dapr 控制平面。

Dapr 可以使用許多不同的 secret stores 來解析 secrets 數(shù)據(jù),比如 AWS Secret Manager、 Azure Key Vault、 GCP Secret Manager、 Kubernetes 等,我們這里可以直接使用 Kubernetes 的 Secret 對(duì)象進(jìn)行演示。

首先講 secrets 數(shù)據(jù)添加到 ./mysecret 文件,比如你的密碼是 abcd,則 ./mysecret 文件內(nèi)容應(yīng)該就是 abcd。

然后基于 ./mysecret 文件創(chuàng)建一個(gè) Kubernetes Secret 對(duì)象:

$ kubectl create secret generic mysecret --from-file ./mysecret

注意創(chuàng)建的 Secret 對(duì)象的名稱 mysecret,后面會(huì)使用到。

創(chuàng)建完成后我們可以查看下該對(duì)象中的數(shù)據(jù)是否符合預(yù)期:

$ kubectl get secret mysecret -o yaml
apiVersion: v1
data:
mysecret: YWJjZAo=
kind: Secret
metadata:
creationTimestamp: "2022-09-27T07:34:31Z"
name: mysecret
namespace: default
resourceVersion: "5133821"
uid: c9aa573c-5f71-439c-b482-748ac0fe3ae7
type: Opaque

接下來我們就可以部署 Node.js 應(yīng)用到 Kubernetes 集群中,對(duì)應(yīng)的資源清單文件如下所示:

kind: Service
apiVersion: v1
metadata:
name: nodeapp
labels:
app: node
spec:
selector:
app: node
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodeapp
labels:
app: node
spec:
selector:
matchLabels:
app: node
template:
metadata:
labels:
app: node
annotations:
dapr.io/enabled: "true"
dapr.io/app-id: "nodeapp"
dapr.io/app-port: "3000"
spec:
containers:
- name: node
image: ghcr.io/dapr/samples/secretstorenode:latest
env:
- name: SECRET_STORE
value: "kubernetes"
ports:
- containerPort: 3000
imagePullPolicy: Always

這里的核心重點(diǎn)是需要我們配置環(huán)境變量 SECRET_STORE,將其值設(shè)置為 kubernetes,這樣我們的應(yīng)用就知道應(yīng)該通過 Kubernetes 獲取 Secret 數(shù)據(jù)了。直接部署該應(yīng)用即可:

$ kubectl apply -f deploy/node.yaml
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nodeapp-6cb5b689cf-vtn74 2/2 Running 0 92
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nodeapp LoadBalancer 10.101.216.73 192.168.0.50 80:32719/TCP 13d
nodeapp-dapr ClusterIP None <none> 80/TCP,50001/TCP,50002/TCP,9090/TCP 13d

部署完成后我們這里可以通過 192.168.0.50 這個(gè) EXTERNAL-IP 訪問到應(yīng)用:

curl -k http://192.168.0.50/getsecret

正常上面的請(qǐng)求輸出結(jié)果為 YWJjZAo=,也可以查看 Node 應(yīng)用日志:

$ kubectl logs --selector=app=node -c node
Node App listening on port 3000!
Fetching URL: http://localhost:3500/v1.0/secrets/kubernetes/mysecret?metadata.namespace=default
Base64 encoded secret is: YWJjZAo=

從上面日志可以看出 Node 應(yīng)用程序正在向 dapr 發(fā)出請(qǐng)求,以便從 secret store 獲取 secret 數(shù)據(jù),注意其中的 mysecret 是上面創(chuàng)建的 Secret 對(duì)象名稱。

當(dāng)然如果你使用的是其他 secret store,比如 HashiCorp Vault 則需要?jiǎng)?chuàng)建一個(gè)對(duì)應(yīng)的 Component 組件了,類型為secretstores.hashicorp.vault,如下所示的資源清單:

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: vault
spec:
type: secretstores.hashicorp.vault
version: v1
metadata:
- name: vaultAddr
value: [vault_address]
- name: caCert
value: "[ca_cert]"
- name: caPath
value: "[path_to_ca_cert_file]"
- name: caPem
value : "[encoded_ca_cert_pem]"
- name: skipVerify
value : "[skip_tls_verification]"
- name: tlsServerName
value : "[tls_config_server_name]"
- name: vaultTokenMountPath
value : "[path_to_file_containing_token]"
- name: vaultToken
value : "[path_to_file_containing_token]"
- name: vaultKVPrefix
value : "[vault_prefix]"
- name: vaultKVUsePrefix
value: "[true/false]"
- name: enginePath
value: "secret"
- name: vaultValueType
value: "map"

對(duì)于其他 Dapr 支持的 secret store 的配置屬性可以參考官方文檔 https://docs.dapr.io/reference/components-reference/supported-secret-stores/ 了解相關(guān)信息。

責(zé)任編輯:姜華 來源: k8s技術(shù)圈
相關(guān)推薦

2022-09-21 21:50:18

Dapr消息隊(duì)列

2022-09-19 16:08:31

Dapr發(fā)布訂閱

2022-09-30 06:36:25

DaprFastHTTP

2010-08-02 09:36:22

Flex

2009-10-21 14:49:46

VB入門教程

2010-08-16 09:56:05

DivCSS

2009-10-21 18:09:12

VB入門教程

2011-09-02 14:29:20

jQuery Mobi主題

2014-12-31 10:54:44

DockerDocker Remo鏡像命令

2010-05-31 10:56:51

SVN服務(wù)器架設(shè)

2010-08-16 09:32:01

DivCSS

2010-08-16 10:10:11

DIV+CSS

2009-07-08 15:12:48

Java Servle

2014-05-26 15:35:55

Web組件Web Compone

2013-08-29 14:12:52

Storm分布式實(shí)時(shí)計(jì)算

2010-08-03 13:06:15

Flex Builde

2009-07-17 09:44:40

iBATIS教程

2018-03-22 14:59:13

Docker入門容器

2010-06-18 16:56:50

UML建模語言

2011-09-02 10:59:10

jQuery Mobi
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

北条麻妃亚洲一区| 国产日产欧美一区二区| 久久久黄色大片| 久久免费大视频| 欧美一区二区三区思思人| 大陆av在线播放| 懂色一区二区三区| 国产99一区视频免费| 国产成人午夜视频网址| 福利所第一导航| 国产亚洲一卡2卡3卡4卡新区| 3d成人动漫网站| 99色精品视频| 先锋影音在线资源站91| 日本一区二区三区免费乱视频| 亚洲永久在线观看| 波多野结衣视频网址| 午夜欧美精品| 日韩中文娱乐网| 一级特黄a大片免费| 亚洲男人在线| 在线观看视频一区二区欧美日韩| 91传媒免费视频| 91se在线| 欧美精彩视频一区二区三区| 国产成人精品日本亚洲11 | 精品久久久久久久久国产字幕| 亚洲 日韩 国产第一区| 五月婷在线视频| 国产精品1024| 成人av.网址在线网站| 人人妻人人爽人人澡人人精品| 激情欧美日韩| 欧美高清电影在线看| 免费成人美女女在线观看| 妖精视频一区二区三区免费观看| 日韩午夜小视频| 欧美大片久久久| 日韩毛片网站| 欧美色视频一区| 999精品视频在线| 性欧美18~19sex高清播放| 亚洲一级片在线观看| 熟女熟妇伦久久影院毛片一区二区| 91社区在线| 欧美高清一级片在线观看| 欧美性色黄大片人与善| 日本人妖在线| 久久久国产精品不卡| 欧美日韩另类丝袜其他| 青青青手机在线视频观看| 99re视频精品| 欧美极品视频一区二区三区| 天堂91在线| 99久久99久久精品免费看蜜桃| 国产成人精品一区二区三区福利 | 日本不卡网站| 欧美日韩久久久久| 国产97在线 | 亚洲| 黄视频免费在线看| 精品日本美女福利在线观看| 欧美 日韩 亚洲 一区| 国产三级伦理在线| 亚洲国产成人av| 日韩免费视频播放| av亚洲一区二区三区| 欧洲国内综合视频| 中文字幕亚洲影院| 1204国产成人精品视频| 亚洲精品456在线播放狼人| 黄色工厂在线观看| 国产一区二区三区网| 国产一区二区三区免费视频| 美女av免费看| 欧美.日韩.国产.一区.二区| 欧美黑人性猛交| 亚洲天堂日韩av| 日本视频免费一区| 亚洲精品免费一区二区三区| www.热久久| 99久久精品国产观看| 欧美人xxxxx| 欧美精品电影| 性久久久久久久久久久久| 日韩中文字幕在线视频观看| 成人在线免费| 日韩视频永久免费| 无码人妻aⅴ一区二区三区| 精品国产一区探花在线观看 | 国产自产v一区二区三区c| 91九色国产在线| 天堂中文在线观看视频| 欧美国产丝袜视频| 日韩视频 中文字幕| 在线毛片观看| 在线综合亚洲欧美在线视频| av2014天堂网| 97精品视频在线看| 97免费中文视频在线观看| 日本a级c片免费看三区| 国产福利一区二区三区视频| 欧美精品123| 日本在线视频中文有码| 色八戒一区二区三区| 性生交大片免费看l| 影视先锋久久| 欧美日韩国产成人在线| 正在播放木下凛凛xv99| 99re亚洲国产精品| 国产一级大片免费看| 超薄肉色丝袜脚交一区二区| 日韩欧美国产一区二区三区| 特级西西www444人体聚色 | 看av免费毛片手机播放 | 国产免费一区| 国产黄色在线网站| 91精品91久久久中77777| 性高潮免费视频| 国产高清一区| 国产精品扒开腿做爽爽爽视频 | 视频在线一区二区| 韩国av中文字幕| 国产91露脸合集magnet| 天天干天天操天天干天天操| 天天综合网站| 亚洲精品av在线播放| 欧美成人精品一区二区免费看片| 日韩精品乱码av一区二区| 国精产品一区二区| 免费看电影在线| 欧美一级夜夜爽| 天堂网中文在线观看| 蜜桃视频一区| 久久精品aaaaaa毛片| 韩国日本一区| 日韩欧美美女一区二区三区| 婷婷久久综合网| 奇米777欧美一区二区| 日本一区二区在线| 在线观看欧美日韩电影| 日韩电影视频免费| 日韩av在线播放观看| 国产69精品久久久久777| 成人手机视频在线| 国产不卡精品| 久热国产精品视频| a毛片在线免费观看| 18涩涩午夜精品.www| 色呦色呦色精品| jiujiure精品视频播放| 国产精品久久久久久久午夜| 国产福利电影在线| 欧美日韩一区二区三区免费看| 国产一区二区三区四区五区六区| 日日夜夜免费精品| 日韩高清三级| 91丨精品丨国产| 久久成人人人人精品欧| 亚洲精品无码久久久| 亚洲综合激情另类小说区| 少妇献身老头系列| 一本色道精品久久一区二区三区| 精品国产综合久久| 自拍视频在线看| 夜夜嗨av色一区二区不卡| 波多野结衣av无码| 欧美精品一区二区高清在线观看| 日日碰狠狠添天天爽超碰97| 久本草在线中文字幕亚洲| 久久久久久这里只有精品| 日本黄色三级视频| 精品国产999| 精品国产成人亚洲午夜福利| 久久精品国产精品亚洲红杏| 特色特色大片在线| jizz久久精品永久免费| 91国产一区在线| 国产二区视频在线观看| 3d成人h动漫网站入口| 国产午夜福利片| 国产亚洲1区2区3区| 91亚洲精品久久久蜜桃借种| 欧美日本一区二区高清播放视频| 国产一区二区三区色淫影院| 性感美女一区二区在线观看| 日韩中文有码在线视频| 天天综合网在线| 欧美性感一类影片在线播放| 四虎永久免费在线| 2020国产精品自拍| 亚洲高清视频免费| 影音先锋中文字幕一区| 欧美少妇一区| 日韩精品一区国产| 国产xxx69麻豆国语对白| 91小视频xxxx网站在线| 天天影视欧美综合在线观看| 韩国欧美亚洲国产| 9i精品一二三区| 精品精品欲导航| 亚洲精品国产欧美在线观看| 亚洲综合一二区| 91成人破解版| 成人综合婷婷国产精品久久 | 国产素人视频在线观看| 日韩成人中文电影| 国产美女裸体无遮挡免费视频| 亚洲一二三四在线观看| 久久午夜精品视频| av一区二区三区四区| 亚洲无在线观看| 丝袜亚洲另类欧美综合| 丁香六月激情网| 手机在线一区二区三区| 蜜桃麻豆www久久国产精品| 日韩高清在线观看一区二区| 国产成人精品综合| 日韩脚交footjobhd| 免费91在线视频| 92国产在线视频| 亚洲欧美中文在线视频| 免费观看黄色av| 欧美一区三区四区| 中文字幕一区二区三区四区免费看| 午夜国产精品影院在线观看| 污污的视频在线免费观看| 国产人伦精品一区二区| aaaaaav| 成人午夜电影网站| aaaaa黄色片| 国内精品视频666| 少妇网站在线观看| 日韩国产欧美三级| 欧美日韩中文在线视频| 日韩午夜精品| 成年人午夜免费视频| 亚洲成人原创| 91成人综合网| 国产精品hd| 国产精品日韩三级| 欧美精品国产一区二区| 在线观看污视频| 欧美三级小说| 久久精品xxx| 在线精品一区二区| 九九爱精品视频| 在线综合亚洲| 亚洲 高清 成人 动漫| 中文日韩欧美| 欧美日韩亚洲一| 天使萌一区二区三区免费观看| 免费在线观看毛片网站| 日韩国产精品久久久| 粉色视频免费看| 久久97超碰国产精品超碰| 亚洲一级片av| 国产成人av电影在线播放| 麻豆精品国产传媒| 成人h动漫精品一区二| 三叶草欧洲码在线| 久久久久国产精品麻豆ai换脸| 美女久久久久久久久久| 国产欧美日韩在线| 91人妻一区二区三区蜜臀| 一区二区三区波多野结衣在线观看| 欧美三级 欧美一级| 午夜日韩在线电影| jizz国产在线观看| 91国偷自产一区二区开放时间 | 国产精品一二三四五| 97中文字幕在线观看| 成人av电影在线| 免费在线观看你懂的| 国产精品免费视频一区| 中文字幕五月天| 黑人巨大精品欧美一区二区| 久久久久亚洲视频| 日韩一区二区在线播放| 天天综合天天色| 视频在线观看99| 欧产日产国产精品视频 | 91成人国产综合久久精品| 欧美一区二区三区免费视频| 国精产品乱码一区一区三区四区| 日韩国产精品一区| 麻豆视频在线免费观看| 性色av一区二区三区| 成人在线免费| 国产一级二级三级精品| 99re6这里只有精品| 久久国产精品网| 免费看欧美女人艹b| 国产清纯白嫩初高中在线观看性色| www精品美女久久久tv| 国产天堂av在线| 欧美午夜美女看片| 99国产在线播放| 亚洲一区二区黄| 国产丝袜视频在线播放| 91精品国产综合久久香蕉最新版 | 亚洲自拍电影| av在线com| 久久国产精品99久久人人澡| 漂亮人妻被黑人久久精品| 国产精品初高中害羞小美女文| 国产美女激情视频| 日韩精品一区二区三区四区| 番号在线播放| 97超碰国产精品女人人人爽| 中文字幕日韩亚洲| 日韩欧美在线一区二区| 伊人成人在线| 欧美国产日韩在线视频| 亚洲综合在线电影| 日韩免费av片在线观看| 天堂va欧美ⅴa亚洲va一国产| 日本一区精品| 亚洲啪啪91| 伊人av在线播放| 中文字幕一区二区三区在线不卡| 三级视频在线观看| 亚洲国产91色在线| 色爱综合区网| 成人情趣片在线观看免费| 国产日产精品_国产精品毛片| 久久精品国产sm调教网站演员| 国产麻豆精品久久一二三| 成年人免费视频播放| 在线免费不卡视频| 精品久久av| 日本亚洲欧美成人| 日韩欧美四区| 欧美v在线观看| 99久久99精品久久久久久| 国产网站在线看| 亚洲精品在线观看视频| 色呦呦在线视频| 亚洲综合精品一区二区| 欧美一区亚洲| 两女双腿交缠激烈磨豆腐| 亚洲欧美色一区| 国产福利视频导航| 欧美日韩成人黄色| 91精品国产自产精品男人的天堂| av日韩在线看| 成人免费毛片高清视频| 国产精品成人久久| 亚洲精品少妇网址| 网友自拍亚洲| 亚洲成人在线视频网站| 久久精品国产精品亚洲综合| 久久av红桃一区二区禁漫| 欧美日本精品一区二区三区| 免费大片黄在线观看视频网站| 成人福利网站在线观看11| 亚洲澳门在线| 精品无码av一区二区三区| 亚洲自拍偷拍图区| 熟妇人妻av无码一区二区三区| 91国内免费在线视频| 亚洲免费成人av在线| www.欧美日本| 国产精品不卡在线| www.久久成人| 欧美一区二区大胆人体摄影专业网站| 嫩草一区二区三区| 天天爽夜夜爽一区二区三区| 亚洲日本电影在线| 欧美特黄一级视频| 国产精品6699| 自拍视频亚洲| 爱爱的免费视频| 91.com视频| av小说在线播放| 四虎影院一区二区三区 | 最近高清中文在线字幕在线观看| 国产在线一区二区三区| 欧美性色综合| 手机看片福利视频| 日韩一级二级三级精品视频| 欧美大胆a人体大胆做受| 亚洲欧洲三级| 成人av电影在线观看| 中文字幕 人妻熟女| 麻豆乱码国产一区二区三区| 日本福利一区| 日韩av片免费观看| 欧美色播在线播放| 国产视频在线播放| 蜜桃传媒视频麻豆第一区免费观看| 久久国产综合精品| 国产成人无码一区二区三区在线| 在线视频一区二区| av日韩在线播放| 五月婷婷之综合激情| 亚洲国产美国国产综合一区二区| 电影av一区| 国产精品日韩一区二区三区| 捆绑调教一区二区三区| 日本在线观看视频网站|