精品欧美一区二区三区在线观看 _久久久久国色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)

久久365资源| heyzo一区| 国产一区二区三区四区五区入口| 美女撒尿一区二区三区| 国产老熟女伦老熟妇露脸| 天堂√中文最新版在线| 亚洲国产精品精华液2区45| 91久久久久久久一区二区| 精品无码人妻一区二区三| 神马电影久久| 欧美草草影院在线视频| 亚洲成熟丰满熟妇高潮xxxxx| 麻豆最新免费在线视频| 不卡电影一区二区三区| 国产精品入口日韩视频大尺度 | 久久综合狠狠综合久久激情 | 97久久精品人人爽人人爽蜜臀| 国产aⅴ夜夜欢一区二区三区| 777777国产7777777| 日韩最新在线| 日韩欧美的一区二区| 久久综合久久色| 成人影音在线| 亚洲日本护士毛茸茸| 欧美成人综合一区| 国产小视频一区| 韩国欧美一区二区| 国产精品久久久久久搜索| 国产精品a成v人在线播放| 99精品一区| 亚洲一区二区久久久| a天堂视频在线观看| 免费精品一区| 91精品国产品国语在线不卡| 国产精品亚洲二区在线观看| 99riav视频在线观看| 亚洲免费电影在线| 中文网丁香综合网| 亚洲天天影视| 国产精品视频第一区| 欧美日韩电影一区二区| 国产激情视频在线播放 | 国产精品自拍视频| 天天爱天天做天天爽| 在线亚洲免费| 97热精品视频官网| 日韩免费黄色片| 亚洲成人原创| 97在线视频免费观看| 欧美成人精品激情在线视频| 亚洲精品一区二区妖精| 中文字幕欧美日韩| 久久久久久国产免费a片| 校园春色另类视频| 亚洲男人的天堂在线| 亚洲熟女乱综合一区二区三区| 国产毛片精品| 精品无人区乱码1区2区3区在线| 中国黄色片视频| 大奶在线精品| 亚洲黄页视频免费观看| 日本一卡二卡在线| 尤物tv在线精品| 国产午夜精品一区二区三区| 成人在线一级片| 不卡中文一二三区| 爱福利视频一区| 国产黄色的视频| 亚洲午夜电影| 2019最新中文字幕| www.色国产| 麻豆精品久久精品色综合| 国产在线拍揄自揄视频不卡99| 一区二区日韩在线观看| 国产精品一区二区黑丝| 国产精品欧美久久| 亚洲av片在线观看| 久久奇米777| 亚洲一区影院| 人交獸av完整版在线观看| 亚洲6080在线| 亚洲精品中文字幕无码蜜桃| 婷婷激情成人| 亚洲国产一区二区三区四区| 丰满少妇一区二区| 日韩毛片视频| 欧美激情国产精品| 久久午夜免费视频| 久久99国产精品久久99| 国产精品久久九九| 国产综合在线观看| 亚洲男女毛片无遮挡| 日韩精品―中文字幕| 成人av集中营| 欧美电影精品一区二区| 女人又爽又黄免费女仆| 亚洲天天影视网| 国产91成人在在线播放| 国产精品久久久久久久久久久久久久久久 | 亚洲AV无码精品自拍| 99精品黄色片免费大全| 亚洲午夜精品福利| 欧美久久天堂| 91.麻豆视频| 久久精品视频18| 欧美88av| 国产精品久久久久av| a网站在线观看| 欧美国产精品一区二区三区| www.一区二区.com| 成人影院在线免费观看| 亚洲精品久久7777777| 亚洲色图 激情小说| 亚洲精品精选| 亚洲伊人第一页| 国产高清在线| 欧美日韩国内自拍| 伊人精品视频在线观看| 精品国产成人| 欧美在线视频a| а√天堂资源在线| 中文字幕一区二区三区不卡| 一本大道熟女人妻中文字幕在线 | 国产视频在线观看一区| 一区二区三区视频在线观看视频| 精品久久久在线观看| 精品日韩久久久| 日韩欧美小视频| 亚洲v精品v日韩v欧美v专区| 天天干天天玩天天操| 亚洲v天堂v手机在线| 欧美大胆在线视频| 在线视频 中文字幕| 久久婷婷国产综合国色天香| 青春草国产视频| 精品视频一二| www.99久久热国产日韩欧美.com| 国产精品久久久久久99| 粉嫩av一区二区三区| 天天做天天爱天天高潮| 国产精品美女午夜爽爽| 亚洲视频专区在线| 台湾佬中文在线| 久久综合av免费| 日韩av片在线看| 欧美电影免费网站| 国模叶桐国产精品一区| 国产福利免费视频| 亚洲欧美日韩人成在线播放| 思思久久精品视频| 99成人在线视频| 国产日韩欧美自拍| av在线收看| 欧美色综合网站| 国产wwwwxxxx| 精品一区二区综合| 在线视频91| 国产一区二区视频在线看| 美女精品久久久| 亚洲国产精彩视频| 亚洲va国产va欧美va观看| 国产黑丝在线观看| 久久精品成人| 翔田千里亚洲一二三区| 九九热这里有精品| 成人97在线观看视频| 国产免费叼嘿网站免费| 一区二区三区免费在线观看| 国产吃瓜黑料一区二区| 国产欧美一级| 神马影院午夜我不卡| 久久亚洲精品人成综合网| 久久精品一本久久99精品| a天堂视频在线| 婷婷成人激情在线网| xxxx日本黄色| 精品制服美女丁香| 大胆欧美熟妇xx| 欧洲亚洲视频| 国产精品美女午夜av| 国产三区在线观看| 精品国产乱码久久久久久浪潮| 日本天堂在线视频| 久久九九久久九九| 深爱五月综合网| 国产精品婷婷| 在线观看一区二区三区三州| 中文字幕区一区二区三| 欧美一级在线亚洲天堂| 欧美高清视频| 亚洲精品久久久久久久久久久久久| 亚洲欧美自拍视频| 亚洲欧洲av另类| 视频免费在线观看| 精品一区二区三区久久久| 波多野结衣之无限发射| 日韩精品不卡一区二区| 国产一区二区三区高清视频| 99精品在免费线偷拍| 久久99亚洲精品| 国产综合视频一区二区三区免费| 日韩一区二区在线观看| 探花视频在线观看| 亚洲精品视频自拍| 一级片视频免费看| 成人黄色一级视频| 在线免费观看视频黄| 亚洲大胆在线| 亚洲欧美日韩国产yyy| 久久影院资源站| 成人午夜一级二级三级| 成人美女大片| 97视频在线观看网址| a级毛片免费观看在线| 亚洲欧美日韩爽爽影院| 丰满人妻av一区二区三区| 欧美老人xxxx18| 日本免费在线观看视频| 亚洲超碰精品一区二区| 极品魔鬼身材女神啪啪精品| 久久综合一区二区| 精品无码人妻少妇久久久久久| 久草这里只有精品视频| 久久久免费视频网站| 欧美日韩国产探花| 91免费视频黄| 91亚洲国产| 婷婷精品国产一区二区三区日韩 | 一区二区国产在线观看| 午夜啪啪免费视频| 欧美日韩在线二区| 欧美一级爽aaaaa大片| 国产欧美三级电影| 97超碰在线播放| 蜜桃精品视频| 91九色综合久久| 青青草国产一区二区三区| 欧日韩在线观看| 亚洲精品mv| 欧美一级在线播放| 中文在线а√在线8| 亚州欧美日韩中文视频| av电影在线地址| 久久久噜噜噜久久| 久草在线资源站资源站| 久久久久成人精品| 麻豆蜜桃在线| 欧美极品在线播放| 91九色在线播放| 午夜精品理论片| 美女的胸无遮挡在线观看| 97福利一区二区| 亚洲黄色网址| 国产成人久久久| 97久久网站| 91精品在线观| 亚洲精品黑牛一区二区三区| 91黄色精品| 欧美wwwwww| 欧美午夜精品久久久久免费视| 精品在线手机视频| 日韩一区不卡| 亚洲一区在线| 日韩a级在线观看| 亚洲欧美激情诱惑| www.超碰com| 极品销魂美女一区二区三区| 三日本三级少妇三级99| 国产1区2区3区精品美女| 制服丝袜第一页在线观看| xfplay精品久久| www.黄色在线| 亚洲视频一区二区在线观看| 免费无码毛片一区二区app| 亚洲超碰精品一区二区| 潘金莲一级淫片aaaaaa播放| 精品视频一区二区三区免费| 国产精品无码专区av免费播放| 欧美成人欧美edvon| 亚州男人的天堂| 中文字幕视频在线免费欧美日韩综合在线看| 日本三级视频在线播放| 欧美丰满少妇xxxxx| 色在线中文字幕| 91精品国产综合久久香蕉的用户体验| 欧美视频精品全部免费观看| 激情小说综合区| 欧美电影一区| 成人免费视频91| 人人超碰91尤物精品国产| 欧美69精品久久久久久不卡| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲国产精品一区二区三区| 国产在线资源| 久久99精品久久久久久噜噜| 怡红院成人在线| 北条麻妃高清一区| 激情五月综合| 国产日韩av网站| 美国毛片一区二区三区| 亚洲激情 欧美| 成人免费一区二区三区视频 | 好吊视频一区二区三区四区| 欧美日韩亚洲一| 国产一区二区三区在线观看精品| 亚洲午夜久久久久久久久红桃 | 亚洲欧美国产一区二区| 99精品免费网| 一级 黄 色 片一| 国产日本亚洲高清| 亚洲天堂日韩av| 欧美一激情一区二区三区| 久草在线青青草| 69**夜色精品国产69乱| 久久天堂久久| 亚洲春色在线| 久久狠狠婷婷| 97人妻精品一区二区三区免| 亚洲欧美偷拍卡通变态| 波多野结衣一区二区三区在线| 日韩av在线精品| 青春草免费在线视频| 国产中文字幕日韩| 欧洲毛片在线视频免费观看| 精品视频免费在线播放| 国产成人激情av| 中文字幕av播放| 欧美精品xxxxbbbb| 在线看av的网址| 国产精品久久97| 中国av一区| 成人羞羞国产免费网站| 99热这里都是精品| 中文字幕一区二区三区手机版| 91精品国产综合久久久久久久| 韩日视频在线| 国产ts一区二区| 九九热精品视频在线观看| 国产精品又粗又长| 不卡av电影在线播放| 天天操天天射天天爽| 亚洲第一精品福利| heyzo中文字幕在线| 国产高清一区视频| 在线观看视频免费一区二区三区| 特种兵之深入敌后| 夜夜嗨av一区二区三区中文字幕| 国产老女人乱淫免费| 蜜臀久久99精品久久久久久宅男 | 成人免费视频网站入口::| 欧美群妇大交群中文字幕| 九色porny在线| 91手机视频在线观看| 亚洲情侣在线| 91欧美一区二区三区| 一区二区三区中文字幕电影 | 精品福利在线| www.黄色网址.com| 国产成人小视频| 亚洲精品在线观看av| 亚洲成人网久久久| 亚洲精品88| 亚洲成人一区二区三区| 精一区二区三区| 精品一区二区三区人妻| 亚洲精品电影网在线观看| 美女写真久久影院| 亚洲一区二区三区加勒比| 国产尤物一区二区在线| 欧美成人免费观看视频| 亚洲加勒比久久88色综合| 丁香六月综合| 爱爱爱视频网站| 成人午夜又粗又硬又大| 久久精品视频7| 俺也去精品视频在线观看| 涩涩屋成人免费视频软件| 黄网站欧美内射| 国产欧美日本一区视频| 国产丝袜视频在线观看| 久久全球大尺度高清视频| 免费国产自久久久久三四区久久| www.国产视频.com| 亚洲电影一区二区| 东凛在线观看| 99久久精品免费看国产四区| 久久av最新网址| www.xxxx日本| 日韩久久免费电影| 99久久999| 欧美 国产 日本| 一区二区三区在线免费视频| 性感美女视频一二三| 91久久久久久| 久久婷婷激情| 久久香蕉精品视频| 日韩在线免费视频观看| 久久久久高潮毛片免费全部播放| 深夜黄色小视频| 午夜欧美一区二区三区在线播放|