1) 创建目录

  1. mkdir /root/dockerfile
  2. cd /root/dockerfile

2)创建示例脚本: app.js

  1. cat >app.js <<'EOF'
  2. const http = require('http');
  3. const os = require('os');
  4. console.log("Kubia server starting...");
  5. var handler = function(request, response) {
  6. console.log("Received request from " + request.connection.remoteAddress);
  7. response.writeHead(200);
  8. response.end("You've hit " + os.hostname() + "\n");
  9. };
  10. var www = http.createServer(handler);
  11. www.listen(8080);
  12. EOF

3)创建Dockerfile

  1. cat >Dockerfile <<'EOF'
  2. FROM node:7
  3. ADD app.js /app.js
  4. ENTRYPOINT ["node", "app.js"]
  5. EOF

4)构建容器镜像

  1. docker build -t kubia .

5)docker相关操作(仅练习用)

  1. docker run --name kubia-container -p 8080:8080 -d kubia
  2. curl localhost:8080
  3. docker ps
  4. docker inspect kubia-container
  5. docker exec -it kubia-container bash
  6. docker stop kubia-container
  7. docker rm kubia-container

6)上传镜像到仓库

  1. docker image tag kubia 10.0.0.10:5000/luksa/kubia
  2. docker image push 10.0.0.10:5000/luksa/kubia

7)kubectl相关操作(仅练习用)

  1. kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1
  2. kubectl get pods
  3. kubectl expose rc kubia --type=LoadBalancer --name kubia-http
  4. kubectl get svc
  5. #注意:K8S 1.21 已经弃用--generator= ,解决如下
  6. kubectl run kubia --image=luksa/kubia --port=8080
  7. kubectl expose pod kubia --type=NodePort
  8. ##############################################
  9. curl 104.155.74.57:8080
  10. kubectl get rc
  11. kubectl scale rc kubia --replicas=3
  12. kubectl get rc
  13. kubectl get pods -o wide
  14. kubectl describe pod kubia-hczji
  15. kubectl delete services kubia
  16. kubectl delete pods kubia