
# 客户端通过CCE连接DCS
#### 方案概述
随着容器技术的普及，越来越多的应用程序部署在容器环境中。本章节将介绍如何将Redis客户端部署到云容器引擎CCE的集群容器中，通过CCE连接DCS。
![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001479114773.png "点击放大")
#### 前提条件
准备以下实例资源：
- **创建VPC和子网** ，例如vpc-test。创建方式请参考[创建虚拟私有云和子网](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013935842.html)。
  （可选）建议创建2个子网，将DCS实例放到一个子网，CCE集群放到另一个子网，方便管理。
  
- **创建DCS实例** ，例如dcs-test。创建方式请参考[购买Redis实例](https://support.huaweicloud.com/usermanual-dcs/dcs-ug-0713002.html)。
  创建的DCS实例时，"虚拟私有云"请选择所创建的VPC（vpc-test）及其子网1。
  
  
- **创建CCE集群** ，例如cce-test。创建方式请参考[购买CCE集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0028.html)。
  创建CCE集群时，"网络模型"请选择"VPC网络"；"虚拟私有云"和"子网"请选择所创建的VPC（vpc-test）及其子网2。
  
- **创建CCE节点池** ，例如cce-test-nodepool。创建方式请参考[创建节点池](https://support.huaweicloud.com/usermanual-cce/cce_10_0012.html)。
  创建CCE节点池时，"节点类型"请选择"弹性云服务器-虚拟机"，"容器引擎"请选择"Docker"，"操作系统"请选择"CentOS 7.6"，并需要绑定"弹性公网IP"，选择"使用已有"或"自动创建"。
  
 
#### 操作流程
![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001427434044.png)
#### 制作客户端镜像
1. 下载Redis客户端。 
   1. 登录CCE集群节点。
      单击创建完成的CCE节点池名称，进入CCE节点池，单击右上角的"远程登录"。
      ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001426108974.png "点击放大")
      
   
   2. 执行**gcc --version** 检查操作系统是否安装了用于编译Redis程序的GCC编译器。如下图，表示已经安装了GCC编译器。
      ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001425794174.png "点击放大")
      如未安装GCC编译器，请使用以下命令安装GCC编译器。
      ```
      yum -y install gcc
      yum -y install gcc-c++
      ```
      
   
   3. 执行以下命令，在home目录下创建redis目录，并进入该目录。
      ```
      cd /home && mkdir redis && cd redis
      ```
      
   
   4. 执行以下命令下载Redis客户端。此处以下载5.0.13版本的客户端为例。
      ```
      wget https://download.redis.io/releases/redis-5.0.13.tar.gz
      ```
      ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001425667664.png "点击放大")
      
   
   5. 解压Redis，进入Redis目录，执行编译命令后返回redis目录。
      ```
      tar xvzf redis-5.0.13.tar.gz
      cd redis-5.0.13 && make redis-cli
      cd ..
      ```
      
   
   
   
   
2. 创建Dockerfile。 
   使用**vim Dockerfile**命令创建Dockerfile，并填写以下信息。
   ```
   FROM centos:7
   RUN useradd -d /home/redis -m redis 
   COPY ./redis-5.0.13 /home/redis/redis-5.0.13
   RUN chown redis:redis /home/redis/redis-5.0.13 -R
   USER redis
   ENV  HW_HOME=/home/redis/redis-5.0.13        
   ENV   PATH=$HW_HOME/src:$PATH   
   WORKDIR /home/redis/
   ```
   按下Esc键退出编辑模式，执行**:wq** **!**保存配置并退出编辑界面。
   
   
