部署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)
无法拉取镜像。
- 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 top nodes
Failed to make webhook authorizer request: the server Could not find the requested resource
在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会自动缩容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。