0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用示例-基于百度BCC GR1实例部署Elastic Stack

安晟培半导体 来源:安晟培半导体 2023-01-11 09:24 次阅读

简 介

百度智能云正式发布了新型 BCC 实例产品 Gr1。不同于其他云服务器,Gr1 所搭载的 Ampere Altra 云原生处理器基于 Arm 指令集架构,采用单线程内核设计,云实例的每一个 vCPU 都是独立的物理核,独享 ALU(逻辑计算单元),缓存等关键物理资源,可以实现稳定可预测的性能。

目前 Gr1 实例已经已支持 CentOS7.9、CentOS7.6、Ubuntu22.04、Ubuntu20.04 等常用 Linux 公共镜像。Gr1 实例产品主要面向常见的云原生应用负载,如开源数据库、Java 应用程序、视频编解码、AI 推理(数据治理)、大数据分析、DevOps、Web 服务应用等。为了让客户更轻松地部署云原生的工作负载,作为百度智能云容器化工作负载的关键基础设施 Cloud Container Engine(CCE)目前已提供对 Gr1 实例的支持。

在本示例中,我们将演示如何在基于百度智能云 Gr1 实例的 CCE 集群上部署 ELK 软件栈,以从 Kubernetes 集群内的 Pod 收集日志。

传统的 ELK 软件栈由 Elasticsearch、Logstash 和 Kibana 组成。从 2015 年起,轻量级的数据传输器 Beats 家族开始非正式的成为 ELK 中的一个组件。ELK 软件栈为开发人员提供了端到端的能力来聚合应用程序和系统日志、分析这些日志以及可视化洞察以进行监控、故障排除和分析。

准备工作...

在开始前, 我们假设您已做了如下准备

您已经有一个百度智能云账户

您的百度智能云账户具有创建 Arm Kubernetes CCE 容器引擎的权限。

您本地操作终端已安装 kubectl 工具。

如果上列准备已经就绪,我们就可以进行下个步骤 —— 在部署 ELK 之前,先创建基于百度 Gr1 实例的 Arm 架构容器引擎。

首先创建基于 Gr1 的容器引擎

除了在 BCC 上发布 Arm 实例外,百度智能云还提供使用基于 Ampere Altra 的 Gr1 实例在 CCE上运行容器化的 Arm 工作负载。数个百度智能云地区和可用区现在可使用于基于 Gr1 实例创建的 CCE 集群:北京(D 区域, E 区域), 广州(C 区域)和苏州(D 区域)。

在本文中,我们将在百度智能云的北京可用区 D 创建一个由 3 个 master 节点,以及 3 个 worker节点组成的集群。

首先,从控制台进入 CCE 容器引擎服务页面,点击“创建集群”按钮

25911a70-912a-11ed-bfe3-dac502259ad0.png

在集群创建导览页面中,选择创建 Arm Kubernetes 集群

25b98a0a-912a-11ed-bfe3-dac502259ad0.png

按集群创建向导选择 3 副本 Master 配置

25d44836-912a-11ed-bfe3-dac502259ad0.png

并添加 3 台 Gr1.c4m16 实例作为 Master 节点:

25f7e30e-912a-11ed-bfe3-dac502259ad0.png

类似的,在添加 Worker 节点的步骤中,选择添加 3 台 Gr1.c8m32 实例作为 Worker 节点:

2628f692-912a-11ed-bfe3-dac502259ad0.png

点击确认完成,CCE 开始启动集群创建。整个过程需要数分钟时间。待集群状态变成运行中后,即可下载集群凭证:

26460a98-912a-11ed-bfe3-dac502259ad0.png

将下载后的凭证存放在 kubectl 的默认配置路径:

$ mv kubectl.conf ~/.kube/config

使用 kubectl 查询集群状态,当集群的 Master 和 worker 节点都显示 Ready 状态时,说明您的 Arm 集群已经准备就绪,并且可以通过 kubectl 进行管理:

$ kubectl get nodes
NAME      STATUS  ROLES  AGE  VERSION
192.168.64.10  Ready  master  1d1h  v1.20.8
192.168.64.11  Ready    1d1h  v1.20.8
192.168.64.12  Ready    1d1h  v1.20.8
192.168.64.13  Ready    1d1h  v1.20.8
192.168.64.8  Ready  master  1d1h  v1.20.8
192.168.64.9  Ready  master  1d1h  v1.20.8

开始部署 ELK!

1预拉取容器镜像

为了加速部署过程中容器镜像拉取的速度,我们先通过镜像的容器仓库将部署过程中使用到的容器镜像拉取到 Worker 节点上并重新打上 tag:

$ docker pull ampdemo/eck-operator:2.4.0
$ docker tag ampdemo/eck-operator:2.4.0 docker.elastic.co/eck/eck-operator:2.4.0
$ docker pull ampdemo/elasticsearch:8.4.1
$ docker tag ampdemo/elasticsearch:8.4.1 docker.elastic.co/elasticsearch/elasticsearch:8.4.1
$ docker pull ampdemo/filebeat:8.4.1
$ docker tag ampdemo/filebeat:8.4.1 docker.elastic.co/beats/filebeat:8.4.1
$ docker pull ampdemo/kibana:8.4.1
$ docker tag ampdemo/kibana:8.4.1 docker.elastic.co/kibana/kibana:8.4.1

