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