# 4. depolyment资源管理: cd /opt/yml/test vim k8s_nginx_dev.yml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginxdev spec: replicas: 4 template: metadata: labels: app: nginxdev spec: containers: - name: nginxdev image: 192.168.20.88:5000/dfsc/nginx:v1 ports: - containerPort: 80kubectl create -f k8s_nginx_dev.yml
kubectl get deployment
![]()
deployment滚动升级 准备一个新镜像 kubectl set image deployment/nginxdev nginxdev=192.168.20.88:5000/dfsc/nginx:v2 deployment/nginxdev ## -----> deployment名称 nginxdev=192.168.20.88:5000/dfsc/nginx:v2 ### 这个是配置文件中的 容器名称
![]()
![]()
![]()
升级过程中有错,直接回滚。 kubectl rollout undo deployment/nginxdev
kubectl set image deployment/nginxdev nginxdev=192.168.20.88:5000/dfsc/nginx:v2 上面是一条命令
升级完成,也可以回滚。 kubectl rollout undo deployment/nginxdev
HPA( horizontalpodautoscalers ):弹性伸缩 实现自动pod伸缩 kubectl autoscale deployment nginxdev --min=2 --max=6 --cpu-percent=80 在这个delployment 中,最少给你启 两个 pod ,当这两个pod 的CPU使用率或者是某一个CPU的使用率,达到 80%的时候, 就会自动给你伸缩一个新的pod,依次类推,最多伸缩到 6 个。 kubectl get horizontalpodautosscalers ##查看 HPA信息
![]()
kubectl edit horizontalpodautosscalers nginxdev ##在线编辑配置文件 改完,保存,马上生效。
![]()
deployment资源管理小结: kubectl create -f k8s_nginx_dev.yml ## 创建 deployment kubectl get deployment nginxdev ##查看 deployment信息 kubectl delete deployment nginxdev ##删除 deployment
deployment滚动升级 kubectl set image deployment/nginxdev nginxdev=192.168.20.88:5000/dfsc/nginx:v1 kubectl rollout undo deployment/nginxdev ## 回滚操作 实现自动pod伸缩 kubectl autoscale deployment nginxdev --min=2 --max=6 --cpu-percent=80 ++++++++++++++++++++++++++ # 5. Service ------> SVC 功能:1、负载均衡,2、对外映射端口
在k8s里面跑的 deployment,到少要配一个 svc资源,才能被外访问到。 一项业务至少要有两个资源,一个是 deployment 或者rc ,一个资源是svc 创建svc配置文件 cd /opt/yml/test vim k8s_nginx_svc.yml apiVersion: v1 kind: Service metadata: name: nginxsvc spec: type: NodePort ports: - port: 80 nodePort: 30001 selector: app: nginxdev +++++++++++++++++++++
![]()
++++++++++++++++++++++++++++++
kubectl create -f k8s_nginx_svc.yml
kubectl get svc
![]()
![]()
![]()