文章目录
使用阿里云主机ECS,
四台主机信息如下:
server1 — 私网IP:10.0.0.2 ----公网IP: 47.108.54.185 ---- 搭建docker仓库harbor
server2 — 私网IP:10.0.0.3 ----公网IP: 47.108.144.231 ---- k8s集群主节点
server3 — 私网IP:10.0.0.4 ----公网IP: 47.108.115.206 ---- k8s集群节点
server4 — 私网IP:10.0.0.5 ----公网IP: 47.108.28.42 ---- k8s集群节点
资源限制简介
k8s中使用request和request两种限制类型来对资源进行分配。
- request(资源需求):即运行pod的节点必须满足运行pod的最基本需求才能运行pod。
- limit(资源限制):即运行pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。
资源类型:
CPU 的单位是核心数,内存的单位是字节。
一个容器申请0.5个CPU,就相当于申请1个CPU的一半,你也可以加个后缀m 表示千分之一的概念。比如说100m的CPU,100豪的CPU和0.1个CPU都是一样的。
内存单位:
K、M、G、T、P、E #通常是以1000为换算标准的。
Ki、Mi、Gi、Ti、Pi、Ei #通常是以1024为换算标准的。
拉取stress镜像,并上传至harbor
内存限制
cpu限制
QoS class
Guaranteed
requests 与 limits 设置的一样
Burstable
BestEffort
对namespace设置资源限制
为namespace设置资源配额
资源监控
简介
metrics-server是集群核心监控数据的聚合器,metrics-server提供了/apis/metrics.k8s.io接口,通过这个接口,用户就可以调用集群的资源使用情况。集群中的节点上的kubelet都内置了cAdvisor服务(专门用于采集集群节点上所有资源情况)。只是cAdvisor缺少了merics-server,merics-server能提供一个统一的api接口。该api接口通过使用k8s中的kube-aggregator代理后端来开启一个访问入口。这个代理程序是集群自动开启的。
-
Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。
-
容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据。
-
Metrics API 只可以查询当前的度量数据,并不保存历史数据。
-
Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护。
-
必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据。
示例:
http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/nodes
http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/nodes/
http://127.0.0.1:8001/apis/metrics.k8s.io/v1beta1/namespace//pods/ -
Metrics Server 并不是 kube-apiserver 的一部分,而是通过 Aggregator 这种插件机制,在独立部署的情况下同 kube-apiserver 一起对外服务的。
-
kube-aggregator 其实就是一个根据 URL 选择具体的 API 后端的代理服务器。
-
Metrics-server属于Core metrics(核心指标),提供API metrics.k8s.io,仅提供Node和Pod的CPU和内存使用情况。而其他Custom Metrics(自定义指标)由Prometheus等组件来完成。
-
资源下载:https://github.com/kubernetes-incubator/metrics-server
拉取metrics-server镜像并上传至harbor
部署metrics-server
- Metrics-server部署:
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
也可以先下载,再apply
资源监控可视化
Dashboard可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。
网址:https://github.com/kubernetes/dashboard
拉取dashboard镜像并上传harbor
部署dashboard
根据https://blog.csdn.net/qq_43501926/article/details/122745125
配置server2节点的安全组
授权dashboard
默认dashboard对集群没有操作权限,需要授权
通过dashboard创建pod
通过dashboard缩放控制器
通过dashboard删除pod