Amazon EKS 中 EFS 持久性存儲(chǔ)


作者:SRE運(yùn)維博客
博客地址:https://www.cnsre.cn/
文章地址:https://www.cnsre.cn/posts/220110850573/
相關(guān)話題:https://www.cnsre.cn/tags/eks/


學(xué)習(xí)目標(biāo)

  • 在 EKS 中部署 Amazon EFS CSI 驅(qū)動(dòng)程序到
  • 驗(yàn)證 EFS 并驗(yàn)證它是否正常工作
  • 創(chuàng)建基于 EFS 的靜態(tài)候齿、動(dòng)態(tài)存儲(chǔ)

前提條件

創(chuàng)建 IAM 策略

創(chuàng)建 IAM 策略并將其分配給 IAM 角色亚皂。該策略將允許 Amazon EFS 驅(qū)動(dòng)程序與文件系統(tǒng)交互俱箱。

1.從 查看下方 IAM 策略文檔或者查看策略文檔

{{< notice warning "注意" >}}
推薦使用 查看 策略文檔灭必。獲取策略文檔狞谱。
{{< /notice >}}

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticfilesystem:DescribeAccessPoints",
        "elasticfilesystem:DescribeFileSystems"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "elasticfilesystem:CreateAccessPoint"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:RequestTag/efs.csi.aws.com/cluster": "true"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": "elasticfilesystem:DeleteAccessPoint",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/efs.csi.aws.com/cluster": "true"
        }
      }
    }
  ]
}

2.在IAM-策略 中創(chuàng)建策略

Identity and Access Management (IAM)中點(diǎn)擊 策略 然后在下一步中點(diǎn)擊 創(chuàng)建策略

sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

點(diǎn)擊 json 然后將 IAM 策略 填入乃摹, 然后點(diǎn)擊 下一步:標(biāo)簽
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

在下一步的標(biāo)簽中,可以根據(jù)自己的情況自行填寫(xiě),然后點(diǎn)擊 下一步:審核
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

名稱中填寫(xiě) AmazonEKS_EFS_CSI_Driver_Policy
{{< notice warning "注意" >}}
你可以將 AmazonEKS_EFS_CSI_Driver_Policy 更改為其他名稱跟衅,但如果更改孵睬,請(qǐng)確保在后續(xù)步驟中也做出相應(yīng)更改。
{{< /notice >}}
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

將 efs 策略 附件到 eks node 角色中

將我們剛才創(chuàng)建的 efs 策略 AmazonEKS_EFS_CSI_Driver_Policy 附加在 eks_node 的角色中与斤,確保eks node擁有efs的權(quán)限肪康。

{{< notice warning "注意" >}}
如果你之前創(chuàng)建了 eks 那么在你的角色中會(huì)有一個(gè)名為 eksctl-<eks-name>-nodegrou-NodeInstanceRole-xxxxxxxxx 的角色。
{{< /notice >}}

角色中搜索 node 然后點(diǎn)擊 eksctl-<eks-name>-nodegrou-NodeInstanceRole-xxxxxxxxx

sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

在角色中點(diǎn)擊 附加策略
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

搜索之前創(chuàng)建的 EFS 策略 也就是 AmazonEKS_EFS_CSI_Driver_Policy 然后選中撩穿,點(diǎn)擊最下方的附加策略磷支。
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

安裝 Amazon EFS 驅(qū)動(dòng)程序

使用 Helm 或 yaml 清單安裝 Amazon EFS CSI 驅(qū)動(dòng)程序。
這邊不詳細(xì)說(shuō) helm 部署方式主要介紹 yaml 清單部署
{{< notice warning "注意" >}}
一定要修改鏡像地址為你所在的地區(qū) Amazon EKS 附加組件容器鏡像地址
{{< /notice >}}

yaml 清單部署

{{< notice info "提示" >}}
因?yàn)間ithub網(wǎng)絡(luò)的問(wèn)題食寡。如果再執(zhí)行的時(shí)候部署沒(méi)有反應(yīng)雾狈,請(qǐng)終止運(yùn)行,多運(yùn)行幾次嘗試部署
{{< /notice >}}

kubectl apply -k "github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-1.3" 

