站点图标 IDC铺

在K8S中部署应用流程

在K8S中部署应用流程插图

1.创建yaml模板

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

2.修改模板 vim web.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: web
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - image: zhangfan5391621/java-demo
        name: java

3.创建项目pod

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

kubectl  get deploy  #查看deployment有那些

4.创建Serice服务

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

kubectl get  service  #查看service服务的端口


任意一个node节点的ip+30909就能访问该项目

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

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

6.回滚项目

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

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

7.副本的扩容/缩容

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

kubectl  scale  deployment web --replicas=2

刚才5个副本已经变成2个副本了

8.删除service

kubectl   delete deployment/web
kubectl   delete  svc/web
退出移动版