操作场景
本文档旨在帮助您了解如何快速创建一个容器集群内的 Hello World 的 Node.js 版的服务。
前提条件
已创建集群,详情请参见 创建集群。
已登录节点,且该节点已安装 Node.js。详情请参见 镜像部署 Node.js 环境。
操作步骤
编写代码制作镜像
编写应用程序
1. 依次执行以下命令,创建并进入 hellonode 的文件夹。
mkdir hellonode
cd hellonode/
2. 执行以下命令,新建并打开 server.js 文件。
vim server.js
3. 按 i 切换至编辑模式,将以下内容输入 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
,保存文件并返回。4. 执行以下命令,执行 server.js 文件。
node server.js
5. 测试 Hello World 程序。
方式1:再次登录节点,执行以下命令。
curl 127.0.0.1:80
显示如下,则说明 Hello World 程序运行成功。
方式2:打开本地浏览器,以
云服务器实例的公网IP地址:已配置的端口号
的形式访问,端口号为80。
显示如下,则说明 Hello World 程序运行成功。
创建 Docker 镜像
1. 依次执行以下命令,在 hellonode 文件夹下,创建 Dockerfile 文件。
cd hellonode
vim Dockerfile
2. 按 i 切换至编辑模式,将以下内容输入 Dockerfile 文件。
FROM node:4.4EXPOSE 80COPY server.js .CMD node server.js
按 “Esc”,输入
:wq
,保存文件并返回。3. 该节点安装 docker,并启动 docker 服务。
yum install -y dockersystemctl start docker
4. 执行以下命令,构建镜像。
docker build -t hello-node:v1 .
5. 执行以下命令,查看构建好的 hello-node 镜像。
docker images
显示结果如下,则说明 hello-node 镜像已成功构建,记录其 IMAGEID。如下图所示:
上传该镜像到 qcloud 镜像仓库
依次执行以下命令,上传镜像到 qcloud 镜像仓库。
docker tag IMAGEID ccr.ccs.tencentyun.com/命名空间/hello-node:v1
docker login ccr.ccs.tencentyun.comdocker push ccr.ccs.tencentyun.com/命名空间/hello-node:v1
显示以下结果,则说明镜像上传成功。
通过该镜像创建 Hello World 服务
注意:
1. 登录 容器服务控制台,选择左侧导航栏中的集群。
2. 在集群管理页面,选择需创建服务的集群 ID,进入集群详情页。
3. 选择工作负载 > Deployment,在 Deployment 页面单击新建。如下图所示:
4. 在新建 Deployment 页面,根据以下信息,设置工作负载基本信息。如下图所示:
工作负载名:输入要创建的工作负载的名称,本文以 helloworld 为例。
描述:填写工作负载的相关信息。
命名空间:根据实际需求进行选择。
Labels:key = value 键值对,本例中标签默认值为 k8s-app = helloworld。
数据卷:根据实际需求设置工作负载的挂载卷,详情请参见 Volume 管理。
5. 参考以下信息设置“实例内容器”。
5.1 输入实例内容器名称,本文以 helloworld 为例。
5.2 单击选择镜像,在弹出框中选择我的镜像,通过搜索框功能查找出 helloworld 镜像,并单击确定。
主要参数信息如下:
镜像版本(Tag):使用默认值 latest。
镜像拉取策略:提供 Always、IfNotPresent 和 Never 3种策略,请按需选择。本文以不进行设置使用默认策略为例。
6. 在“实例数量”中,根据以下信息设置服务的实例数量。如下图所示:
手动调节:设定实例数量,本文实例数量设置为1。可单击“+”或“-”控制实例数量。
自动调节:满足任一设定条件,则自动调节实例(pod)数目。详情请参见 服务自动扩缩容。
7. 根据以下提示,进行工作负载的访问设置。
Service:勾选“启用”。
服务访问方式:选择“公网LB访问”。
负载均衡器:根据实际需求进行选择。
端口映射:选择 TCP 协议,将容器端口和服务端口都设置为80 。
注意:
8. 单击创建 Deployment,完成 Hello World 服务的创建。
访问 Hello World 服务
可通过以下两种方式访问 Hello World 服务。
通过负载均衡 IP 访问 Hello World 服务
1. 登录容器服务控制台,选择左侧导航栏中的集群。
2. 在集群管理页面,单击 Hello World 服务所在的集群 ID,进入集群详情页。
3. 选择服务与路由 > Service,在 Service 页面,复制 helloworld 服务的负载均衡 IP,如下图所示:
4. 在浏览器粘贴 helloworld 服务的负载均衡 IP。
通过服务名称访问 Hello World 服务
集群内的其他服务或容器可以直接通过服务名称访问。