[英]Horizontal pod autoscaling in Kubernetes
我有一個集群,可以根據 pod 的 CPU 使用情況進行擴展。 文檔指出我應該通過快速縮放來防止顛簸。 我想嘗試自動縮放速度,但似乎找不到應用以下標志的位置:
我的目標是將冷卻計時器設置為低於5m或3m ,有誰知道這是如何完成的,或者我可以在哪里找到有關如何配置的文檔? 此外,如果這必須在 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.