在我的用例中,我需要按特定逻辑按比例放大有状态集,并按比例缩小。 我不确定HPA会有所帮助,因为我每次都需要创建一个副本,然后再发出通知以将其缩小,这意味着-应用程序将被缩放,然后在特定的时间内没有缩放缩小(HPA将继续旋转荚直到满足其条件,如果满足条件,它将缩小荚的大小,这是一个问题)。
我正在使用头盔进行部署。
我应该:
这里的最佳做法是什么?
答案 0 :(得分:0)
您可以设置一个CronJob,该ConfigMap会每隔一个(x分钟)生成一个Pod,并进行检查,例如通过使用StatefulSet来检查是否需要放大/缩小REST API。 / p>
此BLOCK BLOCK
将使用API reference docs,您可以使用Replace
来Patch
或Using kubectl proxy您的StatefulSet。
您可以通过以下方式实现:
Job
有关更多详细信息,请参见Without kubectl proxy。然后,您可以使用curl,wget或浏览器浏览API,如下所示:
$ kubectl proxy --port=8080 &
输出类似于以下内容:
$ curl http://localhost:8080/api/
可以通过将身份验证令牌直接传递到API服务器来避免使用kubectl代理,如下所示:
使用
{ "versions": [ "v1" ], "serverAddressByClientCIDRs": [ { "clientCIDR": "0.0.0.0/0", "serverAddress": "10.0.1.149:443" } ] }
方法:
grep/cut
输出与此类似:
# Check all possible clusters, as you .KUBECONFIG may have multiple contexts:
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'
# Select name of cluster you want to interact with from above output:
export CLUSTER_NAME="some_server_name"
# Point to the API server refering the cluster name
APISERVER=$(kubectl config view -o jsonpath="{.clusters[?(@.name==\"$CLUSTER_NAME\")].cluster.server}")
# Gets the token value
TOKEN=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='default')].data.token}"|base64 -d)
# Explore the API with TOKEN
curl -X GET $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure
或者通过对API的编程访问,Kubernetes正式支持Python和{{3}}客户端库。
希望对您有所帮助,如果您还有其他问题,请询问。