K8S部署Metrics-Server服务

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: K8S部署Metrics-Server服务

1.下载并解压Metrics-Server

https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz

tar -zxvf v0.3.6.tar.gz

2.修改Metrics-Server配置文件

cd metrics-server-0.3.6/deploy/1.8+/

vim metrics-server-deployment.yaml

vim metrics-server-deployment.yaml文件(修改后的)

---

apiVersion: v1

kind: ServiceAccount

metadata:

 name: metrics-server

 namespace: kube-system

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: metrics-server

 namespace: kube-system

 labels:

   k8s-app: metrics-server

spec:

 selector:

   matchLabels:

     k8s-app: metrics-server

 template:

   metadata:

     name: metrics-server

     labels:

       k8s-app: metrics-server

   spec:

     serviceAccountName: metrics-server

     volumes:

     # mount in tmp so we can safely use from-scratch images and/or read-only containers

     - name: tmp-dir

       emptyDir: {}

     containers:

     - name: metrics-server

       image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6

       imagePullPolicy: IfNotPresent

       command:

       - /metrics-server

       - --kubelet-insecure-tls

       - --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname

       volumeMounts:

       - name: tmp-dir

         mountPath: /tmp

       resources:

         limits:

           cpu: 300m

           memory: 200Mi

         requests:

           cpu: 200m

           memory: 100Mi

3.安装Metrics-Server

kubectl apply -f metrics-server-0.3.6/deploy/1.8+/

4.查看node信息

[root@master 1.8+]# kubectl top node

NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%  

master   289m         7%     1315Mi          48%      

node01   119m         2%     910Mi           33%      

node02   100m         2%     628Mi           23%

5、测试HPA

1)、创建部署deployment,这里设置副本数是1

apiVersion: v1

kind: Service

metadata:

 name: svc-hpa

 namespace: default

spec:

 selector:

   app: nginx

 type: NodePort  ##注意这里是NodePort,下面压力测试要用到。

 ports:

 - name: http

   port: 80

---

apiVersion: apps/v1

kind: Deployment

metadata:

 name: nginx-deployment

spec:

 replicas: 1

 selector:

    matchLabels:

      app: nginx

 template:

   metadata:

     labels:

       app: nginx

   spec:

     containers:

     - name: nginx

       image: docker.io/nginx

       ports:

       - containerPort: 80

       resources:

         limits:

            cpu: 50m

            memory: 50Mi

         requests:

            cpu: 50m

            memory: 50Mi

2)、设定自动扩容的条件

kubectl autoscale deployment nginx-deployment --max=3 --min=1 --cpu-percent=50

使用ab工具进行压测

先安装ab

yum -y install httpd-tools -y

3)、使用ab工具进行压测

ab -c 500 -n 2000 http://192.168.111.129:31379/

发现副本成两个了

[root@master test]# kubectl get pod

NAME                               READY   STATUS    RESTARTS   AGE

nginx-deployment-859b474bd-2nnlv   1/1     Running   0          60m

nginx-deployment-859b474bd-pfm4l   1/1     Running   0          4m38s

过一段时间又变成了一个

[root@master test]# kubectl get pod

NAME                               READY   STATUS        RESTARTS   AGE

nginx-deployment-859b474bd-2nnlv   1/1     Running       0          61m

nginx-deployment-859b474bd-pfm4l   0/1     Terminating   0          5m23s

[root@master test]# kubectl get pod

NAME                               READY   STATUS    RESTARTS   AGE

nginx-deployment-859b474bd-2nnlv   1/1     Running   0          61m

看下hpa

[root@master test]# kubectl get hpa

NAME               REFERENCE                     TARGETS   MINPODS   MAXPODS   REPLICAS   AGE

nginx-deployment   Deployment/nginx-deployment   10%/50%   1         3         1          50m

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1天前
|
Kubernetes Java Docker
使用Kubernetes和Docker部署Java微服务
使用Kubernetes和Docker部署Java微服务
|
16小时前
|
Kubernetes 应用服务中间件 nginx
K8s高可用集群二进制部署-V1.20
2.4 部署Etcd集群 以下在节点1上操作,为简化操作,待会将节点1生成的所有文件拷贝到节点2和节点3. 1. 创建工作目录并解压二进制包 mkdir /opt/etcd/{bin,cfg,ssl} -p tar zxvf etcd-v3.4.9-linux-amd64.tar.gz mv etcd-v3.4.9-linux-amd64/{etcd,etcdctl} /opt/etcd/bin/
|
4天前
|
Kubernetes Ubuntu Linux
k8s部署grafana beyla实现app应用服务依赖图可观测
k8s部署grafana beyla实现app应用服务依赖图可观测
16 4
|
17天前
|
Kubernetes 数据处理 调度
天呐!部署 Kubernetes 模式的 Havenask 集群太震撼了!
【6月更文挑战第11天】Kubernetes 与 Havenask 集群结合,打造高效智能的数据处理解决方案。Kubernetes 如指挥家精准调度资源,Havenask 快速响应查询,简化复杂任务,优化资源管理。通过搭建 Kubernetes 环境并配置 Havenask,实现高可扩展性和容错性,保障服务连续性。开发者因此能专注业务逻辑,享受自动化基础设施管理带来的便利。这项创新技术组合引领未来,开启数据处理新篇章。拥抱技术新时代!
|
17天前
|
Kubernetes 前端开发 Serverless
Serverless 应用引擎产品使用合集之如何调用Kubernetes集群内服务
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
18小时前
|
Prometheus 监控 Kubernetes
一篇文章讲明白Kubernetes(k8s)部署Promehteus监控
一篇文章讲明白Kubernetes(k8s)部署Promehteus监控
|
20小时前
|
Prometheus 监控 Kubernetes
一篇文章讲明白Kubernetes(k8s)部署Promehteus监控
一篇文章讲明白Kubernetes(k8s)部署Promehteus监控
|
7天前
|
Kubernetes 前端开发 微服务
实操教程丨如何在K8S集群中部署Traefik Ingress Controller
实操教程丨如何在K8S集群中部署Traefik Ingress Controller
|
7天前
|
Kubernetes 容器 Perl
019.Kubernetes二进制部署插件dashboard
019.Kubernetes二进制部署插件dashboard
|
26天前
|
Kubernetes 微服务 容器
Aspire项目发布到远程k8s集群
Aspire项目发布到远程k8s集群
379 2
Aspire项目发布到远程k8s集群