EC-IoT容器管理配置(Hi-Grid T1和EC Core-L-1)
1 查看容器管理
[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.214是FTP 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%
目前设备最多支持安装4个LXC容器。
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
卸载指定容器前必须要先通过执行container stop container命令停止该容器。
5 配置LXC容器的自定义存储区
背景信息
LXC容器的APP需要存储一些重要的数据(例如交采校准参数和终端标识),这些数据即使LXC容器被重装,也不允许丢失。
设备出厂前会在LXC容器外建立一个可锁定的磁盘空间,用于放置出厂参数和校准数据等信息,防止LXC容器重装或复位后关键数据丢失,该磁盘称为CustomDisk。CustomDisk为独立的磁盘分区,该分区大小16M。CustomDisk在Host系统中对应文件夹为/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”文件。
l 创建的“.lock”文件内容不限,可以为空。
l 创建“.lock”锁定文件后,必须重启容器,锁定才能生效。
l 对CustomDisk进行解锁。
− 在Host系统中执行命令rm /mnt/custom/.lock,删除“.lock”文件。
删除“.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
上述命令中192.169.11.16为设备的IP地址,192.168.100.2为容器的IP地址。
2. 查看私网PC的IP地址为192.169.240.39(PC配置略)。
3. 使用SSH工具PuTTY登录容器。
PuTTY配置示例:
容器用户名和密码为客户已预置的用户名和密码,初始用户名是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
- 点赞
- 收藏
- 关注作者
评论(0)