輸出如下:

serviceaccount/efs-csi-controller-sa created
serviceaccount/efs-csi-node-sa created
clusterrole.rbac.authorization.k8s.io/efs-csi-external-provisioner-role created
clusterrolebinding.rbac.authorization.k8s.io/efs-csi-provisioner-binding created
deployment.apps/efs-csi-controller created
daemonset.apps/efs-csi-node created
csidriver.storage.k8s.io/efs.csi.aws.com created

檢查驅(qū)動(dòng)運(yùn)行是否正常

kubectl  get  pods -A|grep  efs
kube-system                    efs-csi-controller-56f6dc4c76-2lvqf               3/3     Running     0          3m32s
kube-system                    efs-csi-controller-56f6dc4c76-dxkwl               3/3     Running     0          3m32s
kube-system                    efs-csi-node-9ttxp                                3/3     Running     0          3m32s
kube-system                    efs-csi-node-hsn94                                3/3     Running     0          3m32s

{{< notice warning "注意" >}}
雖然這邊顯示運(yùn)行正常抵皱,但是還是要修改鏡像地址善榛。不然在創(chuàng)建pv,pvc以后在pod中掛載會(huì)出現(xiàn)錯(cuò)誤呻畸。(后面會(huì)單獨(dú)記錄這個(gè)錯(cuò)誤)
{{< /notice >}}

修改 efs-csi-node 驅(qū)動(dòng)

kubectl edit     daemonsets.apps  -n kube-system efs-csi-node

找到 aws-efs-csi-driver 驅(qū)動(dòng)所在的位置

sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

然后將鏡像修改為 918309763551.dkr.ecr.cn-north-1.amazonaws.com.cn/eks/aws-efs-csi-driver:v1.3.3

具體如下


sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

創(chuàng)建 Amazon EFS 文件系統(tǒng)

為 Amazon EKS 集群創(chuàng)建 Amazon EFS 文件系統(tǒng)

在控制臺(tái)中搜索 efs 點(diǎn)擊確認(rèn)然后進(jìn)入 EFS 控制臺(tái)

sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

在控制臺(tái)中點(diǎn)擊 創(chuàng)建文件系統(tǒng)
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

名稱: 根據(jù)自己的情況填寫(xiě)
vpc: 一定要?jiǎng)?chuàng)建在跟 eks 同一 VPC
可用性和持久性: 根據(jù)提示說(shuō)明創(chuàng)建自己所需要的
如果有更多需求可以點(diǎn)擊 自定義來(lái)設(shè)置更多 如:吞吐量移盆、加密、備份等策略
最后點(diǎn)擊 創(chuàng)建
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

創(chuàng)建入站規(guī)則

允許來(lái)自 EKS 集群 VPC 的 CIDR 的入站 NFS 流量
在剛剛創(chuàng)建的 EFS 中選擇 網(wǎng)絡(luò) --> 安全組 然后復(fù)制安全組的ID sg-152XXX

sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

EC2 中找到 網(wǎng)絡(luò)與安全 選擇 安全組 然后在搜索框中搜索 sg-152XXX 選中安全組伤为。并選擇 入站規(guī)則
sre運(yùn)維|Linux運(yùn)維|關(guān)鍵詞

在入站規(guī)則中允許來(lái) EKS 集群來(lái)訪問(wèn) NFS(2049)端口流量咒循。

部署示例應(yīng)用程序

{{< tabs 部署靜態(tài)供給 內(nèi)容部署動(dòng)態(tài)供給 >}}
{{< tab >}}

部署靜態(tài)供給

部署使用你創(chuàng)建的持久性卷的示例應(yīng)用程序

