Kubernetes中的水平pod自动缩放

时间:2018-05-22 14:16:25

标签: kubernetes kubectl google-kubernetes-engine

我有一个可根据我的pod的CPU使用量进行扩展的群集。该文档指出我应该通过缩放到快速来防止颠簸。我想玩自动缩放速度,但我似乎无法找到应用以下标志的位置:

  • - 水平-POD-自动配置器-缩减延迟
  • - 水平-POD-自动配置器-高档延迟

我的目标是将冷却时间设置为低于 5m 3m ,是否有人知道这是如何完成的,或者我在哪里可以找到有关如何配置此文档的文档?此外,如果必须在hpa自动缩放YAML文件中配置,是否有人知道应该使用什么定义或在哪里可以找到有关如何配置YAML的文档? This is a link to the Kubernetes documentation about scaling cooldowns i used.

3 个答案:

答案 0 :(得分:5)

HPA控制器是控制器管理器的一部分,您需要将标志传递给它,另请参阅docs。这不是你通过kubectl做的事情。它是控制平面(主控)的一部分,因此取决于您如何设置Kubernetes和/或您正在使用的产品。例如,在GKE中无法访问控制平面,在Minikube中你可以进入节点等等。

答案 1 :(得分:3)

根据我在这里的所有讨论是我的经验而且它为我工作,可能会帮助别人。

Exception主节点并编辑public async Task<ResponseStatus> ProcessRCSCNotification(IList<RecurringSubscriptionModelV2> recurringSubscriptionList, string appCD) { foreach (var model in modelList) { // Some code try { // Exception occurs here } catch (Exception ex) { // Logger is logging exception here } } return null; } ,如下所示

ssh
/etc/kubernetes/manifests/kube-controller-manager.manifest
command:
- /hyperkube
- controller-manager
- --kubeconfig=/etc/kubernetes/kube-controller-manager-kubeconfig.yaml
- --leader-elect=true
- --service-account-private-key-file=/etc/kubernetes/ssl/service-account-key.pem
- --root-ca-file=/etc/kubernetes/ssl/ca.pem
- --cluster-signing-cert-file=/etc/kubernetes/ssl/ca.pem
- --cluster-signing-key-file=/etc/kubernetes/ssl/ca-key.pem
- --enable-hostpath-provisioner=false
- --node-monitor-grace-period=40s
- --node-monitor-period=5s
- --pod-eviction-timeout=5m0s
- --profiling=false
- --terminated-pod-gc-threshold=12500

引用的部分是我添加的参数。如果没有重新启动kubelet服务,它就会更新。

如果您未发现此值已更新,则可以重新启动- --horizontal-pod-autoscaler-downscale-delay=2m0s - --horizontal-pod-autoscaler-upscale-delay=2m0s

注意:我使用kubespray

创建了HA群集

希望这可以成为某人的救星。

谢谢!

答案 2 :(得分:0)

如果您使用kubeadm设置集群,则将这些参数添加到controllerManagerExtraArgs下的kubeadm主配置文件中。 示例在下面给出

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
kubernetesVersion: ${k8s_version}
cloudProvider: vsphere
api:
  advertiseAddress: ${k8s_master_ip}
  controlPlaneEndpoint: ${k8s_master_lb_hostname}
apiServerCertSANs:
  - ${k8s_master_lb_ip}
  - ${k8s_master_ip0}
  - ${k8s_master_ip1}
  - ${k8s_master_ip2}
  - ${k8s_master_lb_hostname}
apiServerExtraArgs:
  endpoint-reconciler-type: lease
  requestheader-allowed-names:
  cloud-config: /etc/vsphere/config
  enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota,NodeRestriction,Priority"
controllerManagerExtraArgs:
  horizontal-pod-autoscaler-use-rest-clients: true
  horizontal-pod-autoscaler-downscale-delay: 5m0s
  horizontal-pod-autoscaler-upscale-delay: 2m0s
etcd:
  endpoints:
  - https://${k8s_master_ip0}:2379
  - https://${k8s_master_ip1}:2379
  - https://${k8s_master_ip2}:2379
  caFile: /etc/kubernetes/pki/etcd/ca.pem
  certFile: /etc/kubernetes/pki/etcd/client.pem
  keyFile: /etc/kubernetes/pki/etcd/client-key.pem

..
..
..