EC-IoT容器管理配置(Hi-Grid T1和EC Core-L-1)

小兵 发表于 2018/12/21 17:10:09 2018/12/21
【摘要】 本文主要讲述查看容器管理、容器安装、容器启停、容器卸载等。

查看容器管理

[admin@huawei ~]$ container status
container: It will take some time to get status, please wait a moment.
container index: 0
  container name: lxc01
  container version: CV10.008
  container status: running
  container ip: 192.168.100.2
  container cpu-usage:  0%
  container max mem: 256 M
  container mem-usage: 15%
  container disk-size: 200 M
  container disk-usage: 32%

2 容器安装

2.1 下载容器镜像文件

使用curl工具下载文件

curl ftp://192.169.240.214/lxchigrid.ova -u 1:1 -o /mnt/internal_storage/lxchigrid.ova

其中192.169.240.214FTP server地址,-u 后面为ftp server 用户名和密码, -o后面为文件下载地址。容器文件必须放在/mnt/internal_storage目录下。

[admin@huawei ~]$ 
al_storage/lxchigrid.ovatp://192.169.240.214/lxchigrid.ova -u 1:1 -o /mnt/intern
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 43.8M  100 43.8M    0     0  2471k      0  0:00:18  0:00:18 --:--:-- 2656k

查看下载文件。

[admin@huawei ~]$ ls -al /mnt/internal_storage/lxchigrid.ova
-rw-rw-r--    1 admin    administ  45936640 Jan  3 01:34 /mnt/internal_storage/lxchigrid.ova                                        
[admin@huawei ~]$

2.2 安装容器

执行命令container install container ova-name,使用OVA镜像创建LXC容器。

[admin@huawei ~]$ container install lxc01 lxchigrid.ova

lxc01 为安装的容器名称,lxchigrid.ova为安装使用镜像包名称(搜索路径为/mnt/internal_storage)。

安装完成后查看容器状态。

[admin@huawei ~]$ container statusPn
container: It will take some time to get status, please wait a moment.
container index: 0
  container name: lxc01
  container version: CV10.008
  container status: running
  container ip: 192.168.100.2
  container cpu-usage:  0%
  container max mem: 256 M
  container mem-usage: 15%
  container disk-size: 200 M
  container disk-usage: 32%

spacer.gif

目前设备最多支持安装4LXC容器。

3 容器启停

启动容器(安装完成后默认启动)。

执行命令container start container,启动LXC容器。

[admin@huawei ~]$ container start lxc01
container: It will take some time to start, please wait a moment.
start container lxc01 success.

[admin@huawei ~]$ container status
container: It will take some time to get status, please wait a moment.
container index: 0
  container name: lxc01
  container version: CV10.008
  container status: running
  container ip: 192.168.100.2
  container cpu-usage:  0%
  container max mem: 256 M
  container mem-usage: 15%
  container disk-size: 200 M
  container disk-usage: 32%

执行命令container stop container ,停止LXC容器。

[admin@huawei ~]$ container stop lxc01
container: It will take some time to stop, please wait a moment.
stop container lxc01 success.

[admin@huawei ~]$ container status
container: It will take some time to get status, please wait a moment.
container index: 0
  container name: lxc01
  container version: CV10.008
  container status: stopped
  container ip:
  container cpu-usage:  0%
  container max mem: 256 M
  container mem-usage:  0%
  container disk-size: 200 M
  container disk-usage:  0% 

4 容器卸载

执行命令container uninstall container,删除LXC容器。

[admin@huawei ~]$ container uninstall lxc01
container: It will take some time to uninstall, please wait a moment.
uninstall container lxc01 success.

[admin@huawei ~]$ container status
container: It will take some time to get status, please wait a moment.
No installed container

spacer.gif

卸载指定容器前必须要先通过执行container stop container命令停止该容器。

5 配置LXC容器的自定义存储区

背景信息

LXC容器的APP需要存储一些重要的数据(例如交采校准参数和终端标识),这些数据即使LXC容器被重装,也不允许丢失。

设备出厂前会在LXC容器外建立一个可锁定的磁盘空间,用于放置出厂参数和校准数据等信息,防止LXC容器重装或复位后关键数据丢失,该磁盘称为CustomDiskCustomDisk为独立的磁盘分区,该分区大小16MCustomDiskHost系统中对应文件夹为/mnt/custom,在LXC容器中对应文件夹为/etc/custom

