《云计算与虚拟化技术丛书 Service Mesh实战》—3.2环境准备

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

3.2 环境准备

       对Linkerd本身来说,它是平台无关的,可运行于任何平台,其原生支持容器编排工具Kubernetes和DC/OS,当然也可运行于其他编排工具如HashiCorp Nomad,还可以直接运行于虚拟机或者物理机上。但本章并不想依赖某种编排方案来讲解Linkerd的配置,而是从一个通用、普遍的演示平台着手,这样更有利于大家对Linkerd的学习及理解,无需关注容器编排工具方面的知识及相关依赖。一旦对Linkerd有深入的理解和认识,然后再考虑特定的容器编排工具,比如Kubernetes,后续我们有专门章节详细讨论如何使用Linkerd作为Kubernetes的Service Mesh工具。

       为了讲解Linkerd配置,我们需要准备如下资源以构建演示环境。

       三台虚拟机:基于VirtualBox。

       Docker引擎:部署于每台虚拟机。

       示例应用:UserService、BookingService和ConcertService以及MySQL数据库。

       Linkerd:以容器方式部署于每台虚拟机。

       服务发现工具Consul:以容器方式部署于每台虚拟机。

       服务注册工具Registrator:以容器方式部署于每台虚拟机。

       注意   本章所使用的脚本及其他配置信息均存放在示例源码chapter3目录下,启动虚拟机后被同步到/vagrant目录。


3.2.1 虚拟机及Docker引擎

       同第2章,我们仍然使用Vagrant和VirtualBox管理虚拟机,为此,首先切换目录到chapter3,根据如下Vagrantfile执行命令vagrant up启动三台虚拟机linkerd01、linkerd02和linkerd03:

# -*- mode;ruby -*-

# vi;set ft=ruby :


LINKERD_COUNT = 3


Vagrant.configure("2") do |config|

  config.vm.box = "centos/7"


  (1..LINKERD_COUNT).each do |i|

    config.vm.define "linkerd0#{i}" do |subconfig|

      subconfig.vm.hostname = "linkerd0#{i}"

      subconfig.vm.network :private_network, ip: "192.168.1.#{i + 10}"

      # to access Linkerd admin dashboard from local

      subconfig.vm.network :forwarded_port, guest: 9990, host: "#{i + 9990}"

    end

  end

  config.vm.provision "provision", type: "shell", :path => "provision.sh"

end

        其中provision.sh脚本内容为:

#!/bin/bash


# install docker engine

yum install -y docker-1.13.1

systemctl enable docker

systemctl start docker


# disable selinux

setenforce 0

sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

     

# install tool sets

yum install -y wget telnet tree net-tools unzip

# install jq

wget -qO /usr/local/bin/jq https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64

chmod +x /usr/local/bin/jq


# install dnsmasq

yum install -y dnsmasq

sed -i 's/\(^search\)/\1 service.consul/g' /etc/resolv.conf

sed -i '/^search/a nameserver 127.0.0.1' /etc/resolv.conf


# configure dnsmasq to cache consul dns query

cat << EOF > /etc/dnsmasq.d/consul

interface=*

addn-hosts=/etc/hosts

bogus-priv

server=/service.consul/127.0.0.1#8600

EOF


systemctl enable dnsmasq && systemctl start dnsmasq

        如上所述,在启动虚拟机过程中执行provision.sh安装Docker引擎以及相关工具软件。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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