<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Kubernetes 集群怎樣優(yōu)化?看看這5個(gè)維度

          共 3377字,需瀏覽 7分鐘

           ·

          2021-10-21 06:38


          作者:薛海山?

          鏈接:https://www.jianshu.com/p/e9fcc1a9eea

          轉(zhuǎn)載:DevOps技術(shù)

          一、節(jié)點(diǎn)配額和內(nèi)核參數(shù)調(diào)整

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

          • 虛擬機(jī)個(gè)數(shù)

          • vCPU 個(gè)數(shù)

          • 內(nèi)網(wǎng) IP 地址個(gè)數(shù)

          • 公網(wǎng) IP 地址個(gè)數(shù)

          • 安全組條數(shù)

          • 路由表?xiàng)l數(shù)

          • 持久化存儲(chǔ)大小

          參考gce隨著node節(jié)點(diǎn)的增加master節(jié)點(diǎn)的配置:

          • 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 表示系統(tǒng)級(jí)別的能夠打開的文件句柄的數(shù)量,?一般如果遇到文件句柄達(dá)到上限時(shí),會(huì)碰到"Too many open files"或者Socket/File: Can’t open so many files等錯(cuò)誤。
          fs.file-max=1000000

          #?配置arp?cache?大小
          net.ipv4.neigh.default.gc_thresh1=1024
          #?存在于ARP高速緩存中的最少層數(shù),如果少于這個(gè)數(shù),垃圾收集器將不會(huì)運(yùn)行。缺省值是128。

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

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

          #?以上三個(gè)參數(shù),當(dāng)內(nèi)核維護(hù)的arp表過于龐大時(shí)候,可以考慮優(yōu)化

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

          #?哈希表大?。ㄖ蛔x)(64位系統(tǒng)、8G內(nèi)存默認(rèn)?65536,16G翻倍,如此類推)
          net.core.netdev_max_backlog=10000
          #?每個(gè)網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時(shí),允許送到隊(duì)列的數(shù)據(jù)包的最大數(shù)目。
          net.netfilter.nf_conntrack_tcp_timeout_established=300
          net.netfilter.nf_conntrack_buckets=655360

          #?關(guān)于conntrack的詳細(xì)說明:https://testerhome.com/topics/7509

          #?默認(rèn)值:?128?指定了每一個(gè)real?user?ID可創(chuàng)建的inotify?instatnces的數(shù)量上限
          fs.inotify.max_user_instances=524288

          #?默認(rèn)值:?8192?指定了每個(gè)inotify?instance相關(guān)聯(lián)的watches的上限
          fs.inotify.max_user_watches=524288

          二、Etcd 數(shù)據(jù)庫

          1、搭建高可用的etcd集群,集群規(guī)模增大時(shí)可以自動(dòng)增加etcd節(jié)點(diǎn);

          目前的解決方案是使用etcd operator來搭建etcd 集群,operator是CoreOS推出的旨在簡(jiǎn)化復(fù)雜有狀態(tài)應(yīng)用管理的框架,它是一個(gè)感知應(yīng)用狀態(tài)的控制器,通過擴(kuò)展Kubernetes API來自動(dòng)創(chuàng)建、管理和配置應(yīng)用實(shí)例。

          etcd operator 有如下特性:

          • ceate/destroy: 自動(dòng)部署和刪除 etcd 集群,不需要人額外干預(yù)配置。

          • resize:可以動(dòng)態(tài)實(shí)現(xiàn) etcd 集群的擴(kuò)縮容。

          • backup:支持etcd集群的數(shù)據(jù)備份和集群恢復(fù)重建

          • upgrade:可以實(shí)現(xiàn)在升級(jí)etcd集群時(shí)不中斷服務(wù)。

          2、配置etcd使用ssd固態(tài)盤存儲(chǔ);

          3、設(shè)置 —quota-backend-bytes 增大etcd的存儲(chǔ)限制。默認(rèn)值是 2G;

          4、需要配置單獨(dú)的 Etcd 集群存儲(chǔ) kube-apiserver 的 event。

          三、Kube APIServer 配置

          node節(jié)點(diǎn)數(shù)量 >= 3000, 推薦設(shè)置如下配置:

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

          node節(jié)點(diǎn)數(shù)量在 1000 — 3000, 推薦設(shè)置如下配置:

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

          內(nèi)存配置選項(xiàng)和node數(shù)量的關(guān)系,單位是MB:

          --target-ram-mb=node_nums?*?60

          四、Pod 配置

          在運(yùn)行 Pod 的時(shí)候也需要注意遵循一些最佳實(shí)踐,比如:

          1、為容器設(shè)置資源請(qǐng)求和限制,尤其是一些基礎(chǔ)插件服務(wù)

          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中,會(huì)根據(jù)pod不同的limit 和 requests的配置將pod劃分為不同的qos類別:

          • Guaranteed

          • Burstable

          • BestEffort

          當(dāng)機(jī)器可用資源不夠時(shí),kubelet會(huì)根據(jù)qos級(jí)別劃分遷移驅(qū)逐pod。被驅(qū)逐的優(yōu)先級(jí):BestEffort > Burstable > Guaranteed

          2、對(duì)關(guān)鍵應(yīng)用使用 nodeAffinity、podAffinity 和 podAntiAffinity 等保護(hù),使其調(diào)度分散到不同的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 配置

          設(shè)置 —kube-api-qps=100 默認(rèn)值是 50 Kube-controller-manager 配置

          設(shè)置 —kube-api-qps=100 默認(rèn)值是20 設(shè)置 —kube-api-burst=100 默認(rèn)值是30



          本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)里回復(fù)「m」獲取!

          推薦閱讀:

          “臉書” 回應(yīng)全網(wǎng) 宕機(jī) 7小時(shí):誤發(fā)一條指令!網(wǎng)友:這程序員不得祭天?

          什么是 “千年蟲” 問題?

          精品 IDEA 插件大匯總!值得收藏


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號(hào)內(nèi)回復(fù)「1024」,即可免費(fèi)獲?。?!



          瀏覽 57
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品久久久久三级无码 | 婷婷五月天激情小说视频 | 青青五月天 | 露脸丨91丨九色露脸 | 天堂男人在线视频 |