CustomDisk的读写机制:

l   Host系统中,用户可以直接对CustomDisk进行读写,不需要锁定和解锁。

l   LXC容器中,当CustomDisk未被锁定时,可以直接进行读写。当CustomDisk被锁定后,则整个CustomDisk分区变为只读。LXC容器对该文件夹只读,但仍可在Host系统中对其进行读写。

通常情况下,CustomDisk的出厂配置是锁定状态,防止后续被LXC容器的应用非法变更。

操作步骤

l   CustomDisk进行锁定。

终端在启动容器过程中会检查CustomDisk目录下是否存在“.lock”文件,如果存在,则CustomDisk在容器中将会被锁定为只读,否则为未锁定状态。通过在CustomDisk目录下创建“.lock”文件,对CustomDisk进行锁定。“.lock”文件可通过如下三种方式创建:

           Host系统中执行命令touch /mnt/custom/.lock创建“.lock”文件。

           通过SSH登录LXC容器,在LXC容器中执行命令touch /etc/custom/.lock创建“.lock”文件。

           LXC容器中通过调用高级应用开放接口lockCustomDisk创建“.lock”文件。

spacer.gif

l  创建的“.lock”文件内容不限,可以为空。

l  创建“.lock”锁定文件后,必须重启容器,锁定才能生效。

l   CustomDisk进行解锁。

           Host系统中执行命令rm /mnt/custom/.lock,删除“.lock”文件。

spacer.gif

删除“.lock”锁文件后,必须重启容器,解锁才能生效

6 使用SSH方式登录到容器

1.         配置Linux容器与私网用户PC互访,在FE0端口上配置NAT映射。

[admin@huawei ~]$ nft add table dnat1
[admin@huawei ~]$ nft add chain dnat1 prerouting { type nat hook prerouting priority 0 \; }
[admin@huawei ~]$ nft add chain dnat1 postrouting { type nat hook postrouting priority 100 \; }
[admin@huawei ~]$ nft add rule dnat1 prerouting ip daddr 192.169.11.16 tcp dport 1022 iif FE0 dnat 192.168.100.2:22

spacer.gif

上述命令中192.169.11.16为设备的IP地址,192.168.100.2为容器的IP地址。

2.         查看私网PCIP地址为192.169.240.39PC配置略)。

3.         使用SSH工具PuTTY登录容器。

PuTTY配置示例:

Snap3.png


容器用户名和密码为客户已预置的用户名和密码,初始用户名是root,密码是Admin@huawei

7 配置设备3G/LTE链路,使私网用户通过3G/LTE业务接入Internet

1.         配置设备3G/LTE链路,并且配置NAT转换。

[admin@huawei ~]$ wwan dialer start dev LTE
[admin@huawei ~]$ nft add rule dnat1 postrouting ip saddr 192.168.100.0/24 oif LTE masquerade

2.         接口获取3G/LTE地址,Linux容器能够通过上行3G/LTE 业务接入Internet

[admin@huawei ~]$ ip addr show dev LTE
1005: LTE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state up mode default qlen 1000
link/LTE 00:17:a7:0c:21:03 brd ff:ff:ff:ff:ff:ff
inet 100.85.241.141/30 brd 100.85.241.143 scope global dynamic LTE
valid_lft 518400sec       preferred_lft 518400sec

3.         登录容器检查是否能Ping通公网。

root@huawei:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=51 time=234 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=51 time=238 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=51 time=241 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=51 time=231 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=51 time=241 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=51 time=236 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=51 time=236 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=51 time=231 ms
64 bytes from 8.8.8.8: icmp_seq=9 ttl=51 time=240 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=51 time=236 ms
64 bytes from 8.8.8.8: icmp_seq=11 ttl=51 time=246 ms
64 bytes from 8.8.8.8: icmp_seq=12 ttl=51 time=250 ms

8 容器资源查看

1.         登录容器。

2.         查看容器内磁盘空间。

root@huawei:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlayfs       146M   22M  114M  16% /

3.         查看CPU信息以及资源使用。

