我已经成功地遵循这里和这里的文档,将API规范和GKE后端部署到云endpoint。
这给我留下了一个这样的deployment.yaml:
apiVersion: v1
kind: Service
metadata:
name: esp-myproject
spec:
ports:
- port: 80
targetPort: 8081
protocol: TCP
name: http
selector:
app: esp-myproject
type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: esp-myproject
spec:
replicas: 1
template:
metadata:
labels:
app: esp-myproject
spec:
containers:
- name: esp
image: gcr.io/endpoints-release/endpoints-runtime:1
args: [
"--http_port=8081",
"--backend=127.0.0.1:8080",
"--service=myproject1-0-0.endpoints.myproject.cloud.goog",
"--rollout_strategy=managed",
]
ports:
- containerPort: 8081
- name: myproject
image: gcr.io/myproject/my-image:v0.0.1
ports:
- containerPort: 8080
这将在后端创建应用程序的单个副本。到目前为止,很好。。。
我现在想更新yaml文件,以声明方式指定自动缩放参数,以便在endpoint流量超过一个时,使应用的多个副本能够彼此并行运行。
我读过周围(O'Reilly书:库伯内特斯起来
HorizontalPodAutoscaler示例(来自文档):
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: php-apache
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: php-apache
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
提前感谢任何能为我解释这一点的人。
我也面临着同样的问题
如果您在GKE上并且面临启用API的问题
autoscaling/v1
autoscaling/v2beta1
虽然GKE版本大约是1.12到1.14
,但您无法应用autoscaling/v2beta2
的清单,但是您可以应用类似的东西
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: core-deployment
namespace: default
spec:
maxReplicas: 9
minReplicas: 5
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: core-deployment
metrics:
- type: Resource
resource:
name: cpu
targetAverageValue: 500m
如果你想根据利用率
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: core-deployment
namespace: default
spec:
maxReplicas: 9
minReplicas: 5
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: core-deployment
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 80
不需要,但这是推荐的,而且已经内置了。你可以建立自己的自动化系统,可以上下扩展,但问题是为什么,因为HPA已经支持它了。
这应该是直截了当的。您基本上在HPA定义中引用了您的部署:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: my-esp-project-hpa
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: esp-myproject <== here
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
我尝试过将deendpoint与云SQL和Hibernate集成。但是,每次都有错误。跟随我的测试: 1 -源文件夹中的persistence . XML:http://imgur.com/hKjf8Cs给我错误:http://imgur.com/QJe8rvq 2-资源文件夹中的persistence.xml给我错误: ServletInitializationParameters.java:5
我有一个来自endpoint原始数据存储API的endpoint模型,称为资源,我使用Resource.query(). fetch(10)请求10个项目。 问题是它返回一个资源数组,但根据“创建endpointAPI”的文档,我需要返回一个消息数组。 https://cloud.google.com/appengine/docs/python/endpoints/create_api 使用Goo
我正在使用这个链接构建一个使用GCM的简单聊天应用程序,我发现了这个伟大的特性“Google Cloud Endpoints”,它使事情变得更容易。但我不敢依赖它,因为我注意到它仍然是试验性的。我可以信任它还是应该使用Java servlet?
云-endpoint。 我正在学习Udacity教程。我对请求和响应的流程有点混淆,下面是我的理解 endpoint应该用注释,endpoint方法应该用注释,这些方法不应该返回原始数据类型。下面是一个endpoint方法 下面是我的ProfileForm和Profile类
尝试运行本地开发服务器时 我正在尝试解决打开zip文件或JAR清单时出错:C:\Program 但是我应该在哪里以及如何改变默认的-javaAgent:?
我正在尝试使用foreign拨打Rest电话。 我如何用Java以非声明的方式使用Feign client builder进行Gzip压缩,因为我没有application.yml来以传统方式进行压缩。 有没有办法使用编码器或拦截器的假装客户端构建器的方法来做同样的事情?