2Operator 的部署

从 Elastic 网站下载定制并安装资源定义和 RBAC规则:

$ kubectl create -f https://download.elastic.co/downloads/eck/2.4.0/crds.yaml
$ kubectl apply -f https://download.elastic.co/downloads/eck/2.4.0/operator.yaml

稍等片刻后可以看到 elastic-operator Pod 已经拉起并进入运行状态:

$ kubectl get pods -n elastic-system
NAME         READY  STATUS  RESTARTS   AGE
elastic-operator-0  1/1   Running  0       2m

3创建持久卷

在本例中,ELK 集群将会申请 1GiB 的持久卷空间用作数据存储。因此,我们制备了 20G 的持久卷供 ELK 集群及将来的扩容使用。

$ cat <

检查持久卷已成功创建:

$ kubectl get pv
NAME         CAPACITY  ACCESS MODES  RECLAIM POLICY  STATUS   CLAIM  STORAGECLASS  REASON  AGE
elasticsearch-data  20Gi    RWO      Delete      Available                  5s

4Elasticsearch 节点的部署

当 Operator 和持久卷已经就绪,我们可以通过如下命令开始 Elasticsearch 的部署:

$ cat <

Elasticsearch 节点会在数分钟内进入 green 和 Ready 状态:

$ kubectl get elasticsearch
NAME     HEALTH  NODES   VERSION  PHASE     AGE
quickstart  green   1     8.4.1   Ready     1m

5Filebeat 的部署

当提到 ELK,被广泛熟知的是 Elasticsearch, Logstash 和 Kibana 的集合。Beat 是 ELK 家族的新成员,它是一个轻量级的开源数据传送器。在本范例中,我们将使用 filebeat 来收集每个 Kubernetes 节点上的容器日志。执行如下命令将 Filebeat 以 DaemonSet 部署在每台节点,并将日志以数据流的形式送往 Elasticsearch:

$ cat <

同样的, 稍作等待 beat 将进入 green 的健康状态:

$ kubectl get beat
NAME         HEALTH  AVAILABLE  EXPECTED  TYPE    VERSION  AGE
quickstart      green  3      3     filebeat  8.4.1   2m

6Kibana 的部署

在完成 Elasticsearch 的部署后,我们需要 Kibana 来搜索,观察和分析数据。使用如下命令部署与当前 Elasticsearch 集群关联的 Kibana 实例:

$ cat <

等待数分钟后,Kibana 进入 green 健康状态:

$ kubectl get kibana
NAME     HEALTH  NODES  VERSION  AGE
quickstart  green  1    8.4.1   2m

分配一个公网 IP 以便从集群外访问 Kibana:

$ kubectl expose deployment quickstart-kb 
  --type=LoadBalancer 
  --port 5601 
--target-port 5601
service/quickstart-kb exposed

CCE 将会准备一个 LoadBalancer 服务对象并将 Kubernetes 集群外部的访问重定向到后端 Kibana 的 Pod:

$ kubectl get services
NAME             TYPE      CLUSTER-IP    EXTERNAL-IP         PORT(S)     AGE
kubernetes          ClusterIP   10.255.0.1               443/TCP     1d3h
quickstart-es-default     ClusterIP   None                  9200/TCP     12h
quickstart-es-http      ClusterIP   10.255.177.25             9200/TCP     12h
quickstart-es-internal-http  ClusterIP   10.255.156.180             9200/TCP     12h
quickstart-es-transport    ClusterIP   None                  9300/TCP     12h
quickstart-kb         LoadBalancer  10.255.223.4   120.48.90.143,192.168.0.3  5601:32716/TCP  12h
quickstart-kb-http      ClusterIP   10.255.55.93              5601/TCP     12h

在本示例中,公网 IP 120.48.90.143 被分配给了 Kibana 实例。

Kibana 登录密码可通过如下命令获取:

$ kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo

搭配用户名 elastic, 我们可以通过 https://:5601 来尝试访问 Kibana, 登录后在主页点击 “Explore on my own”.

2667a8c4-912a-11ed-bfe3-dac502259ad0.png

7数据流导入

在 Discover 中选择“Create data view”,并在弹出窗口中给数据视图命名,如“bcc-eck-tutorial”,并在“filebeat-8.4.1”数据流中导入索引模式。

26a25bea-912a-11ed-bfe3-dac502259ad0.png

最终,我们可以在 Kibana 中查看 Kubernetes 集群每个节点上 Pod 的日志。

26c1f824-912a-11ed-bfe3-dac502259ad0.png

