Kubernetes
2021-06-16-16-35-56-989949.png

1、创建yaml模板

  1. kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml

2、修改模板 vim web.yaml

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. labels:
  5. app: web
  6. name: web
  7. spec:
  8. replicas: 3
  9. selector:
  10. matchLabels:
  11. app: web
  12. template:
  13. metadata:
  14. labels:
  15. app: web
  16. spec:
  17. containers:
  18. - image: zhangfan5391621/java-demo
  19. name: java

3、创建项目pod

  1. kubectl apply -f web.yaml
  2. kubectl logs web-dc77dd8db-hhrxz #检查日志

2021-06-16-16-35-57-053817.png

  1. kubectl get deploy #查看deployment有那些

2021-06-16-16-35-57-119712.png

4、创建Service服务

  1. kubectl expose --name=web deployment web --port=80 --target-port=8080 --type=NodePort
  2. # kubectl expose +(资源的类型)+(资源的名称)+(service端口)+(后端服务的端口)+类型(Nodeport随机端口)
  3. kubectl get service #查看service服务的端口

2021-06-16-16-35-57-192525.png
任意一个node节点的ip+30909就能访问该项目

5、升级服务(滚动更新)

  1. kubectl set image deployment web java=nginx
  2. #kubectl set image+ 资源类型+名字(web)+ (java=nginx)原镜像名=新镜像名
  3. #kubectl edit service/web #如果配置文件有改动,直接修改server
  4. http://192.168.106.103:30909/ #能够访问到最新的项目

2021-06-16-16-35-57-290256.png

6、回滚项目

  1. kubectl rollout history deployment web #查看历史版本

2021-06-16-16-35-57-388113.png

  1. kubectl rollout undo deployment web #回滚到上一个版本
  2. 修改service/web端口改为8080,即可访问上一个版本的项目,nginxtomcat是不同的端口
  3. #kubectl rollout undo deployment web --revision=3 ,指定回滚版本

2021-06-16-16-35-57-532805.png

7、副本的扩容/缩容

  1. kubectl scale deployment web --replicas=5
  2. #将web服务副本扩容成5个(原来三个)

2021-06-16-16-35-57-655515.png

  1. kubectl scale deployment web --replicas=2

2021-06-16-16-35-57-758513.png
刚才5个副本已经变成2个副本了

8、删除service

  1. kubectl delete deployment/web
  2. kubectl delete svc/web