虚拟机上部署Envoy Gateway:(一)创建虚拟机

参考链接:http://t.csdn.cn/0MJh5

最近尝试学习Envoy,在物理server上创建一套k8s环境,组建一个集中式Envoy Gateway。

首先创建虚拟机。

(1)生成硬盘镜像文件:

格式:raw或qcow2

# qemu-img create -f raw fdisk.img 10G # qemu-img info fdisk.img

(2)编写xml配置文件,这一步在后面做详细介绍

(3)创建并运行虚拟机

# sudo apt-get install qemu-kvm
# virsh define vm0.xml  //导入虚拟机配置
# virsh start vm0  //开启vm0
# virsh list --all  // 显示所有虚拟机状态
# virsh destroy vm0  //销毁虚拟机
# virsh undefine vm1  //删除虚拟机配置
# virsh dumpxml vm0 //显示虚拟机xml配置

以下是实际创建虚拟机时使用的两个xml实例

cat vm_wangsk01.xml

<domain type='kvm'>  //如果是Xen,则type=‘xen’
  <name>CloudNative_MasterNode</name> //虚拟机名称,同一物理机唯一
  <uuid>c223a8be-20dc-418f-8f49-7d9d256d9989</uuid>  //同一物理机唯一,可用uuidgen生成,cat /proc/sys/kernel/random/uuid
  <memory>8388608</memory>
  <currentMemory>8388608</currentMemory>  //memory这两个值最好设成一样
  <vcpu>2</vcpu>            //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -l
  <os>
   <type arch='x86_64' machine='pc-i440fx-focal'>hvm</type> //arch指出系统架构类型,machine 则是机器类型,查看机器类型:qemu-system-x86_64 -M ?
   <boot dev='hd'/>  //启动介质,第一次需要装系统可以选择cdrom光盘启动
   <bootmenu enable='yes'/>  //表示启动按F12进入启动菜单
  </os>
  <features>
   <acpi/>  //Advanced Configuration and Power Interface,高级配置与电源接口
   <apic/>  //Advanced Programmable Interrupt Controller,高级可编程中断控制器
   <pae/>   //Physical Address Extension,物理地址扩展
  </features>
  <clock offset='localtime'/>  //虚拟机时钟设置,这里表示本地本机时间
  <on_poweroff>destroy</on_poweroff>  //突发事件动作
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>   //设备配置
   <emulator>/usr/bin/kvm</emulator> //如果是Xen则是/usr/lib/xen/binqemu-dm
   <disk type='file' device='disk'> //硬盘
      <driver name='qemu' type='raw'/>
      <source file='/home/wangsk/master_node.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> //域、总线、槽、功能号,slot值同一虚拟机上唯一
   </disk>
   <disk type='file' device='cdrom'>//光盘
      <driver name='qemu' type='raw'/>
      <source file='/home/wangsk/ubuntu-20.04.4-desktop-amd64.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
   </disk>

   /* 利用Linux网桥连接网络 */
   <interface type='bridge'>
      <mac address='fa:92:01:33:d4:fd'/>
      <source bridge='br_wangsk_ubunt'/>  //配置的网桥网卡名称
      <target dev='vnet0'/>     //同一网桥下相同
      <alias name='net0'/>      //别名,同一网桥下相同
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>  //注意slot值唯一
   </interface>

   <interface type='network'>   //基于虚拟局域网的网络
     <mac address='52:54:4a:e1:1c:84'/>  //可用命令生成,见下面的补充
     <source network='default'/> //默认
     <target dev='vnet1'/>  //同一虚拟局域网的值相同
     <alias name='net1'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>  //注意slot值
   </interface>
   <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'>  //配置vnc,windows下可以使用vncviewer登录,获取vnc端口号:virsh vncdisplay vm0
     <listen type='address' address='0.0.0.0'/>
   </graphics>
  </devices>
</domain>

cat vm_wangsk02.xml