3. 构建客户端镜像。 
   1. 在控制台的服务列表中选择"容器镜像服务 SWR"，进入容器镜像服务总览页。
   
   2. 单击右上角"创建组织"，输入组织名称，新建一个组织。也可以使用已有的组织（单击左侧"组织管理"可查看已有组织。）
   
   3. 在SWR总览页单击右上角"登录指令"获取登录指令，复制登录指令。(登录指令结尾的swr.xxxxxx.com为镜像仓库地址。)
      图1获取登录指令   
      ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001425958670.png "点击放大") 
   
   4. 使用复制的登录指令在CCE节点中执行，登录SWR。
      图2登录SWR   
      ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001426121394.png "点击放大") 
   
   5. 执行以下命令构建镜像。
      ```
      docker build -t {Image repository address}/{Organization name}/{Image name}:{version}.
      ```
      其中Image repository address为镜像仓库地址，即登录指令的结尾部分；Organization name为[b]步骤创建的组织名称；Image name为需要构建的镜像名称，version为镜像的版本。请根据实际值进行替换。例如：docker build -t *swr.xxxxxx.com* /*study1* /*redis* :*v1* .
      图3构建镜像   
      ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001426145908.png "点击放大") 
   
   
   
   
4. 执行以下命令将客户端镜像上传到SWR。 
   ```
   docker push {Image repository address}/{Organization name}/{Image name :version}
   ```
   图4上传镜像   
   ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001426146644.png "点击放大")
   
   
5. 上传镜像后，可在SWR控制台"我的镜像"页面查看到Redis镜像。 
   图5查看镜像   
   ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001476188661.png "点击放大")
   
   
 
#### 部署镜像到CCE
1. 在控制台中进入DCS服务，单击已创建的Redis实例"dcs-test"，进入该Redis实例的详情页面。
2. 在"连接信息"栏中获取Redis实例的IP地址和端口号。
3. 单击右上角"连接Redis"，通过Web Cli连接Redis。
4. 在Redis连接页面，执行**SET** 命令。下图以SET hello "hello redis!"为例。
   
   ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001425685956.png "点击放大")
   
   
5. 在控制台中进入CCE服务，单击已创建的CCE集群"cce-test"。
6. 在左侧导航栏中，选择"工作负载"。单击右上角"创建负载"。参考[创建工作负载](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html)。
   
   - 在创建工作负载页面的"容器配置\>基本信息"中，"镜像名称"需要选择已创建的Redis镜像。
   
   - 在创建工作负载页面的"容器配置\>生命周期"中，配置如下内容。 运行命令：/bin/bash
     运行参数：-c
     while true ;do sleep 10;/home/redis/redis-5.0.13/src/redis-cli -h *10.0.0.0* -p *6379* -a *DCS instance password* get *hello*;done
     其中10.0.0.0为DCS实例的IP地址，6379为DCS实例的端口号，DCS instance password为DCS实例的密码，hello为在通过Web Cli连接Redis时SET的数据名，请根据实际值替换。
     图6配置生命周期   
     ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001476223097.png "点击放大") 
   
   
   
   
7. 创建后，工作负载状态为"运行中"时，说明工作负载创建成功。 
   图7查看工作负载状态   
   ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001476227677.png "点击放大")
   
   
 
#### 测试Redis连接
1. 登录CCE集群节点，参考[登录CCE集群节点]。
2. 参考[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，下载和配置kubectl配置文件。
3. 执行以下命令，当返回状态为"Running"时，说明Redis容器处于运行状态。 
   ```
   kubectl get pod -n default
   ```
   ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001426658306.png "点击放大")
   
   
4. 使用以下命令查看Redis容器的日志。 
   ```
   kubectl logs --tail 10 -f redis-xxxxxxxx -n default
   ```
   其中redis-xxxxxxxx为创建的工作负载实例名称。（单击工作负载名称，进入工作负载，可查看工作负载实例名称。）
   ![](https://support.huaweicloud.com/bestpractice-dcs/zh-cn_image_0000001476217873.png "点击放大")
   从返回信息中，可以看到DCS服务返回的信息为在前面[连接Redis]时设置的数据值"hello redis!"。
   
   
5. 测试完成。
 
