操作场景
本文档旨在帮助大家了解如何在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”,保存文件并返回。如下图:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICMyYTMvw1dvwlMvwlM3VWaWV2Zh1Wa-cmbw5icuRjYllzMyMjYvwlN5cDOwcjNvwFdmFmck9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
Snipaste_2019-11-19_17-17-28.png
4、执行以下命令,执行 server.js 文件。
node server.js
复制
再次登录节点,执行以下命令。
curl 127.0.0.1:80
复制
显示如下,则说明 Hello World 程序运行成功。
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”,保存文件并返回。如下图所示:
Snipaste_2019-11-19_17-22-00.png
3、执行以下命令,构建镜像。
docker build -t hello-node:v1 .
复制
如下图所示:
Snipaste_2019-11-19_17-25-30.png
4、执行以下命令,查看构建好的 hello-node 镜像。
docker images
复制
显示结果如下,则说明 hello-node 镜像已成功构建,记录其 IMAGE ID。如下图所示:
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
复制
显示以下结果,则说明登陆成功。
Snipaste_2019-11-19_17-32-45.png
显示以下结果,则说明镜像上传成功。
Snipaste_2019-11-19_17-35-57.png
通过该镜像创建 Hello World 服务
1、登录 腾讯云容器服务控制台 。
2、单击左侧导航栏中【集群】,进入“集群管理”页面。
3、单击需要创建服务的集群 ID,进入工作负载 Deployment 详情页,选择【新建】。
4、在“新建Workload”页面,根据以下提示,设置工作负载基本信息。如下图所示:
- 工作负载名:输入要创建的工作负载的名称,本文以 helloworld 为例。
- 描述:填写工作负载的相关信息。
- 标签:key = value 键值对,本例中标签默认值为 k8s-app = helloworld 。
- 命名空间:根据实际需求进行选择。
- 类型:根据实际需求进行选择。
- 数据卷:根据实需求设置工作负载的挂载卷。
Snipaste_2019-11-19_17-39-45.png
5、设置实例内容器,输入实例内容器名称,本文以 helloworld 为例。
6、单击【选择镜像】(其它保持默认设置)。如下图所示:
Snipaste_2019-11-19_17-41-20.png
在弹出框中选择【我的镜像】,通过搜索框功能查找出 helloworld 镜像,并单击 【确定】。如下图所示:
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,如下图所示:
Snipaste_2019-11-19_17-44-43.png
通过服务名称访问 Hello World 服务
集群内的其他服务或容器可以直接通过服务名称访问。
验证 Hello World 服务
访问服务时显示如下,则 Hello World 服务创建成功。
Snipaste_2019-11-19_17-46-20.png