K8S部署Metrics-Server服务

简介: 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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
9天前
|
存储 Kubernetes 容器
K8S部署nexus
该配置文件定义了Nexus 3的Kubernetes部署,包括PersistentVolumeClaim、Deployment和服务。PVC请求20Gi存储,使用NFS存储类。Deployment配置了一个Nexus 3容器,内存限制为6G,CPU为1000m,并挂载数据卷。Service类型为NodePort,通过30520端口对外提供服务。所有资源位于`nexus`命名空间中。
|
2月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
142 60
|
2月前
|
Prometheus Kubernetes 监控
k8s部署针对外部服务器的prometheus服务
通过上述步骤,您不仅成功地在Kubernetes集群内部署了Prometheus,还实现了对集群外服务器的有效监控。理解并实施网络配置是关键,确保监控数据的准确无误传输。随着监控需求的增长,您还可以进一步探索Prometheus生态中的其他组件,如Alertmanager、Grafana等,以构建完整的监控与报警体系。
271 62
|
1月前
|
Kubernetes Cloud Native 微服务
云原生入门与实践:Kubernetes的简易部署
云原生技术正改变着现代应用的开发和部署方式。本文将引导你了解云原生的基础概念,并重点介绍如何使用Kubernetes进行容器编排。我们将通过一个简易的示例来展示如何快速启动一个Kubernetes集群,并在其上运行一个简单的应用。无论你是云原生新手还是希望扩展现有知识,本文都将为你提供实用的信息和启发性的见解。
|
1月前
|
存储 Kubernetes 网络协议
k8s的无头服务
Headless Service 是一种特殊的 Kubernetes 服务,其 `spec:clusterIP` 设置为 `None`,不会分配 ClusterIP,通过 DNS 解析提供服务发现。与普通服务不同,Headless Service 不提供负载均衡功能,每个 Pod 都有唯一的 DNS 记录,直接映射到其 IP 地址,适用于有状态应用的场景,如与 StatefulSet 一起部署数据库。示例中通过创建 Nginx 的 StatefulSet 和 Headless Service,展示了如何直接访问单个 Pod 并进行内容修改。
53 3
|
1月前
|
存储 Kubernetes Devops
Kubernetes集群管理和服务部署实战
Kubernetes集群管理和服务部署实战
59 0
|
2月前
|
NoSQL 关系型数据库 Redis
高可用和性能:基于ACK部署Dify的最佳实践
本文介绍了基于阿里云容器服务ACK,部署高可用、可伸缩且具备高SLA的生产可用的Dify服务的详细解决方案。
|
Kubernetes 开发者 微服务
简化Kubernetes应用部署工具-Helm之Hook
本文讲的是简化Kubernetes应用部署工具-Helm之Hook【编者的话】微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购。
2566 0
|
3天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
5天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
21 2

热门文章

最新文章