[学习记录]与kubernetes的第二天

昨天基本搭好了环境,不过忘记说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的效果。

原文地址:https://www.cnblogs.com/trickofjoker/p/13259934.html