k8s弹性伸缩
安装dns附件组件并使用
Kubernetes主要支持两种service发现机制:环境变量和DNS。没有dns服务的时候,kubernetes会采用环境变量的形式,一旦有很多个service,环境变量会变得很复杂,为了解决这个问题,我们使用DNS服务。
pod资源的健康检查
探针的种类
- livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器
- readinessProbe;可用性检查,周期性检查服务是否可用,不可用将从service的endpoints中移除
探针的检测方法
- exec:执行一段命令
- httpGet:检测某个http请求的返回状态码
- tcpSocket:测试某个端口是否能够连接
dashboard的安装部署
namespace的作用
实现多租户的隔离
- 查看指定的namespace下的资源
kubectl get all --namespace=kube-system - 同一个namespace下不允许出现两个一样的service
- kubectl create namespace simon --创建一个namespace
- kubectl get namespace --查看有哪些namespace
- kubectl delete namespace simon --删除simon这个namespace下所有资源
- kubectl get all --all-namespace --查看所有namespace下的资源
反向代理访问k8s中的应用
访问k8s中应用的方式
- NodePort类型
type:NodePort
ports:
-port:80
targetPort:80
nodePort:30008 - ClusterIP类型(默认类型)
type:ClusterIP
ports:
-port:80
targetPort:80
访问方式:http://nodeIp:8080/api/v1/proxy/namespace/namespace名字/services/service名字
部署k8s的heapster监控
- grafana-service.yaml
- heapster-service.yaml
- influxdb-service.yaml
- heapster-controller.yaml
- influxdb-grafana-controller.yaml
弹性伸缩
Horizontal Pod Autoscaler的操作对象是Replication Controller、ReplicaSet或Deployment对应的Pod
根据观察到的CPU使用量与用户的阈值进行比对,做出是否需要增减实例数量的决策。controller目前使用heapSter来检测CPU使用量,检测周期默认是30秒。
- 创建hpa
kubectl autoscale replicationcontroller myweb --max=8 --min=1 --cpu-percent=10 - 压力测试
ab -n 500000 -c 100 http://172.16.68.2 --用pod的IP
网友评论