内容简介:网易蜂巢提供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分钟了解负载均衡,分清二层负载均衡和三层负载均衡
- 负载均衡策略之有限负载一致性哈希
- 负载均衡之软硬件负载均衡的优缺点
- 医疗信息系统高负载如何应对?找准东华负载均衡
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Agile Web Application Development with Yii 1.1 and PHP5
Jeffrey Winesett / Packt Publishing / 2010-08-27
In order to understand the framework in the context of a real-world application, we need to build something that will more closely resemble the types of applications web developers actually have to bu......一起来看看 《Agile Web Application Development with Yii 1.1 and PHP5》 这本书的介绍吧!