国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

看看這5個維度是如何優化Kubernetes集群的

馬哥Linux運維 ? 來源:簡書 ? 作者:薛海山 ? 2021-09-24 14:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、節點配額和內核參數調整

對于公有云上的 Kubernetes 集群,規模大了之后很容器碰到配額問題,需要提前在云平臺上增大配額。這些需要增大的配額包括:

  • 虛擬機個數

  • vCPU 個數

  • 內網 IP 地址個數

  • 公網 IP 地址個數

  • 安全組條數

  • 路由表條數

  • 持久化存儲大小

參考gce隨著node節點的增加master節點的配置:

  • 1-5 nodes: n1-standard-1

  • 6-10 nodes: n1-standard-2

  • 11-100 nodes: n1-standard-4

  • 101-250 nodes: n1-standard-8

  • 251-500 nodes: n1-standard-16

  • more than 500 nodes: n1-standard-32

參考阿里云配置:

# max-file 表示系統級別的能夠打開的文件句柄的數量,一般如果遇到文件句柄達到上限時,會碰到"Too many open files"或者Socket/File: Can’t open so many files等錯誤。
fs.file-max=1000000

#配置arpcache大小
net.ipv4.neigh.default.gc_thresh1=1024
#存在于ARP高速緩存中的最少層數,如果少于這個數,垃圾收集器將不會運行。缺省值是128。

#保存在 ARP 高速緩存中的最多的記錄軟限制。垃圾收集器在開始收集前,允許記錄數超過這個數字 5 秒。缺省值是 512。
net.ipv4.neigh.default.gc_thresh2=4096

#保存在 ARP 高速緩存中的最多記錄的硬限制,一旦高速緩存中的數目高于此,垃圾收集器將馬上運行。缺省值是1024。
net.ipv4.neigh.default.gc_thresh3=8192

#以上三個參數,當內核維護的arp表過于龐大時候,可以考慮優化

#允許的最大跟蹤連接條目,是在內核內存中netfilter可以同時處理的“任務”(連接跟蹤條目)
net.netfilter.nf_conntrack_max=10485760

#哈希表大小(只讀)(64位系統、8G內存默認65536,16G翻倍,如此類推)
net.core.netdev_max_backlog=10000
#每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
net.netfilter.nf_conntrack_tcp_timeout_established=300
net.netfilter.nf_conntrack_buckets=655360

#關于conntrack的詳細說明:https://testerhome.com/topics/7509

#默認值:128指定了每一個realuserID可創建的inotifyinstatnces的數量上限
fs.inotify.max_user_instances=524288

#默認值:8192指定了每個inotifyinstance相關聯的watches的上限
fs.inotify.max_user_watches=524288

二、Etcd 數據庫

1、搭建高可用的etcd集群,集群規模增大時可以自動增加etcd節點;

目前的解決方案是使用etcd operator來搭建etcd 集群,operator是CoreOS推出的旨在簡化復雜有狀態應用管理的框架,它是一個感知應用狀態的控制器,通過擴展Kubernetes API來自動創建、管理和配置應用實例。

etcd operator 有如下特性:

  • ceate/destroy: 自動部署和刪除 etcd 集群,不需要人額外干預配置。

  • resize:可以動態實現 etcd 集群的擴縮容。

  • backup:支持etcd集群的數據備份和集群恢復重建

  • upgrade:可以實現在升級etcd集群時不中斷服務。

2、配置etcd使用ssd固態盤存儲;

3、設置 —quota-backend-bytes 增大etcd的存儲限制。默認值是 2G;

4、需要配置單獨的 Etcd 集群存儲 kube-apiserver 的 event。

三、Kube APIServer 配置

node節點數量 >= 3000, 推薦設置如下配置:

--max-requests-inflight=3000
--max-mutating-requests-inflight=1000

node節點數量在 1000 — 3000, 推薦設置如下配置:

--max-requests-inflight=1500
--max-mutating-requests-inflight=500

內存配置選項和node數量的關系,單位是MB:

--target-ram-mb=node_nums*60

四、Pod 配置

在運行 Pod 的時候也需要注意遵循一些最佳實踐,比如:

1、為容器設置資源請求和限制,尤其是一些基礎插件服務

spec.containers[].resources.limits.cpu
spec.containers[].resources.limits.memory
spec.containers[].resources.requests.cpu
spec.containers[].resources.requests.memory
spec.containers[].resources.limits.ephemeral-storage
spec.containers[].resources.requests.ephemeral-storage

在k8s中,會根據pod不同的limit 和 requests的配置將pod劃分為不同的qos類別:

  • Guaranteed

  • Burstable

  • BestEffort

當機器可用資源不夠時,kubelet會根據qos級別劃分遷移驅逐pod。被驅逐的優先級:BestEffort > Burstable > Guaranteed

2、對關鍵應用使用 nodeAffinity、podAffinity 和 podAntiAffinity 等保護,使其調度分散到不同的node上。比如kube-dns 配置:

affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
-weight:100
labelSelector:
matchExpressions:
-key:k8s-app
operator:In
values:
-kube-dns
topologyKey:kubernetes.io/hostname

3、盡量使用控制器來管理容器(如 Deployment、StatefulSet、DaemonSet、Job 等)Kube-scheduler 配置

設置 —kube-api-qps=100 默認值是 50Kube-controller-manager 配置

設置 —kube-api-qps=100 默認值是20設置 —kube-api-burst=100 默認值是30

作者:薛海山https://www.jianshu.com/p/e9fcc1a9eea

編輯:jq
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    114

    文章

    17788

    瀏覽量

    193106
  • kubernetes
    +關注

    關注

    0

    文章

    263

    瀏覽量

    9494

