《云计算与虚拟化技术丛书 Service Mesh实战》—2.4.2传统安装方式

举报
华章计算机 发表于 2019/06/05 23:02:38 2019/06/05
【摘要】 本书摘自《云计算与虚拟化技术丛书 Service Mesh实战:基于Linkerd和Kubernetes的微服务实践》一文中的第2章,第2.4.2节,作者是杨彰显。

2.4.2 传统安装方式

       到此,所有Linkerd需要的运行环境及其依赖已准备好,我们可在CentOS虚拟机里安装Linkerd,首先创建安装目录,比如/root/install/local,然后下载最新版本的Linkerd安装包,本书写作时的Linkerd最新版本是1.3.6。

# mkdir -p /root/linkerd/local

# cd /root/linkerd/local

# wget -q https://github.com/linkerd/linkerd/releases/download/1.3.6/linkerd-1.3.6-exec

# chmod +x linkerd-1.3.6-exec

注意 本书所有关于Linkerd的配置及演示示例都是基于版本1.3.6的。


       除此之外,还需在/root/linkerd/local目录下创建如下文件目录:

       # mkdir config disco logs

       config目录:存放Linkerd配置文件于该目录。

       disco目录:若采用基于文件方式进行服务发现时,服务相关配置信息存于该目录。

       logs目录:存放Linkerd运行时日志和访问应用产生的访问日志。

       为了能正常启动Linkerd进程,首先我们需要为其创建配置文件,其配置文件采用YAML或JSON格式,现假设配置文件为linkerd.yml:

# touch config/linkerd.yml

       其内容配置为:

admin:

  port: 9990

  # 默认admin使用loopback地址,修改成0.0.0.0是为了能从宿主机访问Linkerd管理页面

  ip: 0.0.0.0

  

usage:

  enabled: false


namers:

- kind: io.l5d.fs

  rootDir: disco


routers:

- protocol: http

  dtab: |

    /svc => /#/io.l5d.fs;

  httpAccessLog: logs/access.log

  label: demo

  servers:

  - port: 4140

    ip: 0.0.0.0

       配置文件主要配置如下模块。

       admin模块:设置Linkerd管理接口,默认监听loopback地址的9990端口,示例中我们将其配置为0.0.0.0。

       namers模块:设置如何通过服务发现工具进行服务发现,这里配置为基于文件的服务发现,服务相关信息存储在disco目录的文件中,文件以服务名字命名,若服务名为consul,则文件名为consul,内容为一系列主机名字/IP地址及空格分隔的端口配置对构成,比如127.0.0.1 8500。

       routers模块:设置服务通信协议,默认为http;dtab路由规则,其根据请求信息如请求主机头从namers指定的服务发现工具中找到需要访问的服务实例,示例中配置为从namers模块配置指定的文件目录读取服务信息;日志写入路径,默认logs目录下的access.log文件;配置router服务器的监听地址和端口,默认为0.0.0.0的4140端口;其他配置如router的标签设置为demo。需注意的是该模块中还有一个很重要的参数—identifer被省略,identifer的主要作用是将应用请求转化为逻辑名字,Linkerd通过逻辑名字以及一系列的转换获取对应的IP地址和端口信息,默认identifer为io.l5d.header.token,即根据HTTP请求头部信息提取逻辑名字,默认提取Host头部信息。

      然后通过linkerd.yml启动Linkerd进程。

# ./linkerd-1.3.6-exec config/linkerd.yml

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N

-XX:+AggressiveOpts -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:+CMSScavengeBeforeRemark -XX:InitialHeapSize=33554432 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=87244800 -XX:MaxTenuringThreshold=6 -XX:OldPLABSize=16 -XX:+PrintCommandLineFlags -XX:+ScavengeBeforeFullGC -XX:-TieredCompilation -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseStringDeduplication

Mar 07, 2018 3:39:18 PM com.twitter.finagle.http.HttpMuxer$ $anonfun$new$1

INFO: HttpMuxer[/admin/metrics.json] = com.twitter.finagle.stats.MetricsExporter(<function1>)

Mar 07, 2018 3:39:18 PM com.twitter.finagle.http.HttpMuxer$ $anonfun$new$1

INFO: HttpMuxer[/admin/per_host_metrics.json] = com.twitter.finagle.stats.HostMetricsExporter(<function1>)

I 0307 15:39:18.501 UTC THREAD1: linkerd 1.3.6 (rev=48a2a63d47fd0f6713c74ec03b8588bbc067e1de) built at 20180302-131809

I 0307 15:39:19.205 UTC THREAD1: Finagle version 7.1.0 (rev=37212517b530319f4ba08cc7473c8cd8c4b83479) built at 20170906-132024

I 0607 15:39:21.355 UTC THREAD1: Tracer: com.twitter.finagle.zipkin.thrift.ScribeZipkinTracer

I 0307 15:39:21.663 UTC THREAD1: serving http admin on /0.0.0.0:9990

I 0307 15:39:21.689 UTC THREAD1: serving demo on /0.0.0.0:4140

I 0307 15:39:21.755 UTC THREAD1: initialized

       从输出信息可知以下内容。

       Linkerd的版本是1.3.6。

       Finagle的版本是7.1.0。

       Linkerd admin运行于9990端口,可通过0.0.0.0:9990进行访问。

       名为demo的router运行于4140端口,通过0.0.0.0:4140访问。

     现在访问http://127.0.0.1:9990/admin/ping,如果返回pong,则认为Linkerd已正常启动,否则需查看未启动原因。还有,在宿主机浏览器访问http://127.0.0.1:9990可进入Linkerd管理界面,如图2-3所示,从管理界面可以看到Linkerd运行时相关信息,如请求数量、成功率、失败率、router名字、router监听地址及端口等:

image.png

图2-3 Linkerd管理界面

        除此之外,还可以从页面进行dtab(delegation table)调测工作,如图2-4所示。

image.png

图2-4 Linkerd dtab调试界面

        图2-4中显示的dtab来源Linkerd配置文件,后续章节会讲解Linkerd的dtab可存储于外部键值存储系统中,如Consul、Zookeeper等。

        另外,还可在Linkerd管理界面调整日志打印级别。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。