K8S - day02
# rc 痛点
1. edit 编辑rc配置后,只有启动新的pod才生效
2. rc滚动升级后,pod标签也升级,导致svc关联不上
3. 执行滚动升级,需要原来的配置文件
# 新的资源 -- Deployment
-- 解决了rc痛点
创建deployment资源
kubectl create -f nginx-deploy.yaml
查看
kubectl get all /-o wide
查看版本 # 回滚不依赖配置文件,自动记载版本信息
kubectl rollout history deployment nginx-deployment
回滚
kubectl rollout undo deployment nginx-deployment --to-reversion=1
# rc VS deployment 管理pod的方式
1. rc直接管理pod
deployment -- rs -- 管理pod
deployment 升级生成新的rs 管理新的pod
2. rs(ReplicaSet) 有rc 95%的功能,rs由deployment自动创建
# 命令行创建deployment -- vs 配置文件创建
-- 可以记录使用的命令行,history 可以查看修改的具体内容
kubectl run aa --image=... -replicas=3 --record
修改
kubectl set image deployment aa aa=新版本
查看history
kubectl rollout history deployment aa
# deployment also need svc 以供外界访问
-- 可以命令行创建service
kubectl expose deployment aa --port=80 (vip端口) --type=NodePort
volume -- 持久化
# 分两种
1. pv 持久化存储 # 对接来源(存储类型)
2. pvc持久化存储,分配 # pod中,只负责用
# 存储的类型
NFS, glusterFS, ceph, MFS -- PV对接存储驱动
-- pvc 唯一绑定,在pod中,负责用
Horizontal Pod Autoscaler -- 自动扩展
# HPA: pod的水平自动扩展(弹性伸缩,max,min)
微服务 -- 开发架构 -- 拆业务
'''
mysql : 并发压力
'''
1. 步骤一: 创建dashboard
# dashboad 进行监控
-- deployment
-- service
1. 上传dashboad镜像 到私有仓库
docker load -- docker tag -- docker push
2. 根据yaml文件创建资源
github -- dashboad -- dashboard.yaml
kubectl create -f dashboard.yaml
kubectl create -f dashboard-svc.yaml
kubectl get all --namespace=kube-system
3. 访问dashboard
2.步骤二: 创建heapster, 创建HPA
# 实现HPA:
1. 搭建监控平台 -- heapster
'''
创建一个目录,上传5个yaml文件
上传三个docker镜像到私有仓库
kubectl create -f . # 根据配置文件创建资源
kubectl get all --namespace=kube-system # 验证
'''
2. 创建HPA,底层需要rc或deployment, 设置pod max and min
-- 扩容策略: --cpu 80 cpu使用百分比作为触发条件
'''
# 删除所有的deployment kubectl delete deployment
1. kubectl create -f nginx-deploy-hpa.yaml # 起deploy资源
2. 创建HPA资源
kubectl autoscale deployment nginx-deployment --max=8 --min=1 --cpu-percent=80
'''
K8S -- 资源关系
# HPA 最高级的资源
命令总结
# 删除所有的deployment
kubectl delete deployment