原文標題:Kubernetes 集群怎樣優化?看看這5個維度

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Kubernetes容器運行時containerd與CRI-O如何選擇

    Kubernetes 1.24版本正式移除了dockershim,Docker不再是K8s的默認容器運行時。這個變化直接影響了所有K8s集群的運維方式——升級到1.24+必須切換到containerd或CRI-O。
    的頭像 發表于 02-26 09:54 ?177次閱讀

    KubePi:開源Kubernetes可視化管理面板,讓集群管理如此簡單

    維人員 :能夠在一統一的界面上監控和管理所有集群資源,大幅提升效率。 企業IT :實現對跨地域、跨云的Kubernetes集群進行統一管理,提升運維效率。 二、核心功能特點:不止于可
    發表于 02-11 12:53

    Kubernetes kubectl命令行工具詳解

    kubectl是Kubernetes官方提供的命令行工具,作為與Kubernetes集群交互的主要接口,它通過調用Kubernetes API Server實現對
    的頭像 發表于 02-02 16:40 ?415次閱讀

    標準集群和虛擬集群的區別是什么?

    遵循行業標準就可以互聯互通。 虛擬集群則是在DMR常規數字模式基礎上,通過私有協議和軟件控制實現的“準集群”功能。它不是一官方標準,而是對標準功能的增強,如海能達XPT、北峰SVT、中興高達ECS。不需要專用的控制信道、呼叫建
    的頭像 發表于 09-19 16:52 ?780次閱讀
    標準<b class='flag-5'>集群</b>和虛擬<b class='flag-5'>集群</b>的區別是什么?

    借助京東AI言犀提升Kubernetes集群巡檢的效率和準確性

    介紹 目前k8s-cluster-inspector組件可以自動化完成Kubernetes集群巡檢,并在巡檢結果中給出當前集群存在的問題,問題分級,問題類型,問題解決方法。 示例巡檢數據結構如下
    的頭像 發表于 09-15 16:56 ?552次閱讀
    借助京東AI言犀提升<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>巡檢的效率和準確性

    Kubernetes安全加固的核心技術

    在生產環境中,Kubernetes集群的安全性直接關系到企業數據安全和業務穩定性。本文將從實戰角度,帶你掌握K8s安全加固的核心技術。
    的頭像 發表于 08-18 11:18 ?804次閱讀

    高效管理Kubernetes集群的實用技巧

    作為一名經驗豐富的運維工程師,我深知在日常的Kubernetes集群管理中,熟練掌握kubectl命令是提升工作效率的關鍵。今天,我將分享15經過實戰檢驗的kubectl實用技巧,幫助你像藝術家一樣優雅地管理K8s
    的頭像 發表于 08-13 15:57 ?925次閱讀

    Redis集群部署與性能優化實戰

    Redis作為高性能的內存數據庫,在現代互聯網架構中扮演著關鍵角色。作為運維工程師,掌握Redis的部署、配置和優化技能至關重要。本文將從實戰角度出發,詳細介紹Redis集群的搭建、性能優化以及監控運維的核心技術。
    的頭像 發表于 07-08 17:56 ?850次閱讀

    熱插拔算力集群

    熱插拔算力集群指在無需停機的情況下,動態增減計算節點或硬件的算力基礎設施,其核心價值在于實現資源的彈性伸縮和業務連續性。以下從關鍵技術、應用場景及優勢三維度分析: 一、關鍵技術支撐? 硬件熱插拔
    的頭像 發表于 06-26 09:20 ?1016次閱讀

    k8s網絡的基本介紹

    Kubernetes網絡是指在Kubernetes集群中不同組件之間進行通信和交互的網絡架構。
    的頭像 發表于 06-16 13:42 ?941次閱讀

    Ubuntu K8s集群安全加固方案

    在Ubuntu系統上部署Kubernetes集群時,若服務器擁有外網IP,需采取多層次安全防護措施以確保集群安全。本方案通過系統防火墻配置、TLS通信啟用、網絡策略實施和RBAC權限控制四
    的頭像 發表于 05-12 16:17 ?858次閱讀

    Kubernetes Helm入門指南

    Helm 是 Kubernetes 的包管理工具,它允許開發者和系統管理員通過定義、打包和部署應用程序來簡化 Kubernetes 應用的管理工作。Helm 的出現是為了解決在 Kubernetes
    的頭像 發表于 04-30 13:42 ?3084次閱讀
    <b class='flag-5'>Kubernetes</b> Helm入門指南

    k8s集群安全機制說明

    Kubernetes 作為一分布式集群的管理工具,保證集群的安全性是其一重要的任務。API Server 是
    的頭像 發表于 04-03 14:09 ?801次閱讀

    如何在基于Arm Neoverse平臺的CPU上構建分布式Kubernetes集群

    在本文中,我們將以 X(原 Twitter)為例,演示如何在基于 Arm Neoverse 平臺的 CPU 上構建分布式 Kubernetes 集群,以根據推文實時監控情緒變化。如此一來,你可以充分利用 Arm Neoverse 平臺的計算基礎,獲得更好的性能、效率和出色
    的頭像 發表于 03-25 15:58 ?836次閱讀
    如何在基于Arm Neoverse平臺的CPU上構建分布式<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>

    Kubernetes中部署MySQL集群

    一般情況下 Kubernetes 可以通過 ReplicaSet 以一 Pod 模板創建多個 pod 副本,但是它們都是無狀態的,任何時候它們都可以被一全新的 pod 替換。
    的頭像 發表于 03-18 16:22 ?787次閱讀
    <b class='flag-5'>Kubernetes</b>中部署MySQL<b class='flag-5'>集群</b>