正如本示例所展示的,来自于 CNCF Cloud Native 的主流云原生项目如 Elastic 等,已提供对 Arm64 架构的支持。用户可以在基于 Ampere Altra 处理器的 Arm64 实例上感受到顺畅的部署体验。敬请访问 Ampere Blog 进一步了解 Ampere Altra 处理家族的强大之处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18298

    浏览量

    222223
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8653

    浏览量

    361847
  • 百度
    +关注

    关注

    9

    文章

    2175

    浏览量

    88927
  • BCC
    BCC
    +关注

    关注

    0

    文章

    10

    浏览量

    7464
  • Ampere
    +关注

    关注

    1

    文章

    54

    浏览量

    4501

原文标题:安博士讲堂|应用示例 - 基于百度 BCC GR1 实例部署 Elastic Stack

文章出处:【微信号:AmpereComputing,微信公众号:安晟培半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [灌水]如何提升网站在百度的排名

    如何提升网站在百度的排名我想大多数网站流量的来源绝大部分来自百度,所以如何成为百度的“宠儿”,是得到流量的关键,所以今天,我们谈谈如何在短时间内快速提升百度的排名,其实,以下的方法也适
    发表于 11-09 16:55

    下载百度到桌面_把百度下载到桌面

    `现在教你怎么把百度下载到桌面,让后你很方便就可以用百度。利用百度强大的平台整合力,为您整合万千热门应用,给您一键触达的超快感体验。 简单可依赖的界面,简洁易操作的设计,洗净繁琐只为您的快捷便利
    发表于 10-26 17:16

    百度职工以“发明家方便军”的假名字败坏百度信誉!——发明家方面军的严正声明!——新

    “发明家方便军言论”,败坏百度信誉!愚弄广大民科网友! ★发明家方面军请求百度1、抓住和严惩百度职工!2、删除所有“发明家方便军言论”!!3、销毁“发明家方便军”链接!!!4、向
    发表于 01-28 10:59

    ★★★【<百度网盘1T永久容量领取教程>】

      百度云可以领取1T永久容量啦~1T是什么概念?就是1024G哦!那么xp线净版的百度1T永久容量怎么领取呢?绿茶小编现在就告诉大家方法
    发表于 08-22 09:19

    百度地图离线API调用教程

    如何制作呢,今天就教大家简单实用的方法制作离线百度地图,绝对简单,甚至不需要具备任何编程知识都行。 1、材料准备水经注百度电子地图下载器 百度地图离线API:BaiduMap V1.3
    发表于 01-24 09:42

    百度VS谷歌?不要开玩笑了!

    AlphaGo都赢了李世石百度还是在做新闻的载体欢迎大家百度一下“谷歌技术发展”我们不拿百度和谷歌比就百度和谷歌的搜索比技术层面上说1.搜索
    发表于 03-16 10:44

    百度云和百度开放云是什么关系?愚人节不能不说的秘密。

    百度云和百度开放云是什么关系?愚人节不能不说的秘密。
    发表于 03-29 15:23

    百度竞价排名这件事你怎么看?

    `魏则西事件炸出了百度竞价排名的黑幕但事实上百度竞价排名并不是什么新鲜玩意相信很多喜欢用百度一下的亲们都知道很多情况下搜索排名的前几条都不是你想要的答案小编曾经年少无知的时候也曾错信过不过现在也算是
    发表于 05-03 15:24

    百度总裁:百度在人工智能领域已有重大突破

      随着阿法狗大战李世石,人工智能引发越来越多的关注。百度总裁张亚勤28日表示,百度长期坚持技术创新,2015年研发投入超过100亿元,目前在人工智能领域已有重大突破。  张亚勤在天津夏季达沃斯论坛
    发表于 07-01 15:22

    转:百度物联网 IoT Hub 初体验

    ,交叉编译成arm架构,轻轻松松部署到各种派。百度提供了Python的示例、Java的示例,都不错,但在快速部署上还是棋差一招。关于可配置性
    发表于 03-29 17:39

    LABVIEW如何调用百度地图?

    我最近想做一个东西 是已经有了gps的定位数据, 想使用labview调用百度地图来显示当前的位置,请问一下各位大神 怎么才能调用呢? 就是通过数据gps的经纬度 直接在labview上显示百度地图的位置。
    发表于 05-14 10:40

    seo优化的百度算法笔记

    seo优化之百度算法解析(一)
    发表于 05-27 17:15

    百度语音识别SDK视频教程分享!

    百度语音识别开发初级教程,适合首次使用百度语音的初学者浏览观看:【Android教程】http://www.iqiyi.com/w_19rs0vghvx.html#vfrm=8-7-0-1 【iOS教程】http://www.i
    发表于 09-03 21:48

    百度大脑EasyDL平台轻松玩转AI

    什么是EasyDL?: EasyDL是百度大脑推出的定制化AI训练及服务平台,支持面向各行各业有定制AI需求的企业用户及开发者使用。支持从数据管理与数据标注、模型训练、模型部署一站式AI开发流程
    发表于 07-09 11:30

    百度API调用(三)——语音识别 精选资料推荐

    python 调用百度语音识别API 一、开通百度语音技术接口服务基本过程:1、打开百度ai开放平台 https://ai.baidu.com/2、打开控制台3、选择语音技术4、选择创
    发表于 08-18 06:44