更新时间:2024-09-25 GMT+08:00

客户端通过CCE连接DCS

方案概述

随着容器技术的普及,越来越多的应用程序部署在容器环境中。本章节将介绍如何将Redis客户端部署到云容器引擎CCE的集群容器中,通过CCE连接DCS。

前提条件

准备以下实例资源:

  • 创建VPC和子网,例如vpc-test。创建方式请参考创建虚拟私有云和子网

    (可选)建议创建2个子网,将DCS实例放到一个子网,CCE集群放到另一个子网,方便管理。

  • 创建DCS实例,例如dcs-test。创建方式请参考购买Redis实例

    创建的DCS实例时,“虚拟私有云”请选择所创建的VPC(vpc-test)及其子网1。

  • 创建CCE集群,例如cce-test。创建方式请参考购买CCE集群

    创建CCE集群时,“网络模型”请选择“VPC网络";“虚拟私有云”和“子网”请选择所创建的VPC(vpc-test)及其子网2。

  • 创建CCE节点池,例如cce-test-nodepool。创建方式请参考创建节点池

    创建CCE节点池时,“节点类型”请选择“弹性云服务器-虚拟机”,“容器引擎”请选择“Docker”,“操作系统”请选择“CentOS 7.6”,并需要绑定“弹性公网IP”,选择“使用已有”或“自动创建”。

操作流程

制作客户端镜像

  1. 下载Redis客户端。

    1. 登录CCE集群节点。

      单击创建完成的CCE节点池名称,进入CCE节点池,单击右上角的“远程登录”。

    2. 执行gcc --version检查操作系统是否安装了用于编译Redis程序的GCC编译器。如下图,表示已经安装了GCC编译器。

      如未安装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

    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 获取登录指令
    4. 使用复制的登录指令在CCE节点中执行,登录SWR。
      图2 登录SWR
    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 构建镜像

  4. 执行以下命令将客户端镜像上传到SWR。

    docker push {Image repository address}/{Organization name}/{Image name :version}
    图4 上传镜像

  5. 上传镜像后,可在SWR控制台“我的镜像”页面查看到Redis镜像。

    图5 查看镜像

部署镜像到CCE

  1. 在控制台中进入DCS服务,单击已创建的Redis实例“dcs-test”,进入该Redis实例的详情页面。
  2. 在“连接信息”栏中获取Redis实例的IP地址和端口号。
  3. 单击右上角"连接Redis",通过Web Cli连接Redis。
  4. 在Redis连接页面,执行SET命令。下图以SET hello "hello redis!"为例。

  5. 在控制台中进入CCE服务,单击已创建的CCE集群“cce-test”。
  6. 在左侧导航栏中,选择“工作负载”。单击右上角“创建负载”。参考创建工作负载

    • 在创建工作负载页面的“容器配置>基本信息”中,“镜像名称”需要选择已创建的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 配置生命周期

  7. 创建后,工作负载状态为“运行中”时,说明工作负载创建成功。

    图7 查看工作负载状态

测试Redis连接

  1. 登录CCE集群节点,参考登录CCE集群节点
  2. 参考通过kubectl连接集群,下载和配置kubectl配置文件。
  3. 执行以下命令,当返回状态为“Running”时,说明Redis容器处于运行状态。

    kubectl get pod -n default

  4. 使用以下命令查看Redis容器的日志。

    kubectl logs --tail 10 -f redis-xxxxxxxx -n default

    其中redis-xxxxxxxx为创建的工作负载实例名称。(单击工作负载名称,进入工作负载,可查看工作负载实例名称。)

    从返回信息中,可以看到DCS服务返回的信息为在前面连接Redis时设置的数据值“hello redis!”。

  5. 测试完成。