首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GKE上将k-本机的最小标度设置为1?

如何在GKE上将k-本机的最小标度设置为1?
EN

Stack Overflow用户
提问于 2019-06-13 03:58:30
回答 2查看 188关注 0票数 0

我在GKE上的k8s集群上安装了k-本机。现在,我正在使用一个示例HelloWorld应用程序运行一个测试。

由于我在GKE上运行,并且支付集群24/7的费用,所以将部署规模扩大到零没有意义,而且对于第一个请求总是有一个冷启动。

到目前为止我尝试过的东西清单

  1. 运行kubectl -n knative-serving edit cm config-autoscaler,然后按照此链接的意思将enable-scale-to-zero标志从“true”更改为“false”
  2. Ran kubectl annotate --overwrite svc helloworld-go-5jm9r autoscaling.knative.dev/minScale="1"此链接中所述
  3. 运行kubectl annotate --overwrite svc helloworld-go-5jm9r autoscaling.knative.dev/class-作为我自己的实验之一

不管我做了什么修改,启动用于服务的HelloWorld吊舱都会终止,因为没有更多的呼叫进入。

$ kubectl get po --watch NAME READY STATUS RESTARTS AGE helloworld-go-5jm9r-deployment-847d6fdb49-njktv 2/2 Running 0 13s helloworld-go-5jm9r-deployment-847d6fdb49-njktv 2/2 Terminating 0 96s helloworld-go-5jm9r-deployment-847d6fdb49-njktv 1/2 Terminating 0 99s helloworld-go-5jm9r-deployment-847d6fdb49-njktv 0/2 Terminating 0 118s

正确地将minScale因子设置为1应该会使吊舱永远存活下去,我错了吗?

人们说设置一个自定义的迷你选项到处都有,但我无法接通。我遗漏了什么?例如,我们欢迎运行的具体命令。

第二次尝试:

代码语言:javascript
复制
$ kubectl annotate --overwrite revision helloworld-go-5jm9r autoscaling.knative.dev/minScale="1"
revision.serving.knative.dev/helloworld-go-5jm9r annotated

$ kubectl describe revision
Name:         helloworld-go-5jm9r
Namespace:    default
Labels:       serving.knative.dev/configuration=helloworld-go
              serving.knative.dev/configurationGeneration=1
              serving.knative.dev/service=helloworld-go
Annotations:  autoscaling.knative.dev/minScale: 1
              serving.knative.dev/lastPinned: 1560488757
(..omit..)

$ kubectl get po --watch
NAME                                              READY   STATUS    RESTARTS   AGE
helloworld-go-5jm9r-deployment-65dd4cc9d4-4hhrw   2/2     Running   0          19s
helloworld-go-5jm9r-deployment-65dd4cc9d4-4hhrw   2/2   Terminating   0     98s
helloworld-go-5jm9r-deployment-65dd4cc9d4-4hhrw   1/2   Terminating   0     101s
helloworld-go-5jm9r-deployment-65dd4cc9d4-4hhrw   0/2   Terminating   0     2m

注释修订并没有让发射舱存活..。有什么想法吗?

答案:

这是PodAutoscaler,不是服务,也不是修订。

代码语言:javascript
复制
$ kubectl annotate --overwrite PodAutoscaler helloworld-go-5jm9r autoscaling.knative.dev/minScale="2"
podautoscaler.autoscaling.internal.knative.dev/helloworld-go-5jm9r annotated

$ kubectl describe  PodAutoscaler
Name:         helloworld-go-5jm9r
Namespace:    default
Labels:       app=helloworld-go-5jm9r
              serving.knative.dev/configuration=helloworld-go
              serving.knative.dev/configurationGeneration=1
              serving.knative.dev/revision=helloworld-go-5jm9r
              serving.knative.dev/revisionUID=706b4f42-8be6-11e9-a475-42010a920158
              serving.knative.dev/service=helloworld-go
Annotations:  autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
              autoscaling.knative.dev/metric: concurrency
              autoscaling.knative.dev/minScale: 2
(..omit..)

$ kubectl get po --watch
NAME                                              READY   STATUS              RESTARTS   AGE
helloworld-go-5jm9r-deployment-65dd4cc9d4-6rtr9   0/2     ContainerCreating   0          2s
helloworld-go-5jm9r-deployment-65dd4cc9d4-pqvcz   2/2     Running             0          116s
helloworld-go-5jm9r-deployment-65dd4cc9d4-6rtr9   1/2   Running   0     4s
helloworld-go-5jm9r-deployment-65dd4cc9d4-6rtr9   2/2   Running   0     4s
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-16 23:19:15

注释必须添加到PodAutoscaler对象中。

代码语言:javascript
复制
kubectl annotate --overwrite PodAutoscaler helloworld-go-5jm9r autoscaling.knative.dev/minScale="2"

或者,您可以按照minScale中的描述在yaml配置文件上设置链接

代码语言:javascript
复制
apiVersion: serving.knative.dev/v1alpha1 # Current version of Knative
kind: Service
metadata:
  name: helloworld-min2 # The name of the app
  namespace: default # The namespace the app will use
spec:
  template:
    spec:
      containers:
        - image: gcr.io/knative-samples/helloworld-go # The URL to the image of the app
          env:
            - name: TARGET # The environment variable printed out by the sample app
              value: "Go Jin v1"
    metadata:
      annotations:
        autoscaling.knative.dev/minScale: "2"
票数 2
EN

Stack Overflow用户

发布于 2019-06-13 08:30:46

我认为必须添加注释Revision对象,但是您正在注释Service对象,这就是为什么它不能工作的原因。

试着列出所有的Revision对象

代码语言:javascript
复制
kubectl get revision

并对您感兴趣的对象进行注释,使用与注释Service相同的命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56573188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档