计算机节点、服务节点环境架设
说明
所有的服务器分为2类:
- 安装数据库、云实验室应用等软件的服务节点
- 只安装docker的,用来跑学生实验环境的计算节点 这两类节点都需要安装docker服务,建议计算节点的docker安装放在所有部署流程的最后进行。
一、centos7.5 安装docker
1、检查路径
df -h
检查各路径挂载点大小,确定docker的root dir 放在哪里。
2、 卸载旧版本docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
3、安装相关工具
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、 安装docker
`yum -y install docker-ce docker-ce-cli containerd.io`
5、配置docker服务,开机自动启动
`systemctl enable docker`
6、配置dockerd 相关配置
`systemctl edit docker.service`
然后增加以下内容:
```xml
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --registry-mirror=https://registry.docker-cn.com --insecure-registry=172.17.3.111:5000
```
注意: –insecure-registry=172.17.3.111:5000只有计算节点需要配置,具体IP以实际安装的私有镜像仓库地址为准。 如果需要修改root dir(参考第一步的情况),增加:–data-root=/xxxx
`systemctl daemon-reload`
`systemctl start docker.service`
7、 检查端口监听情况
`netstat -lntp | grep dockerd`
查看2375端口是否被监听上
8、关闭firewalld
`systemctl stop firewalld`
9、禁止firewalld开机自动启动
`systemctl disable firewalld`
10、配置docker network(各参数按实际来,服务节点不需要配置)
`docker network create -d macvlan --subnet=172.17.32.0/23 --gateway=172.17.32.1 -o parent=enp61s0f1.1031 vlan1031
这一步不明白,到时候联系jzh
二、计算节点安装lxcfs(此步骤放在计算节点安装完了docker之后也可以)
1.
cd /opt/ #### 2.
yum install -y fuse fuse-lib fuse-devel git libtool #### 3.
git clone git://github.com/lxc/lxcfs #### 4.
cd lxcfs #### 5.
./bootstrap.sh #### 6.
./configure #### 7.
make #### 8.
make install #### 9.
sudo mkdir -p /var/lib/lxcfs #### 10. 制作为service:
vim /lib/systemd/system/lxcfs.service
然后输入以下内容:
[Unit]
Description=FUSE filesystem for Docker
Before=docker.service
Documentation=man:lxcfs(1)
[Service]
ExecStart=/usr/local/bin/lxcfs /var/lib/lxcfs/
KillMode=process
Restart=on-failure
ExecStopPost=-/bin/fusermount -u /var/lib/lxcfs
Delegate=yes
[Install]
WantedBy=multi-user.target
11. 设置开机启动:
systemctl enable lxcfs
12. 启动:
systemctl start lxcfs
13、测试:
```shell
docker run --rm -it -m 256m --memory-swap 256m \
-v /var/lib/lxcfs/proc/cpuinfo:/proc/cpuinfo:rw \
-v /var/lib/lxcfs/proc/diskstats:/proc/diskstats:rw \
-v /var/lib/lxcfs/proc/meminfo:/proc/meminfo:rw \
-v /var/lib/lxcfs/proc/stat:/proc/stat:rw \
-v /var/lib/lxcfs/proc/swaps:/proc/swaps:rw \
-v /var/lib/lxcfs/proc/uptime:/proc/uptime:rw \
ubuntu:16.04 free -h
```
参考:https://github.com/lxc/lxcfs
三、服务节点安装软件
redis 安装
`docker run --restart always --name redis -d -p 6379:6379 redis:5.0.9`
rabbitmq 安装
`docker run -d --restart always --hostname my-rabbit --name rabbit -p 8088:15672 -p 5672:5672 rabbitmq:3-management`
registry安装
docker run -d -v /home/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name registry -e REGISTRY_STORAGE_DELETE_ENABLED=true registry:2
mysql安装
docker run --restart always -p 3306:3306 --name mysql -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=clab -e TZ=Asia/Shanghai -d mysql:5.7.28 --default-time_zone='+8:00' --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --skip-character-set-client-handshake --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
注意:上面这条命令是一条命令,只是太长了。。。
安装完数据库后,使用附件中的数据库初始化脚本,初始化此数据库。(自己的电脑最好有一个mysql数据库的客服端,比如mysql workbench等等)
guacd安装
这个软件和部署云实验室的tomcat是一 一对应的,如果需要部署两套云实验室,那么就需要部署两套guacd
docker run -d --restart always --name guacd -p 4822:4822 guacamole/guacd:1.1.0`
如果需要两套,那么第二套和第一套只是端口映射和容器名的不同:
docker run -d --restart always --name guacd1 -p 4823:4822 guacamole/guacd:1.1.0`
fsp安装
在部署fsp前,需要联系开发人员wangmeng给你传一个jar包,你需要告知:
- 即将分配给fsp的ip地址和端口
-
部署的mysql数据库的ip地址和端口 将开发人员给的jar包重命名为app.jar,放在/root/fsp(需自己创建)文件夹下:
docker run -d --restart always -p 8001:80 -v /root/fsp:/app --name fsp evan11/openoffice4-java8:latest
tomcat的安装
在部署tomcat前,需要联系开发人员wangmeng给你传一个**war**包,你需要告知: - 部署的fsp的ip地址和端口 - 部署的guacd的ip地址和端口 - 部署的mysql数据库的ip地址和端口 - 部署的rabbitmq的ip地址和端口
在服务器/root/下创建文件夹cloudlab1,将开发人员给你的war包上传到/root/cloudlab1文件夹下。
docker run --restart always --name cloudlab1 -d -p 8080:8080 -v /root/cloudlab1/:/usr/local/tomcat/webapps -v /etc/localtime:/etc/localtime -e TZ="Asia/Shanghai" tomcat:8.5-jdk8-openjdk
如果要部署两套,那么开发人员需要给你2个war包,创建2个不同的文件夹/root/cloudlab1、/root/cloudlab2,分别上传。 然后启动第二个tomcat:
docker run --restart always --name cloudlab2 -d -p 8081:8080 -v /root/cloudlab2/:/usr/local/tomcat/webapps -v /etc/localtime:/etc/localtime -e TZ="Asia/Shanghai" tomcat:8.5-jdk8-openjdk
*nginx 安装
这一步除非客户提供了域名,不然不需要安装! 如果需要安装,联系开发人员索要nginx dockerfile 进入到nginx dockerfile所在目录,然后执行打包命令:
docker build -t subdomain-nginx .
打包出镜像后,启动:
docker run --name nginx -v /root/nginx.conf:/etc/nginx/nginx.conf:ro -d -p 80:80 subdomain-nginx
至此,云实验室部署阶段完成!
Let me know what you think of this article in the comment section below!