云计算之 docker 集群管理_ K8S_04 Deployment_SVC资源管理

# 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: 80



kubectl 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