天天看点

《TKE学习》制作业务镜像并部署服务(三)

操作场景

本文档旨在帮助大家了解如何在TKE上部署一个 Hello World 的 Node.js 版的服务。

前提条件

  • 已在TKE上创建集群。
  • 已登录节点,且该节点已安装 Node.js。

操作步骤

编写代码制作镜像

编写应用程序

1、依次执行以下命令,创建并进入 hellonode 的文件夹。

mkdir hellonode
    cd hellonode/           

复制

2、执行以下命令,新建并打开 server.js 文件。

vim server.js           

复制

3、按 “i” 或 “insert” 切换至编辑模式,将以下内容输入 server.js。

var http = require('http');
   var handleRequest = function(request, response) {
   console.log('Received request for URL: ' + request.url);
   response.writeHead(200);
   response.end('Hello World!');
   };
   var www = http.createServer(handleRequest);
   www.listen(80);           

复制

按 “Esc”,输入 “:wq”,保存文件并返回。如下图:

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-17-28.png

4、执行以下命令,执行 server.js 文件。

node server.js           

复制

再次登录节点,执行以下命令。

curl 127.0.0.1:80           

复制

显示如下,则说明 Hello World 程序运行成功。

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-19-41.png

创建 Docker 镜像

1、依次执行以下命令,在 hellonode 文件夹下,创建 Dockerfile 文件。

cd /hellonode
   vim Dockerfile           

复制

2、按 “i” 或 “insert” 切换至编辑模式,将以下内容输入 Dockerfile 文件。

FROM node:4.4
   EXPOSE 80
   COPY server.js .
   CMD node server.js           

复制

按 “Esc”,输入 “:wq”,保存文件并返回。如下图所示:

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-22-00.png

3、执行以下命令,构建镜像。

docker build -t hello-node:v1 .           

复制

如下图所示:

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-25-30.png

4、执行以下命令,查看构建好的 hello-node 镜像。

docker images            

复制

显示结果如下,则说明 hello-node 镜像已成功构建,记录其 IMAGE ID。如下图所示:

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-26-56.png

上传该镜像到 qcloud 镜像仓库

依次执行以下命令,上传镜像到 qcloud 仓库。

sudo docker login --username=[username] ccr.ccs.tencentyun.com
sudo docker tag IMAGEID ccr.ccs.tencentyun.com/命名空间/helloworld:v1
sudo docker push ccr.ccs.tencentyun.com/命名空间/helloworld:v1           

复制

显示以下结果,则说明登陆成功。

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-32-45.png

显示以下结果,则说明镜像上传成功。

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-35-57.png

通过该镜像创建 Hello World 服务

1、登录 腾讯云容器服务控制台 。

2、单击左侧导航栏中【集群】,进入“集群管理”页面。

3、单击需要创建服务的集群 ID,进入工作负载 Deployment 详情页,选择【新建】。

4、在“新建Workload”页面,根据以下提示,设置工作负载基本信息。如下图所示:

  • 工作负载名:输入要创建的工作负载的名称,本文以 helloworld 为例。
  • 描述:填写工作负载的相关信息。
  • 标签:key = value 键值对,本例中标签默认值为 k8s-app = helloworld 。
  • 命名空间:根据实际需求进行选择。
  • 类型:根据实际需求进行选择。
  • 数据卷:根据实需求设置工作负载的挂载卷。
《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-39-45.png

5、设置实例内容器,输入实例内容器名称,本文以 helloworld 为例。

6、单击【选择镜像】(其它保持默认设置)。如下图所示:

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-41-20.png

在弹出框中选择【我的镜像】,通过搜索框功能查找出 helloworld 镜像,并单击 【确定】。如下图所示:

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-42-28.png

7、设置实例数量,如下图所示:

  • 手动调节:设定实例数量,本文实例数量设置为1。可单击“+”或“-”控制实例数量。
  • 自动调节:满足任一设定条件,则自动调节实例(pod)数目。

8、根据以下提示,进行工作负载的访问设置。如下图所示:

  • Service:勾选“启用”。
  • 服务访问方式:选择“提供公网访问”。
  • 负载均衡器:根据实际需求进行选择。
  • 端口映射
:选择 TCP 协议,将容器端口和服务端口都设置为80 。           

复制

9、单击【创建Workload】,完成 Hello World 服务的创建。

访问 Hello World 服务

可通过以下两种方式访问 Hello World 服务。

通过负载均衡 IP 访问 Hello World 服务

1、单击左侧导航栏中【集群】,进入 “集群管理” 页面。

2、单击 Hello World 服务所在的集群 ID,选择【服务】>【Service】。

3、在服务管理页面,复制服务的负载均衡 IP,如下图所示:

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-44-43.png

通过服务名称访问 Hello World 服务

集群内的其他服务或容器可以直接通过服务名称访问。

验证 Hello World 服务

访问服务时显示如下,则 Hello World 服务创建成功。

《TKE学习》制作业务镜像并部署服务(三)

Snipaste_2019-11-19_17-46-20.png