0、参考链接

Kubernetes系列之四:使用yaml文件创建deployment来部署一个应用程序到k8s集群

https://blog.csdn.net/wucong60/article/details/81586272

==========================================

1、程序

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(8081);

index.js

然后用node index.js验证一下

OK,通过

==========================================

2、构建镜像

https://hub.docker.com/_/node

新建一个 Dockerfile

FROM node:latest
WORKDIR app
COPY . .
EXPOSE 8081
ENTRYPOINT [ "node","index.js" ]

目录下有两个文件,现在

运行build

build成功

查看镜像,能看到,还挺大的,942MB

=========================================================

3、上载镜像

执行docker login --username <你在dockerhub注册的账号>再输入密码登录到docker hub,再将刚打包好的镜像push上去

docker push lemonhall/kube-node-demo1:v1

好了,push成功,用了我100MB的流量

https://hub.docker.com/repository/docker/lemonhall/kube-node-demo1

=========================================================

4、新建文件

deployment.yaml

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kube-node
spec:
replicas: 2
template:
metadata:
labels:
app: web
spec:
containers:
- name: kube-node-demo-instance
image: lemonhall/kube-node-demo1:v1
ports:
- containerPort: 8081

yaml文件好恶心,又是个tab和空格敏感的东西

我参考了这个: https://www.cnblogs.com/orange-lsc/p/11765069.html

才修正了许多的报错

kubectl create -f deployment.yaml

用这个来创建

kubectl get pods

然后在GUI里看看看

一个deployments,交kube-nodes

然后有两个随机明明的Pod

其中Replica Sets名字也是随机的,里面包含两个pod

这里状态,直接就是Running了

和参考文章中不同,没有遇到无法拉去私仓的问题,可能是因为我的那个images是public的状态

这里在企业级应用里,肯定不可能把自己的应用上传到hub.docker.com上面去

所以肯定需要配合私仓

=====================================================

5、验证

kubectl get pods -o wide

拿到IP地址啥的

然后玩玩

链接失败了,暂时不想管了