<domain type='kvm'>  //如果是Xen,则type=‘xen’
  <name>CloudNative_WorkerNode1</name> //虚拟机名称,同一物理机唯一
  <uuid>7a4fb123-7406-4e26-ae40-d07b3ee61d6f</uuid>  //同一物理机唯一,可用uuidgen生成,cat /proc/sys/kernel/random/uuid
  <memory>8388608</memory>
  <currentMemory>8388608</currentMemory>  //memory这两个值最好设成一样
  <vcpu>2</vcpu>            //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -l
  <os>
   <type arch='x86_64' machine='pc-i440fx-focal'>hvm</type> //arch指出系统架构类型,machine 则是机器类型,查看机器类型:qemu-system-x86_64 -M ?
   <boot dev='hd'/>  //启动介质,第一次需要装系统可以选择cdrom光盘启动
   <bootmenu enable='yes'/>  //表示启动按F12进入启动菜单
  </os>
  <features>
   <acpi/>  //Advanced Configuration and Power Interface,高级配置与电源接口
   <apic/>  //Advanced Programmable Interrupt Controller,高级可编程中断控制器
   <pae/>   //Physical Address Extension,物理地址扩展
  </features>
  <clock offset='localtime'/>  //虚拟机时钟设置,这里表示本地本机时间
  <on_poweroff>destroy</on_poweroff>  //突发事件动作
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>   //设备配置
   <emulator>/usr/bin/kvm</emulator> //如果是Xen则是/usr/lib/xen/binqemu-dm
   <disk type='file' device='disk'> //硬盘
      <driver name='qemu' type='raw'/>
      <source file='/home/wangsk/worker1.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> //域、总线、槽、功能号,slot值同一虚拟机上唯一
   </disk>
   <disk type='file' device='cdrom'>//光盘
      <driver name='qemu' type='raw'/>
      <source file='/home/wangsk/ubuntu-20.04.4-desktop-amd64.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
   </disk>

   /* 利用Linux网桥连接网络 */
   <interface type='bridge'>
      <mac address='fa:92:01:33:d4:fb'/>
      <source bridge='br_wangsk_ubunt'/>  //配置的网桥网卡名称
      <target dev='vnet0'/>     //同一网桥下相同
      <alias name='net0'/>      //别名,同一网桥下相同
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>  //注意slot值唯一
   </interface>

   <interface type='network'>   //基于虚拟局域网的网络
     <mac address='52:54:4a:e1:1c:85'/>  //可用命令生成,见下面的补充
     <source network='default'/> //默认
     <target dev='vnet1'/>  //同一虚拟局域网的值相同
     <alias name='net1'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>  //注意slot值
   </interface>
   <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'>  //配置vnc,windows下可以使用vncviewer登录,获取vnc端口号:virsh vncdisplay vm0
     <listen type='address' address='0.0.0.0'/>
   </graphics>
  </devices>
</domain>

cat vm_wangsk03.xml