root@huawei:~# top -b -n 1 -d 10
top - 08:25:31 up 1 day,  5:48,  1 user,  load average: 2.47, 2.07, 2.03
Tasks:  23 total,   1 running,  22 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  2.6 sy,  0.0 ni, 96.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:    496892 total,   369840 used,   127052 free,    41016 buffers
KiB Swap:        0 total,        0 used,        0 free.   228380 cached Mem
 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
12936 root      20   0    3356   1952   1728 R   5.8  0.4   0:00.12 top         
    1 root      20   0    5848   4252   2880 S   0.0  0.9   1:09.06 systemd     
   19 root      20   0   10440   2464   2024 S   0.0  0.5   0:01.44 systemd-ud+ 
   23 root      20   0    8140   3460   3232 S   0.0  0.7   0:31.96 systemd-jo+ 
  105 root      20   0    8672   6312   1624 S   0.0  1.3   0:06.48 dhclient    
  126 root      20   0    5052   2176   1888 S   0.0  0.4   0:16.93 appm_lxc    
  127 root      20   0    3456   2012   1820 S   0.0  0.4   0:00.57 cron        
  128 root      20   0   47180   4460   3836 S   0.0  0.9   0:32.16 esdkd       
  134 root      20   0   32112   3148   2340 S   0.0  0.6   0:06.31 rsyslogd    
  138 root      20   0    2232   1600   1492 S   0.0  0.3   0:00.03 agetty      
  139 root      20   0    2232   1472   1364 S   0.0  0.3   0:00.05 agetty      
  140 root      20   0    2232   1536   1428 S   0.0  0.3   0:00.03 agetty      
  141 root      20   0    2232   1600   1492 S   0.0  0.3   0:00.03 agetty      
  143 mosquit+  20   0    5280   3804   3452 S   0.0  0.8   1:49.53 mosquitto   
  144 root      20   0    2232   1644   1536 S   0.0  0.3   0:00.03 agetty      
  145 root      20   0    2232   1596   1488 S   0.0  0.3   0:00.03 agetty       
  146 root      20   0    2232   1536   1428 S   0.0  0.3   0:00.03 agetty      
  147 root      20   0    2232   1536   1428 S   0.0  0.3   0:00.06 agetty      
  148 root      20   0    2232   1600   1492 S   0.0  0.3   0:00.03 agetty      
  149 root      20   0    2232   1664   1556 S   0.0  0.3   0:00.03 agetty      
  155 root      20   0    7912   4592   4140 S   0.0  0.9   0:00.11 sshd        
10760 root      20   0   11676   5192   4544 S   0.0  1.0   0:00.48 sshd        
10770 root      20   0    3544   2804   2476 S   0.0  0.6   0:00.10 bash 

4.         当前容器内的日志支持使用journalctl查看日志。

root@huawei:~# journalctl -f
-- Logs begin at Wed 2018-03-28 08:30:08 UTC. --
May 10 08:21:21 huawei dhclient[105]: DHCPREQUEST on veth1 to 255.255.255.255 port 67
May 10 08:21:34 huawei dhclient[105]: DHCPDISCOVER on veth1 to 255.255.255.255 port 67 interval 5
May 10 08:21:34 huawei dhclient[105]: DHCPREQUEST on veth1 to 255.255.255.255 port 67
May 10 08:21:34 huawei dhclient[105]: DHCPOFFER from 192.168.100.1
May 10 08:21:34 huawei dhclient[105]: DHCPACK from 192.168.100.1 
May 10 08:21:34 huawei dhclient[105]: bound to 192.168.100.3 -- renewal in 263 seconds.
May 10 08:25:57 huawei dhclient[105]: DHCPREQUEST on veth1 to 192.168.100.1 port 67 
May 10 08:25:58 huawei dhclient[105]: 4 bad udp checksums in 6 packets
May 10 08:26:03 huawei dhclient[105]: DHCPREQUEST on veth1 to 192.168.100.1 port 67 
May 10 08:26:12 huawei dhclient[105]: DHCPREQUEST on veth1 to 192.168.100.1 port 67
May 10 08:26:33 huawei dhclient[105]: DHCPREQUEST on veth1 to 192.168.100.1 port 67


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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