昨天基本搭好了环境,不过忘记说calico了,这里简单提一句
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
运行即可
----------------------------------------
今天主要是通过一个helloworld的方式来测试kubernetes的功能正常。参考https://zhangaoo.com/article/kubectl-deployment
之前由于是在一个虚拟机上运行的,所以只有一个master节点,master节点默认不会被调度运行pod,所以需要为它涂上污点(taint),污化后的master节点就可以被当作普通node来运行pod了
命令如下:
kubectl taint node [node名] node-role.kubernetes.io/master-
接下来准备helloworld的相关事项
服务端代码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(8080);
配置Dockerfile
FROM node:6.9.2 EXPOSE 8080 COPY server.js . CMD node server.js
注意当前路径下仅有Dockerfile与server.js
执行命令,注意最后空格加句点
docker build -t hello-node:v1 .
接下来创建一个deployment,deployment会管理pod
kubectl create deployment hello-node --image=hello-node-app:v1
此时通过kubectl get deployments可以看到它,通过kubectl get pods可以看到运行中的pod
为了访问,我们需要将其通过一个service将端口暴露出来
kubectl expose deployment hello-node --port=8080 --target-port=8080
此时通过kubectl get service就可以发现刚才的service,并且还有访问的ip和端口
现在通过curl -L 命令访问该ip即可看到helloworld的效果。