什么是HPA https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale/ 我们前面有通过kubectl scale命令手动扩展我们的服务,生产环境中我们希望k8s能够根据一些指标信息自动扩展服务. 这时我们可以利用k8s的HPA(水平扩展)来根据 CPU利用率等指标自动扩缩Deployment.ReplicaSet 或 StatefulSet 中的 Pod 数量. HPA原理 HPA控制器通过Metr…
在 Kubernetes 中可以手动通过 kubectl scale 命令或通过修改 replicas 数量,可以实现 Pod 的扩容或缩容.Kubernetes 中还提供了 HPA(Horizontal Pod Autoscaling) 功能,可以根据当前负载的变化情况自动触发水平扩展或缩容的行为,从而合理的使用资源.从 Kubernetes  v1.8 开始,资源使用情况的度量(如容器的 CPU 和内存使用)可以通过 Metrics API 获取,HPA 使用这些 metics 信息来实现动…
emptyDir临时卷 有些应用程序需要额外的存储,但并不关心数据在重启后仍然可用. 例如,缓存服务经常受限于内存大小,将不常用的数据转移到比内存慢.但对总体性能的影响很小的存储中. 再例如,有些应用程序需要以文件形式注入的只读数据,比如配置数据或密钥. 临时卷就是为此类用例设计的.因为卷会遵从 Pod 的生命周期,与 Pod 一起创建和删除, 所以停止和重新启动 Pod 时,不会受持久卷在何处可用的限制. 下面我们就通过一个临时卷,让一个pod中的两个容器实现文件共享. apiVersion:…
ServiceAccount ServiceAccount是给运行在Pod的程序使用的身份认证,Pod容器的进程需要访问API Server时用的就是ServiceAccount账户. ServiceAccount仅局限它所在的namespace,每个namespace创建时都会自动创建一个default service account. 创建Pod时,如果没有指定Service Account,Pod则会使用default Service Account. 通过以下命令可以查看我们前面创建ch…
上篇我们已经安装好k8s1.23集群,现在我们开始使用k8s部署我们的项目 Pod Pod 是一组容器集合,是可以在 Kubernetes 中创建和管理的.最小的可部署的计算单元.这些容器共享存储.网络. 准备Demo 我们要实现多容器Pod所以准备两个WebAPI项目 新建一个webapi,命名为oneapi,里面新增TestController,新增两个api,一个是返回当前pod的ip,另一个是模拟高cpu操作 [ApiController] [Route("[controller]&qu…
上一篇我们通过deployment实现了pod的横向扩展,但是仍然不能负载,也不能对外提供服务,现在我们来看看如何通过k8s实现负载与外网访问 Service service为一组pod提供一个统一的入口,实现负载,也可实现外部访问. 原理  在Kubernetes集群的每个Node上都会运行一个kube-proxy服务进程,kube-proxy会通过我们定义的service,自动生成iptables规则,这样就能将到某个Service的访问请求转发到后端的多个Pod实例上. Service类型…
我们前面部署的pod调度取决于kube-scheduler,它会根据自己的算法,集群的状态来选择合适的node部署我们的pod. 下面我们来看下如何来根据我们自己的要求,来影响pod的调度. 定向node调度 有时候我们想将pod调度到某一些node上,比如csharp开发的程序,调度到某一些node,java开发的程序调度到另一些node,这时候我们可以选择定向调度. 定向调度需要用到我们前面说的label,具体做法就是将node打上指定的label,然后在定义pod/deployment的时…
1.创建aggregator证书 方法一:直接使用二进制源码包安装 $ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 $ chmod +x cfssl_linux-amd64 $ mv cfssl_linux-amd64 /usr/local/bin/cfssl $ wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 $ chmod +x cfssljson_linux-amd64 $…
  安装metrics server 参考:https://github.com/kubernetes-sigs/metrics-server kubectl  create -f components.yaml(components.yaml文件和涉及的镜像,都从网盘下载) 或者自己官网下载:https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml kubectl get…
Metrics API 介绍Metrics-Server之前,必须要提一下Metrics API的概念 Metrics API相比于之前的监控采集方式(hepaster)是一种新的思路,官方希望核心指标的监控应该是稳定的,版本可控的,且可以直接被用户访问(例如通过使用 kubectl top 命令),或由集群中的控制器使用(如HPA),和其他的Kubernetes APIs一样. 官方废弃heapster项目,就是为了将核心资源监控作为一等公民对待,即像pod.service那样直接通过api-…