暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用 K8s 部署Aerospike 的全闪存模式(三)

Aerospike服务号 2023-04-25
556


前两篇我们讲了基于Aerospike部署的K8s集群准备以及配置K8s的持久卷块存储/文件存储,第三篇我们就要在部署好的K8s环境里安装Aerospike。


安装 Aerospike - 块和文件系统






Aerospike Kubernetes Operator

安装 AKO(Aerospike Kubernetes Operator)并设置数据库集群。有关如何执行此操作的详细信息,请参阅以下文档。


    https://docs.aerospike.com/cloud/kubernetes/operator/install-operator-operatorhub


    可以通过检查 operators 命名空间中的 pod 来确认安装是否成功。

      kubectl get pods -n operators
      NAME                                                     READY   STATUS    RESTARTS   AGE
      aerospike-operator-controller-manager-7946df5dd9-lmqvt   2/2     Running   0          2m44s
      aerospike-operator-controller-manager-7946df5dd9-tg4sh   2/2     Running   0          2m44s


      创建 Aerospike 数据库集群

      在此我们创建一个 Aerospike 数据库集群。有关完整详细信息,请参阅以下文档。


        https://docs.aerospike.com/cloud/kubernetes/operator/create-cluster-kubectl#prepare-the-aerospike-cluster-configuration


        基本步骤如下:

        获取代码

        克隆 Aerospike Kubernetes Git 存储库并确保将功能/许可证密钥文件(如果有)复制到以下目录 - config/samples/secrets。

          git clone https://github.com/aerospike/aerospike-kubernetes-operator.git
          cd aerospike-kubernetes-operator/

          初始化存储

            kubectl apply -f config/samples/storage/eks_ssd_storage_class.yaml

            从 6.0 版本开始,对于每个块存储设备,擦除磁盘以避免严重错误:

              Oct 26 2022 14:05:53 GMT: CRITICAL (drv_ssd): (drv_ssd.c:2216) test/dev/xvdf: not an Aerospike device but not erased - check config or erase device

              使用以下命令擦除每个主机上的设备。请记住,在 2 个节点上,设备将是 nvme1n1p2(仅限演示)。

                export diskPart=/dev/nvme1n1
                sudo blkdiscard ${diskPart} && sudo blkdiscard -z --length 8MiB ${diskPart} &

                添加Secrets

                Secrets,对于那些不熟悉这个术语的人来说,允许数据被引入到 Kubernetes 环境中,同时确保它不能被读取。示例可能包括私人 PKI 密钥或密码。

                  kubectl  -n aerospike create secret generic aerospike-secret --from-file=config/samples/secrets
                  kubectl  -n aerospike create secret generic auth-secret --from-literal=password='admin123'

                  创建 Aerospike 集群

                  在我们创建集群之前,删除我们之前创建的 httpd Pod 和 PersistentVolumeClaim:

                    kubectl delete -f pod-fs.yaml
                    kubectl delete pvc fs-1g-pvc

                    确保所有 PersistentVolume(s) 的状态都为“可用”:

                      kubectl get pv -n aerospike
                      NAME                CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
                      local-pv-684418fc   62Gi       RWO            Delete           Available           fast-ssd                4h13m
                      local-pv-9dbcb710   7152Mi     RWO            Delete           Available           fs-ssd                  5m42s
                      local-pv-aa49ff2c   69Gi       RWO            Delete           Available           fast-ssd                4h13m
                      local-pv-ad278bd7   69Gi       RWO            Delete           Available           fast-ssd                4h13m

                      如果某些 PV 不处于“可用”状态,请运行以下补丁以释放 PersistentVolumeClaim (PVC)。

                        kubectl get pv -o=json|jq .items[].metadata.name -r | grep ^local | while read -r line; do kubectl patch pv $line -p '{"spec":{"claimRef": null}}';done

                        使用文件 all_flash_cluster_cr.yaml 将 Aerospike 数据库配置为使用全闪存配置,这样我们可以将块和文件系统存储作为一个工作单元来使用。 

                        • storageClass: ssd ( AWS gps ext4 Filesystem Dynamic Storage )
                        • storageClass: fast-ssd ( LocalStaticProvisioner Block Storage )
                        • storageClass: fs-ssd ( LocalStaticProvisioner XFS filesystem )


                        部署 Aerospike 数据库

                          kubectl create -f all_flash_cluster_cr.yaml
                          kubectl get po -n aerospike -w


                          使用Benchmark测试工具插入测试数据

                          Aerospike Benchmark 工具测量 Aerospike 集群的性能。它可以通过可配置的记录结构、各种访问模式和 UDF 调用来模拟真实世界的工作负载。使用基准测试工具可以轻松插入一些数据。


                          登录到一个节点(应该有一个文件系统 - 检查......)

                            kubectl exec -it aerocluster-0-0 -n aerospike -- bash

                            使用最简单的命令添加一些数据

                              asbench -Uadmin -Padmin123

                              要验证我们是否成功添加了一些数据,请使用 aql 工具,登录并运行查询

                                aql -Uadmin -Padmin123
                                select * from test

                                清除






                                警告:如果绕过此步骤并删除 EKS 集群,则创建的所有持久卷都将保留。


                                删除数据库集群

                                这是重要的一步,在使用云存储类时应始终运行。

                                  kubectl delete -f all_flash_cluster_cr.yaml

                                  删除 EKS 集群

                                  我们现在可以删除 EKS 集群:

                                    eksctl delete cluster -f my-cluster.yaml   Ready    <none>   63m   v1.22.12-eks-ba74326   192.168.7.181    3.87.204.50    Amazon Linux 2   5.4.209-116.367.amzn2.x86_64   docker://20.10.17


                                    结论






                                    至此已经可以看到,只需很少的努力,我们就可以轻松地启动一个部署,使用本地磁盘进行块存储,并结合文件系统存储。我们还确认 Pod 被自动调度到正确的节点。我们还了解到,通过使用 Kubernetes 污点,我们可以有效地保留节点以供特定使用。还可以先睹为快 Aerospike - 全闪存用例。最后一点,我们只查看了 LocalStaticProvisioner 的 Kubernetes 特别兴趣小组 (SIG) 版本。可以考虑下面列出的 Rancher 版本。

                                      Review Rancher https://github.com/rancher/local-path-provisioner

                                      下期精彩,敬请期待


                                      关于Aerospike

                                      1

                                      Aerospike实时数据平台:使组织能够面对数十亿笔交易规模时实时采取行动,同时将用户服务器占用空间减少多达80%。

                                      2

                                      Aerospike多云平台:以可预测的亚毫秒级性能为实时应用程序提供支持,数据规模高达PB级,正常运行时间为5个9,并提供全球分布的、强一致的数据存储能力。

                                      3

                                      基于Aerospike实时数据平台构建的应用程序:可用于打击欺诈、面向在线电子商务进行商品推荐、支持全球数字支付等,并为数千万客户提供超个性化的用户体验。

                                      公司总部位于加利福尼亚州山景城,在伦敦、班加罗尔和特拉维夫设有办事处,目前已在中国开展业务。

                                      猛戳左下角“阅读原文”,既可以下载社区版本,也可以随时提问。欢迎添加小编微信:Aerospike_China,帮你解决更多问题。

                                      文章转载自Aerospike服务号,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                      评论