簡體   English   中英

Kubernetes 中的水平 pod 自動縮放

[英]Horizontal pod autoscaling in Kubernetes

我有一個集群,可以根據 pod 的 CPU 使用情況進行擴展。 文檔指出我應該通過快速縮放來防止顛簸 我想嘗試自動縮放速度,但似乎找不到應用以下標志的位置:

  • --horizo​​ntal-pod-autoscaler-downscale-delay
  • --horizo​​ntal-pod-autoscaler-upscale-delay

我的目標是將冷卻計時器設置為低於5m3m ,有誰知道這是如何完成的,或者我可以在哪里找到有關如何配置的文檔? 此外,如果這必須在 hpa 自動縮放 YAML 文件中進行配置,有沒有人知道應該為此使用什么定義,或者我可以在哪里找到有關如何配置 YAML 的文檔? 這是我使用的有關擴展冷卻時間的 Kubernetes 文檔的鏈接。

HPA 控制器是控制器管理器的一部分,您需要將標志傳遞給它,另請參閱文檔 這不是你會通過 kubectl 做的事情。 它是控制平面(主)的一部分,因此取決於您如何設置 Kubernetes 和/或您正在使用的產品。 例如,在 GKE 中,控制平面是不可訪問的,在 Minikube 中,您可以通過 ssh 進入節點等。

根據這里的所有討論是我的經驗,它對我有用,也許它可以幫助某人。

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
 - --horizontal-pod-autoscaler-downscale-delay=2m0s - --horizontal-pod-autoscaler-upscale-delay=2m0s
- --v=2
- --use-service-account-credentials=true
- --feature-gates=Initializers=False,PersistentLocalVolumes=False,VolumeScheduling=False,MountPropagation=False

引用的部分是我添加的參數。 無需重新啟動 kubelet 服務,它已更新。

如果您沒有發現此值已更新,您可以重新啟動systemctl restart kubelet

注意:我已經使用kubespray創建了 HA 集群

希望這可以成為某人的救星。

謝謝!

如果您使用 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

..
..
..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM