Kubernetes
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、创建Service服务
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