标签:metrics k8s name Kubernetes kubectl myngx server Metrics Server
部署APIService
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: v1beta1.metrics.k8s.io
spec:
service:
name: metrics-server
namespace: kube-system
group: metrics.k8s.io
version: v1beta1
insecureSkipTLSVerify: true
groupPriorityMinimum: 100
versionPriority: 100
kubectl get apiservices.apiregistration.k8s.io | grep kube-system
部署metrics server
metrics-server release github地址
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
kubectl apply -f components.yaml
遇到问题:Failed to pull image “k8s.gcr.io/metrics-server-amd64:v0.3.6”: rpc error: code = Unknown desc = Error response from daemon: Get “https://k8s.gcr.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
无法拉取镜像。
一开始我使用的版本是scofield/metrics-server:v0.3.6,v0.3.6无法拉取镜像,然后改成v0.3.7就可以了。
- name: metrics-server
image: scofield/metrics-server:v0.3.7
imagePullPolicy: IfNotPresent
args:
- --cert-dir=/tmp
- --secure-port=4443
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
kubectl get pods -n kube-system|grep metrics
kubectl top nodes
查看metrics-server的日志,有以下报错:
Failed to make webhook authorizer request: the server could not find the requested resource
参考:k8s-v1.22安装metrics-server
在github/metrics server有提到metrics server支持的k8s版本,我使用的是1.23版本,需要使用0.4以上的版本,而我当前使用的是0.3+的版本。在网上找了一遍,将使用的镜像修改为phperall/metrics-server:v0.4.1
修改yaml文件后执行以下命令:
docker pull phperall/metrics-server:v0.4.1
kubectl apply -f components.yaml
换成0.4+镜像后日志打印正常。
HPA
定义Deployment和Service。定义resources.requests.cpu是关键。
apiVersion: v1
kind: Service
metadata:
name: myngx
spec:
ports:
- name: myngx
port: 3080
targetPort: 80
selector:
app: myngx
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myngx
spec:
replicas: 10
strategy:
rollingUpdate:
maxSurge: 40%
maxUnavailable: 40%
type: RollingUpdate
selector:
matchLabels:
app: myngx
template:
metadata:
labels:
app: myngx
spec:
containers:
- image: nginx:1.7.9
name: myngx
ports:
- containerPort: 80
resources:
requests:
cpu: 30m
kubectl autoscale deployment myngx --min=1 --max=40 --cpu-percent=20
kubectl get hpa
yum install httpd-tools -y
安装ab测试软件
watch -n 0.5 kubectl get pods
每隔0.5秒监控pod的变化
ab -c 5000 -n 50000 http://10.99.174.166:3080/
每次并发5000个请求,一共50000个请求。
kubectl top nodes
查看节点的CPU和内存使用情况。
在CPU使用增加时,Pod会自动扩容。CPU使用减少时,Pod会自动缩容。
标签:metrics,k8s,name,Kubernetes,kubectl,myngx,server,Metrics,Server 来源: https://blog.csdn.net/u012734723/article/details/122932800
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。