<domain type='kvm'>  //如果是Xen,则type=‘xen’
  <name>CloudNative_WorkerNode2</name> //虚拟机名称,同一物理机唯一
  <uuid>6659f2a2-2707-48e6-bdd0-3b73f0e1ec7b</uuid>  //同一物理机唯一,可用uuidgen生成,cat /proc/sys/kernel/random/uuid
  <memory>8388608</memory>
  <currentMemory>8388608</currentMemory>  //memory这两个值最好设成一样
  <vcpu>2</vcpu>            //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -l
  <os>
   <type arch='x86_64' machine='pc-i440fx-focal'>hvm</type> //arch指出系统架构类型,machine 则是机器类型,查看机器类型:qemu-system-x86_64 -M ?
   <boot dev='hd'/>  //启动介质,第一次需要装系统可以选择cdrom光盘启动
   <bootmenu enable='yes'/>  //表示启动按F12进入启动菜单
  </os>
  <features>
   <acpi/>  //Advanced Configuration and Power Interface,高级配置与电源接口
   <apic/>  //Advanced Programmable Interrupt Controller,高级可编程中断控制器
   <pae/>   //Physical Address Extension,物理地址扩展
  </features>
  <clock offset='localtime'/>  //虚拟机时钟设置,这里表示本地本机时间
  <on_poweroff>destroy</on_poweroff>  //突发事件动作
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>   //设备配置
   <emulator>/usr/bin/kvm</emulator> //如果是Xen则是/usr/lib/xen/binqemu-dm
   <disk type='file' device='disk'> //硬盘
      <driver name='qemu' type='raw'/>
      <source file='/home/wangsk/vm_wangsk03_fdisk.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> //域、总线、槽、功能号,slot值同一虚拟机上唯一
   </disk>
   <disk type='file' device='cdrom'>//光盘
      <driver name='qemu' type='raw'/>
      <source file='/home/wangsk/ubuntu-20.04.4-desktop-amd64.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
   </disk>

   /* 利用Linux网桥连接网络 */
   <interface type='bridge'>
      <mac address='fa:92:01:33:d4:fc'/>
      <source bridge='br_wangsk_ubunt'/>  //配置的网桥网卡名称
      <target dev='vnet0'/>     //同一网桥下相同
      <alias name='net0'/>      //别名,同一网桥下相同
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0c' function='0x0'/>  //注意slot值唯一
   </interface>

   <interface type='network'>   //基于虚拟局域网的网络
     <mac address='52:54:4a:e1:1c:86'/>  //可用命令生成,见下面的补充
     <source network='default'/> //默认
     <target dev='vnet1'/>  //同一虚拟局域网的值相同
     <alias name='net1'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>  //注意slot值
   </interface>
   <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'>  //配置vnc,windows下可以使用vncviewer登录,获取vnc端口号:virsh vncdisplay vm0
     <listen type='address' address='0.0.0.0'/>
   </graphics>
  </devices>
</domain>

启动好之后,可以用virsh list命令查看当前server上拉起的虚拟机

/*获取Qemu的vnc端口号*/
root@master-node:/home/wangsk# virsh list
 Id   Name                       State
------------------------------------------
 37   CloudNative_WorkerNode1    running
 38   CloudNative_WorkerNode2    running
 39   CloudNative_MasterNode     running

在windows下可以通过VNC Viewer来登录Qemu虚拟机。我们之前在xml中定义了vnc,Server服务器(192.168.2.51)相当于vnc server, 在windows上安装vnc viewer作为vnc client,client通过访问server提供的5900+vnc端口号的映射来和指定的qemu虚拟机通信。

/*获取Qemu的vnc端口号*/
root@master-node:/home/wangsk# virsh list
 Id   Name                       State
------------------------------------------
 37   CloudNative_WorkerNode1    running
 38   CloudNative_WorkerNode2    running
 39   CloudNative_MasterNode     running

root@master-node:~# virsh vncdisplay 39
:0
root@master-node:~# virsh vncdisplay 37
:2
root@master-node:~# virsh vncdisplay 38
:4

在window上创建一个qemu虚拟机的连接实例

通过vnc viewer图形化界面安装Ubuntu(过程略),安装后Ubuntu默认是不开启ssh的,通过terminal开启Ubuntu ssh

sudo apt-get install openssh-server
sudo /etc/init.d/ssh start

查看Qemu虚拟机的ip

sudo apt-get install net-tools
wangsk@master-node:~$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:a6:e2:c8:38  txqueuelen 0  (以太网)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether fa:92:01:33:d4:fa  txqueuelen 1000  (以太网)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.189  netmask 255.255.255.0  broadcast 192.168.122.255
        inet6 fe80::9e51:9ae1:6831:30ca  prefixlen 64  scopeid 0x20<link>
        ether 52:54:4a:e1:1c:84  txqueuelen 1000  (以太网)
        RX packets 49147  bytes 68489497 (68.4 MB)
        RX errors 0  dropped 331  overruns 0  frame 0
        TX packets 22423  bytes 1727201 (1.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 109061

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 8484964  bytes 1331883528 (1.3 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8484964  bytes 1331883528 (1.3 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

然后接可以从192.168.2.51通过ssh 192.168.122.189连接到Qemu虚拟机了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值