我使用的是Kube v 1 . 13 . 0版。由于Heapster从v1.11开始贬值,我不得不启用集群指标的API服务器来实现HPA。
附图仅供参考
有人能指导我逐步启用API Metrics服务器或任何演示视频吗。这将非常有助于进一步进行。
如果需要任何进一步的信息,请告诉我。
谢谢Deena
我能够在堆贬值时使用指标服务器
实现HPA。我遵循了以下步骤:
git克隆https://github.com/kubernetes-incubator/metrics-server.git
进入目录 cd 部署/1.8
并运行以下 yaml 文件:
[root@ip-10-0-1-91 1.8+]# kubectl apply -f aggregated-metrics-reader.yaml
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
[root@ip-10-0-1-91 1.8+]# kubectl apply -f auth-reader.yaml
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
[root@ip-10-0-1-91 1.8+]# kubectl apply -f auth-delegator.yaml
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
[root@ip-10-0-1-91 1.8+]# kubectl apply -f metrics-apiservice.yaml
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
[root@ip-10-0-1-91 1.8+]# kubectl apply -f resource-reader.yaml
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created
[root@ip-10-0-1-91 1.8+]# kubectl apply -f metrics-server-deployment.yaml
serviceaccount/metrics-server created
deployment.extensions/metrics-server created
[root@ip-10-0-1-91 1.8+]# kubectl apply -f metrics-server-service.yaml
service/metrics-server created
现在创建一个要测试自动缩放的pod(摘自kubernetes官方文档):
[root@ip-10-0-1-91 auto]# kubectl run --generator=run-pod/v1 php-apache --
image=k8s.gcr.io/hpa-example --requests=cpu=200m --expose --port=80
service/php-apache created
deployment.apps/php-apache created
现在创建一个自动缩放部署:
[root@ip-10-0-1-91 auto]# kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
horizontalpodautoscaler.autoscaling/php-apache autoscaled
现在检查HPA,您的指标是否来了:
[root@ip-10-0-1-91 manifests]# kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
php-apache Deployment/php-apache 0%/50% 1 10 1 2m
现在使用以下命令从另一个窗口生成负载:
kubectl run -i --tty load-generator --image=busybox /bin/sh
它将打开一个sh终端,您可以使用以下命令从该sh终端运行负载:
while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
在吊舱上装载足够的负载需要一分钟左右,您会看到一个吊杆:
[root@ip-10-0-1-91 manifests]# kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
php-apache Deployment/php-apache 120%/50% 1 10 4 7m
和豆荚缩放:
希望这有助于您的HPA工作。
编辑:
用以下yaml文件替换< code>deploy/1.8 中的< code > metrics-server-deployment . YAML 文件:
apiVersion: v1
kind: ServiceAccount
metadata:
name: metrics-server
namespace: kube-system
---
apiVersion: extensions/v1beta1
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:
- command:
- /metrics-server
- --metric-resolution=30s
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
name: metrics-server
image: k8s.gcr.io/metrics-server-amd64:v0.3.1
imagePullPolicy: Always
volumeMounts:
- name: tmp-dir
mountPath: /tmp
此外,在kubelet.conf中启用< code >-authentic ation-token-web hook ,然后您将能够获得HPA。
EDIT2:您需要在为其创建HPA的部署文件(在您的情况下是tomcat)中设置以下属性,然后只有您的HPA可以从您的部署中获取指标。
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
gRPC新手,找不到任何关于如何在服务器端启用SSL的例子。我使用openssl生成了一个密钥对,但是它报错说私钥无效。 这是我的代码
问题内容: 我有一个像下面的方法这样的现有服务: 有没有一种简单的方法可以同时允许JSONP调用和JSON(检测它)。这是本地人吗? 问题答案: 更新您的配置,如下所示: 请参阅此处的博客文章,其中提供了创建可跨域访问的wcf服务的演练。 这将使您的服务能够接受来自跨域来源的请求。 在确定是否填充您的响应(jsonp中的p)方面, 感谢@carlosfigueira: 如果使用.Net 4,则JS
问题内容: 我已经安装并正在osx上运行一个node.js服务器。我已经释放了一个聊天模块,并且正在愉快地运行它。我更改了一些内容,需要重新启动服务器才能看到效果。 我只知道如何通过关闭终端窗口,然后重新对其进行操作,然后再次运行节点chatdemo.js来重新启动。 有什么方法可以重启而不关闭终端吗? 谢谢。 问题答案: 如果它仅在运行(不是守护程序),则使用。 如果是守护进程,则可以尝试: 凡
我希望payara服务器作为服务运行。我以sudo的身份登录asadmin,并使用create-service命令。给出了以下输出。 这将在 /etc/init.d/ 文件夹中创建payara_production脚本,但一旦重新启动计算机,就不会执行此脚本。我必须手动启动payara才能运行它。 “您已经创建了服务,但是您需要自己启动它”是什么意思,我在之前使用的GlassFish版本中没有类似
问题内容: 我尝试将答案和论坛主题进行30种组合,但未找到正确的答案。 我需要做所有事情,但是如何启用curl int wamp服务器,因为我需要这样做? 有什么解决办法吗?我尝试取消注释-不起作用?我尝试插入wamp任务栏图标-php扩展名-php_curl我尝试将php_curl.dll复制到Win sistem中 不行 我需要做什么? 问题答案: 步骤如下: 关闭WAMP(如果正在运行) 导
本文向大家介绍如何使用PowerShell启动Windows服务?,包括了如何使用PowerShell启动Windows服务?的使用技巧和注意事项,需要的朋友参考一下 要启动特定的Windows服务,您需要使用Start-Service命令。 示例 上面的命令,将启动服务名称假脱机程序。要检查服务是否已启动,请使用Get-Service –Name Spooler命令。 输出结果 该命令不会显示命