网易蜂巢使用云主机并搭建docker环境配置负载均衡

栏目: 服务器 · 发布时间: 6年前

内容简介:网易蜂巢提供2种方式管理服务,一种是首先,打开网易蜂巢的控制台,点击右侧的出于安全方面考虑,蜂巢不提供直接密码登录服务器的方式,但是提供

网易蜂巢提供2种方式管理服务,一种是 控制台 方式,一种是 API接口 ,本文主要以控制台方式讲解。

基本的配置

首先,打开网易蜂巢的控制台,点击右侧的 云主机 - 创建云主机 ,我们需要创建一个 Linux 操作系统,具体参数如下:

类别 参数
计费方式 按量付费
可用区 A区
镜像 Centos7
规格 CPU:2核;内存:2G;系统盘,40G
云主机名称 docker-tomcat

配置SSH 密钥

出于安全方面考虑,蜂巢不提供直接密码登录服务器的方式,但是提供 SSH 密钥的方式,您可以在创建云主机的时候选择:

  • 创建一对新的密钥。
  • 导入已有的本地公钥文件。

网易蜂巢使用云主机并搭建 <a href='https://www.codercto.com/topics/20577.html'>docker</a> 环境配置负载均衡

这里我们选择导入本地密钥,本地创建一对 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

查看密钥内容,然后复制粘贴到控制台。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

然后勾选刚才创建的 SSH 密钥,最后点击立即创建。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

此时,我们就创建好了一台云主机,可以在云主机列表中查看。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

远程连接

默认情况下创建的主机是不提供外网 IP 地址的,蜂巢提供2种管理远程主机的方式,第一种是通过 OpenVPN 的方式,可以在控制台找到账户安全,下载OpenVPN的配置文件连接,具体使用方法参考 文档

网易蜂巢使用云主机并搭建docker环境配置负载均衡

然后下载应用程序,MAC 下拖拽配置文件到程序中,然后连接即可

网易蜂巢使用云主机并搭建docker环境配置负载均衡

当连接成功后,即可远程连接

  .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。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

创建完成之后会在列表中看到创建的 IP 地址。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

下面我们要将 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环境配置负载均衡

使用私人镜像

在镜像仓库中点击刚才创建的镜像,可以在页面种看到下载地址

网易蜂巢使用云主机并搭建docker环境配置负载均衡

执行

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资源

网易蜂巢使用云主机并搭建docker环境配置负载均衡

创建第二个容器

分配其数据卷为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的内容

网易蜂巢使用云主机并搭建docker环境配置负载均衡

创建负载均衡

打开蜂巢后台,点击左侧的负载均衡

网易蜂巢使用云主机并搭建docker环境配置负载均衡

创建一个负载均衡,选择面向范围为-面向主机,然后输入一个名称,这里叫tomcat

网易蜂巢使用云主机并搭建docker环境配置负载均衡

然后切换到目标组

网易蜂巢使用云主机并搭建docker环境配置负载均衡

创建一个目标组,填写目标组名称,这里叫tomcat,后端组选择云主机,然后取消掉所有云主机使用相同端口的复选框,分别填写8080和8081两个端口,对应主机中的两个容器服务,确认无误后点击提交。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

然后点击创建监听

网易蜂巢使用云主机并搭建docker环境配置负载均衡

填写监听名称,这里叫http,选择监听的协议,可以选择HTTP、HTTPS和TCP协议,填写监听端口,比如这里填80端口,转发规则就使用默认的规则,后端服务就选择我们刚才创建的tomcat组,会话保持,我们这里不启用,确认无误后创建。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

此时我们拿负载均衡的IP地址去访问,可以看到是能够正常访问到后端的8080端口对应的容器服务的。

网易蜂巢使用云主机并搭建docker环境配置负载均衡

那么我们强制刷新几次浏览器,发现切换到后端的8081端口对应的服务了。说明负载均衡配置成功。

网易蜂巢使用云主机并搭建docker环境配置负载均衡


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Agile Web Application Development with Yii 1.1 and PHP5

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》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试