此過(guò)程利用來(lái)自 Amazon EFS Container Storage Interface (CSI) 驅(qū)動(dòng)程序 GitHub 存儲(chǔ)庫(kù)的多個(gè) Pod 讀寫(xiě)許多示例來(lái)使用靜態(tài)預(yù)置的 Amazon EFS 持久性卷,并使用 ReadWriteMany 訪問(wèn)模式從多個(gè) Pod 訪問(wèn)它绞愚。

  1. Amazon EFS Container Storage Interface (CSI) 驅(qū)動(dòng)程序 GitHub 存儲(chǔ)庫(kù)克隆到你的本地系統(tǒng)叙甸。

    git clone https://github.com/kubernetes-sigs/aws-efs-csi-driver.git
    
  2. 導(dǎo)航到 multiple_pods 示例目錄。

    cd aws-efs-csi-driver/examples/kubernetes/multiple_pods/
    
  3. 檢索你的 Amazon EFS 文件系統(tǒng) ID位衩。你可以在 Amazon EFS 控制臺(tái)中查找此信息裆蒸,或者使用以下 AWS CLI 命令。

    aws efs describe-file-systems --query "FileSystems[*].FileSystemId" --output text
    

    輸出:

    fs-<582a03f3>
    
  4. 編輯 specs/pv.yaml 文件并將 volumeHandle 值替換為你的 Amazon EFS 文件系統(tǒng) ID糖驴。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: efs-pv
    spec:
      capacity:
        storage: 5Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      storageClassName: efs-sc
      csi:
        driver: efs.csi.aws.com
        volumeHandle: fs-<582a03f3>
    

    注意

    由于 Amazon EFS 是彈性文件系統(tǒng)僚祷,因此它不會(huì)強(qiáng)制實(shí)施任何文件系統(tǒng)容量限制。在創(chuàng)建系統(tǒng)時(shí)贮缕,不使用持久性卷和持久性卷聲明中的實(shí)際存儲(chǔ)容量值辙谜。但是,由于存儲(chǔ)容量是 Kubernetes 中的必需字段跷睦,你必須指定有效值筷弦,例如,在此示例中為 5Gi。此值不會(huì)限制 Amazon EFS 文件系統(tǒng)的大小烂琴。

  5. specs 目錄部署 efs-sc 存儲(chǔ)類爹殊、efs-claim 持久性卷聲明以及 efs-pv 持久性卷。

    kubectl apply -f specs/pv.yaml
    kubectl apply -f specs/claim.yaml
    kubectl apply -f specs/storageclass.yaml
    
  6. 列出默認(rèn)命名空間中的持久性卷奸绷。查找具有 default/efs-claim 聲明的持久性卷梗夸。

    kubectl get pv -w
    

    輸出:

    NAME     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM               STORAGECLASS   REASON   AGE
    efs-pv   5Gi        RWX            Retain           Bound    default/efs-claim   efs-sc                  2m50s
    

    STATUS 變?yōu)?Bound 之前,請(qǐng)勿繼續(xù)執(zhí)行下一步号醉。

  7. specs 目錄部署 app1app2 示例應(yīng)用程序反症。

    kubectl apply -f specs/pod1.yaml
    kubectl apply -f specs/pod2.yaml
    
  8. 查看默認(rèn)命名空間中的 Pod 并等待 app1app2 Pod 的 STATUS 變?yōu)?Running 狀態(tài)。

    kubectl get pods --watch
    

    注意

    可能需要幾分鐘 Pod 才能達(dá)到 Running 狀態(tài)畔派。

  9. 描述持久性卷铅碍。

    kubectl describe pv efs-pv
    

    輸出:

    Name:            efs-pv
    Labels:          none
    Annotations:     kubectl.kubernetes.io/last-applied-configuration:
                       {"apiVersion":"v1","kind":"PersistentVolume","metadata":{"annotations":{},"name":"efs-pv"},"spec":{"accessModes":["ReadWriteMany"],"capaci...
                     pv.kubernetes.io/bound-by-controller: yes
    Finalizers:      [kubernetes.io/pv-protection]
    StorageClass:    efs-sc
    Status:          Bound
    Claim:           default/efs-claim
    Reclaim Policy:  Retain
    Access Modes:    RWX
    VolumeMode:      Filesystem
    Capacity:        5Gi
    Node Affinity:   none
    Message:
    Source:
        Type:              CSI (a Container Storage Interface (CSI) volume source)
        Driver:            efs.csi.aws.com
        VolumeHandle:      fs-582a03f3
        ReadOnly:          false
        VolumeAttributes:  none
    Events:                none
    

    Amazon EFS 文件系統(tǒng) ID 將作為 VolumeHandle 列出。

  10. 驗(yàn)證 app1 Pod 是否成功將數(shù)據(jù)寫(xiě)入卷线椰。

    kubectl exec -ti app1 -- tail /data/out1.txt
    

    輸出:

    ...
    Mon Mar 22 18:18:22 UTC 2021
    Mon Mar 22 18:18:27 UTC 2021
    Mon Mar 22 18:18:32 UTC 2021
    Mon Mar 22 18:18:37 UTC 2021
    ...
    
  11. 驗(yàn)證 app2 Pod 在卷中顯示的數(shù)據(jù)與 app1 寫(xiě)入卷的數(shù)據(jù)相同胞谈。

    kubectl exec -ti app2 -- tail /data/out1.txt
    

    輸出:

    ...
    Mon Mar 22 18:18:22 UTC 2021
    Mon Mar 22 18:18:27 UTC 2021
    Mon Mar 22 18:18:32 UTC 2021
    Mon Mar 22 18:18:37 UTC 2021
    ...
    
  12. 完成試驗(yàn)時(shí),請(qǐng)刪除此示例應(yīng)用程序的資源以進(jìn)行清理憨愉。

    kubectl delete -f specs/
    

    你還可以手動(dòng)刪除你創(chuàng)建的文件系統(tǒng)和安全組烦绳。
    {{< /tab >}}
    {{< tab >}}

部署動(dòng)態(tài)供給

Prerequisite

您必須使用 1.2x 版或更高版本的 Amazon EFS CSI 驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序需要 1.17 或更高版本的集群配紫。要更新集群径密,請(qǐng)參閱 更新集群

部署使用控制器所創(chuàng)建的持久性卷的示例應(yīng)用程序

此過(guò)程利用來(lái)自 Amazon EFS Container Storage Interface (CSI) 驅(qū)動(dòng)程序 GitHub 存儲(chǔ)庫(kù)的動(dòng)態(tài)預(yù)置示例躺孝。它通過(guò) Amazon EFS 接入點(diǎn)和 Pod 使用的持久性卷申領(lǐng) (PVC) 動(dòng)態(tài)創(chuàng)建一個(gè)持久性卷享扔。

  1. 為 EFS 創(chuàng)建存儲(chǔ)類。有關(guān)所有參數(shù)和配置選項(xiàng)括细,請(qǐng)參閱 GitHub 上的 Amazon EFS CSI 驅(qū)動(dòng)程序伪很。

    1. 下載 Amazon EFS 的 StorageClass 清單戚啥。

      curl -o storageclass.yaml https://raw.githubusercontent.com/kubernetes-sigs/aws-efs-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/storageclass.yaml
      
    2. 編輯相應(yīng)文件奋单,將 fileSystemId 的值替換為您的文件系統(tǒng) ID。

    3. 部署存儲(chǔ)類猫十。

      kubectl apply -f storageclass.yaml
      
  2. 通過(guò)部署利用 PersistentVolumeClaim 的 Pod 來(lái)測(cè)試自動(dòng)預(yù)置:

    1. 下載一個(gè)清單览濒,該清單將部署一個(gè) Pod 和一個(gè) PersistentVolumeClaim。

      curl -o pod.yaml https://raw.githubusercontent.com/kubernetes-sigs/aws-efs-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/pod.yaml
      
    2. 使用示例應(yīng)用程序和 Pod 使用的 PersistentVolumeClaim 來(lái)部署 Pod拖云。

      kubectl apply -f pod.yaml
      
  3. 確定運(yùn)行控制器的 Pod 的名稱贷笛。

    kubectl get pods -n kube-system | grep efs-csi-controller
    

    輸出

    efs-csi-controller-74ccf9f566-q5989   3/3     Running   0          40m
    efs-csi-controller-74ccf9f566-wswg9   3/3     Running   0          40m
    
  4. 幾秒鐘后,您可以觀察到控制器開(kāi)始接受更改(已編輯宙项,旨在提高可讀性)乏苦。將 74ccf9f566-q5989 替換成來(lái)自上一個(gè)命令輸出中的一個(gè) Pod 的值。

    kubectl logs efs-csi-controller-74ccf9f566-q5989 \
        -n kube-system \
        -c csi-provisioner \
        --tail 10
    

    輸出

    ...
    1 controller.go:737] successfully created PV pvc-5983ffec-96cf-40c1-9cd6-e5686ca84eca for PVC efs-claim and csi volume name fs-95bcec92::fsap-02a88145b865d3a87
    

    如果未看到上一個(gè)輸出血淌,請(qǐng)使用其他控制器 Pod 之一運(yùn)行上一個(gè)命令漾月。

  5. 確認(rèn)已創(chuàng)建狀態(tài)為 BoundPersistentVolumeClaim 的持久性卷:

    kubectl get pv
    

    輸出

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM               STORAGECLASS   REASON   AGE
    pvc-5983ffec-96cf-40c1-9cd6-e5686ca84eca   20Gi       RWX            Delete           Bound    default/efs-claim   efs-sc                  7m57s
    
  6. 查看有關(guān)所創(chuàng)建的 PersistentVolumeClaim 的詳細(xì)信息亮元。

    kubectl get pvc
    

    輸出

    NAME        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    efs-claim   Bound    pvc-5983ffec-96cf-40c1-9cd6-e5686ca84eca   20Gi       RWX            efs-sc         9m7s
    
  7. 查看示例應(yīng)用程序 Pod 的狀態(tài)盯孙。

    kubectl get pods -o wide
    

    輸出

    NAME          READY   STATUS    RESTARTS   AGE   IP               NODE                                           NOMINATED NODE   READINESS GATES
    efs-example   1/1     Running   0          10m   192.168.78.156   ip-192-168-73-191.us-west-2.compute.internal   <none>           <none>
    

    確認(rèn)數(shù)據(jù)已寫(xiě)入到卷虚倒。

    kubectl exec efs-app -- bash -c "cat data/out"
    

    輸出

    ...
    Tue Mar 23 14:29:16 UTC 2021
    Tue Mar 23 14:29:21 UTC 2021
    Tue Mar 23 14:29:26 UTC 2021
    Tue Mar 23 14:29:31 UTC 2021
    ...
    
  8. (可選)終止運(yùn)行 Pod 的 Amazon EKS 節(jié)點(diǎn)并等待重新安排運(yùn)行 Pod沛贪〉票洌或者敬肚,您也可以刪除 Pod 并重新部署它革娄。再次完成步驟 7倾贰,確認(rèn)輸出包含先前的輸出。
    {{< /tab >}}
    {{< /tabs >}}


作者:SRE運(yùn)維博客
博客地址:https://www.cnsre.cn/
文章地址:https://www.cnsre.cn/posts/220110850573/
相關(guān)話題:https://www.cnsre.cn/tags/eks/


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拦惋,一起剝皮案震驚了整個(gè)濱河市匆浙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厕妖,老刑警劉巖吞彤,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異叹放,居然都是意外死亡饰恕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)井仰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)埋嵌,“玉大人,你說(shuō)我怎么就攤上這事俱恶”⑧拢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵合是,是天一觀的道長(zhǎng)了罪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)聪全,這世上最難降的妖魔是什么泊藕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮难礼,結(jié)果婚禮上娃圆,老公的妹妹穿的比我還像新娘。我一直安慰自己蛾茉,他們只是感情好讼呢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著谦炬,像睡著了一般悦屏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天础爬,我揣著相機(jī)與錄音散劫,去河邊找鬼。 笑死幕帆,一個(gè)胖子當(dāng)著我的面吹牛获搏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播失乾,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼常熙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了碱茁?” 一聲冷哼從身側(cè)響起裸卫,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纽竣,沒(méi)想到半個(gè)月后墓贿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜓氨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年聋袋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穴吹。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡幽勒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出港令,到底是詐尸還是另有隱情啥容,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布顷霹,位于F島的核電站咪惠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淋淀。R本人自食惡果不足惜遥昧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绅喉。 院中可真熱鬧渠鸽,春花似錦叫乌、人聲如沸柴罐。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)革屠。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間似芝,已是汗流浹背那婉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留党瓮,地道東北人详炬。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像寞奸,于是被迫代替她去往敵國(guó)和親呛谜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容