内容简介:网易蜂巢提供2种方式管理服务,一种是首先,打开网易蜂巢的控制台,点击右侧的出于安全方面考虑,蜂巢不提供直接密码登录服务器的方式,但是提供
网易蜂巢提供2种方式管理服务,一种是 控制台 方式,一种是 API接口 ,本文主要以控制台方式讲解。
基本的配置
首先,打开网易蜂巢的控制台,点击右侧的 云主机
- 创建云主机
,我们需要创建一个 Linux
操作系统,具体参数如下:
类别 | 参数 |
---|---|
计费方式 | 按量付费 |
可用区 | A区 |
镜像 | Centos7 |
规格 | CPU:2核;内存:2G;系统盘,40G |
云主机名称 | docker-tomcat |
配置SSH 密钥
出于安全方面考虑,蜂巢不提供直接密码登录服务器的方式,但是提供 SSH
密钥的方式,您可以在创建云主机的时候选择:
- 创建一对新的密钥。
- 导入已有的本地公钥文件。
这里我们选择导入本地密钥,本地创建一对 SSH
密钥,我这里使用的是 MAC OS
,打开终端,执行:
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/wenjun/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/wenjun/.ssh/id_rsa. Your public key has been saved in /Users/wenjun/.ssh/id_rsa.pub. The key fingerprint is: SHA256:wRIFAVPln+10aJmEcVNSh5nM1tbOF1TVsdh0rbEwWLI hi@mail.awen.me The key's randomart image is: +---[RSA 2048]----+ | oo==o oo==+O%| | . + .*oo%oO| | . + E .= X.| | . o + +o +| | S o B . .| | + . | | . | | | | | +----[SHA256]-----+
根据提示创建一对RSA算法的不带密码的密钥,其路径在家目录的 .ssh
目录下,其中 id_rsa
是私钥文件, id_rsa.pub
是公钥文件,我们需要把公钥文件内容添加到平台,执行:
$cat ~/.ssh/id_rsa.pub
查看密钥内容,然后复制粘贴到控制台。
然后勾选刚才创建的 SSH
密钥,最后点击立即创建。
此时,我们就创建好了一台云主机,可以在云主机列表中查看。
远程连接
默认情况下创建的主机是不提供外网 IP 地址的,蜂巢提供2种管理远程主机的方式,第一种是通过 OpenVPN 的方式,可以在控制台找到账户安全,下载OpenVPN的配置文件连接,具体使用方法参考 文档 。
然后下载应用程序,MAC 下拖拽配置文件到程序中,然后连接即可
当连接成功后,即可远程连接
➜ .ssh ssh root@10.173.32.11 The authenticity of host '10.173.32.11 (10.173.32.11)' can't be established. ECDSA key fingerprint is SHA256:VQrvXo6fRvi+QFuqEG+onn2neeTvKjtbRJ6QqYDG5OA. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.173.32.11' (ECDSA) to the list of known hosts. Last login: Tue Aug 8 14:02:21 2017 from 115.192.184.186
另外一种方式就是绑定弹性公网 IP
的方式来远程,具体操作如下,点击控制台左侧的弹性公网 IP,创建弹性公网 IP。
创建完成之后会在列表中看到创建的 IP 地址。
下面我们要将 IP 绑定到云主机,点击左侧云主机,如何绑定,请参考 文档 进行绑定。
绑定完成之后,我们就可以远程连接了。
ssh root@59.111.96.110 The authenticity of host '59.111.96.110 (59.111.96.110)' can't be established. ECDSA key fingerprint is SHA256:VQrvXo6fRvi+QFuqEG+onn2neeTvKjtbRJ6QqYDG5OA. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '59.111.96.110' (ECDSA) to the list of known hosts. [root@docker-tomcat ~]#
当然,如果对于服务器的安全性要求较高,还是建议使用vpn的方式登录。
更新系统
# yum -y update
安装 Docker
我们选择的操作系统是 Centos7.2,可以使用如下命令安装 Docker:
# yum -y install docker
安装完毕后 可以查看docker的版本
# docker version Client: Version: 1.12.6 API version: 1.24 Package version: docker-1.12.6-32.git88a4867.el7.centos.x86_64 Go version: go1.7.4 Git commit: 88a4867/1.12.6 Built: Mon Jul 3 16:02:02 2017 OS/Arch: linux/amd64 Cannot connect to the Docker daemon. Is the docker daemon running on this host?
启动docker
# systemctl enable docker # 设置为开机自启动 # systemctl status docker # 开启docker
如果启动出现问题,可以参考 文档 解决。
安装镜像
打开 蜂巢镜像中心 ,可以找到 tomcat,在云主机执行
# docker pull hub.c.163.com/public/tomcat:7.0.28
安装 tomcat 镜像,安装完毕可以查看镜像
[root@docker-tomcat /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hub.c.163.com/public/tomcat 7.0.28 1d333f1d42a5 17 months ago 266.9 MB
后台运行容器
# docker run -d 1d333f1d42a5 /bin/bash 1d65cec7f0f6347e879cc7a11aa2d45b2b530f56ec46be551940885a0fc9a801
导出本地容器
[root@docker-tomcat /]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 98a7fb3b27de 1d333f1d42a5 "/bin/sh -c '/etc/ini" 57 seconds ago Up 57 seconds 22/tcp, 8080/tcp prickly_varahamihira [root@docker-tomcat /]# docker export 98a7 > tomcat0808.tar
本地镜像上传到蜂巢
该部分内容参考 文档
1.登录
[root@docker-tomcat /]# docker login -u hsweib@163.com -p password hub.c.163.com Login Succeeded
2.标记本地镜像
[root@docker-tomcat /]# docker tag 1d333f1d42a5 hub.c.163.com/fangwenjun/tomcat
3.推送镜像
[root@docker-tomcat /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hub.c.163.com/public/tomcat 7.0.28 1d333f1d42a5 17 months ago 266.9 MB [root@docker-tomcat /]# docker tag 1d333f1d42a5 hub.c.163.com/fangwenjun/tomcat [root@docker-tomcat /]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 98a7fb3b27de 1d333f1d42a5 "/bin/sh -c '/etc/ini" 6 minutes ago Up 6 minutes 22/tcp, 8080/tcp prickly_varahamihira [root@docker-tomcat /]# docker push hub.c.163.com/fangwenjun/tomcat The push refers to a repository [hub.c.163.com/fangwenjun/tomcat] 5f70bf18a086: Pushed 04ec86136189: Pushed 41eaba0ec3cd: Pushed bcaa3b393a28: Pushed f8cfb55c251b: Pushed 2712458540cb: Pushed 59dbd0a38594: Pushed bae03cbf1131: Pushed 84cf9f092c7a: Pushed 2ffc517b9e28: Pushed fb0c06d8457d: Pushed 9ef641aa2eea: Pushed 8730a9c82887: Pushed 72b520f75c37: Pushed c81b5c199370: Pushed ff07b305fdfa: Pushed a0f9bae65944: Pushed latest: digest: sha256:e245417df37590ec1e4d2eb543c23171e956dafc15a4263f1a10025d41bf8634 size: 14015
然后在后台镜像仓库可以看到
使用私人镜像
在镜像仓库中点击刚才创建的镜像,可以在页面种看到下载地址
执行
docker pull hub.c.163.com/fangwenjun/tomcat:latest
然后查看会发现私人仓库的镜像也出现在了镜像列表中
[root@docker-tomcat /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hub.c.163.com/fangwenjun/tomcat latest 1d333f1d42a5 17 months ago 266.9 MB hub.c.163.com/public/tomcat 7.0.28 1d333f1d42a5 17 months ago 266.9 MB
负载均衡配置
要配置负载均衡,我们需要在主机内创建2个容器并进行响应的数据卷和端口的映射。
注意:容器内的webapps目录在/var/lib/tomcat7/下,我们需要创建一个外部的卷来将其挂载到容器内使用,因此这里我们在服务器的/opt/目录下创建一个目录data和data1目录。
创建第一个容器
查看本地镜像
[root@docker-tomcat data]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hub.c.163.com/fangwenjun/tomcat latest 1d333f1d42a5 17 months ago 266.9 MB hub.c.163.com/public/tomcat 7.0.28 1d333f1d42a5 17 months ago 266.9 MB [root@docker-tomcat data]#
然后执行
[root@docker-tomcat data]# docker run -d -P --name web -v /opt/data/:/var/lib/tomcat7/webapps/ROOT/ -p 8080:8080 1d33 80fded28b17a58097f5c54361e9d161c5c97167aa2290a01989dbe2430989c55
分配其数据卷为web;/opt/data/ 指向容器的webapps目录;本地端口8080映射到容器8080
查看端口映射
[root@docker-tomcat data]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 80fded28b17a 1d33 "/bin/sh -c '/etc/ini" 40 seconds ago Up 39 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:32769->22/tcp web [root@docker-tomcat data]# docker port 80f 22/tcp -> 0.0.0.0:32769 8080/tcp -> 0.0.0.0:8080
在本地的data目录写入一个文件
[root@docker-tomcat data]# cat index.html this is test page
然后访问,发现是可以通过公网IP 访问8080端口的,此时访问的就容器中的8080端口对应的tomcat资源
创建第二个容器
分配其数据卷为web1;/opt/data1/ 指向容器的webapps目录;本地端口8081映射到容器8080
[root@docker-tomcat opt]# docker run -d -P --name web1 -v /opt/data1/:/var/lib/tomcat7/webapps/ROOT/ -p 8081:8080 1d33 9073cf3aeedbb155c74748a46f254f03bc71857d538b8f5480fd4711f9fa3b14
查看端口映射
[root@docker-tomcat data1]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9073cf3aeedb 1d33 "/bin/sh -c '/etc/ini" 2 minutes ago Up 2 minutes 0.0.0.0:32770->22/tcp, 0.0.0.0:8081->8080/tcp web1 80fded28b17a 1d33 "/bin/sh -c '/etc/ini" 9 minutes ago Up 9 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:32769->22/tcp web [root@docker-tomcat data1]# docker port 80f 22/tcp -> 0.0.0.0:32769 8080/tcp -> 0.0.0.0:8080
然后在/opt/data1目录写入一个html文件
[root@docker-tomcat data1]# echo docker2 >> index.html
访问 发现可以访问到docker2的内容
创建负载均衡
打开蜂巢后台,点击左侧的负载均衡
创建一个负载均衡,选择面向范围为-面向主机,然后输入一个名称,这里叫tomcat
然后切换到目标组
创建一个目标组,填写目标组名称,这里叫tomcat,后端组选择云主机,然后取消掉所有云主机使用相同端口的复选框,分别填写8080和8081两个端口,对应主机中的两个容器服务,确认无误后点击提交。
然后点击创建监听
填写监听名称,这里叫http,选择监听的协议,可以选择HTTP、HTTPS和TCP协议,填写监听端口,比如这里填80端口,转发规则就使用默认的规则,后端服务就选择我们刚才创建的tomcat组,会话保持,我们这里不启用,确认无误后创建。
此时我们拿负载均衡的IP地址去访问,可以看到是能够正常访问到后端的8080端口对应的容器服务的。
那么我们强制刷新几次浏览器,发现切换到后端的8081端口对应的服务了。说明负载均衡配置成功。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 宜人贷蜂巢ELK Stack之elasticsearch权限探索
- 宜人贷蜂巢API网关技术解密之Netty使用实践
- 3分钟了解负载均衡,分清二层负载均衡和三层负载均衡
- 负载均衡策略之有限负载一致性哈希
- 负载均衡之软硬件负载均衡的优缺点
- 医疗信息系统高负载如何应对?找准东华负载均衡
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Perl高效编程
霍尔 / 胜春、王晖、张东亮、蒋永清 / 人民邮电出版社 / 2011-5 / 65.00元
《Perl高效编程(第2版)》,本书是Perl编程领域的“圣经级”著作。它提供了一百多个详实的应用案例,足以涵盖编程过程中经常遇到的方方面面,由此详细阐释出各种高效且简洁的写法。一起来看看 《Perl高效编程》 这本书的介绍吧!