创建server.js,输入以下代码创建helloworld网页
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(8080);
编写Dockerfile文件
FROM node:6.9.2
EXPOSE 8080
COPY server.js .
CMD node server.js
其中,FROM是从官方镜像库取得node的镜像,EXPOSE表示暴露本容器的8080端口,COPY将server.js加入容器,CMD为容器中执行的命令
创建镜像(这一步骤需要在联网的docker环境上运行,也可以首先把node:6.9.2基础镜像导出到测试环境上)
docker build -t hello-node:v1 .
导出镜像
docker save hello-node:v1 -o node.tar
上传镜像到集群所有工作节点(如果不是所有节点都上传,那么在创建pod的时候,如果pod落在了没有镜像的节点上,pod将创建失败)
加载镜像
docker load < node.tar
创建myweb-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 5
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: hello-node:v1
ports:
- containerPort: 8080
创建pod
kubectl apply -f myweb-rc.yaml
创建myweb-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30000
selector:
app: myweb
创建service
kubectl apply -f myweb-svc.yaml
浏览器访问http://nodeip:30000/
http://10.161.249.7:30000/
Hello World!