亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

伸縮Kubernetes到2500個(gè)節(jié)點(diǎn)中遇到的問(wèn)題和解決方法

JaysonWang / 1964人閱讀

摘要:自從起便號(hào)稱可以承載個(gè)以上的節(jié)點(diǎn),但是從數(shù)十到的路上,難免會(huì)遇到問(wèn)題。本片文章即分享在之路上的經(jīng)驗(yàn),包括遇到的問(wèn)題嘗試解決問(wèn)題以及找到真正的問(wèn)題。

Kubernetes自從1.6起便號(hào)稱可以承載5000個(gè)以上的節(jié)點(diǎn),但是從數(shù)十到5000的路上,難免會(huì)遇到問(wèn)題。

本片文章即分享Open API在kubernetes 5000之路上的經(jīng)驗(yàn),包括遇到的問(wèn)題、嘗試解決問(wèn)題以及找到真正的問(wèn)題。

遇到的問(wèn)題以及如何解決 問(wèn)題一:1 ~ 500個(gè)節(jié)點(diǎn)之后

問(wèn)題:

kubectl 有時(shí)會(huì)出現(xiàn) timeout(p.s. kubectl -v=6 可以顯示所有API細(xì)節(jié)指令)

嘗試解決:

一開(kāi)始以為是kube-apiserver服務(wù)器負(fù)載的問(wèn)題,嘗試增加proxy做replica協(xié)助進(jìn)行負(fù)載均衡

但是超過(guò)10個(gè)備份master的時(shí)候,發(fā)現(xiàn)問(wèn)題不是因?yàn)閗ube-apiserver無(wú)法承受負(fù)載,GKE通過(guò)一臺(tái)32-core VM就可以承載500個(gè)節(jié)點(diǎn)

原因:

排除以上原因,開(kāi)始排查master上剩下的幾個(gè)服務(wù)(etcd、kube-proxy)

開(kāi)始嘗試調(diào)整etcd

通過(guò)使用datadog查看etcd吞吐量,發(fā)現(xiàn)有異常延遲(latency spiking ~100 ms)

通過(guò)Fio工具做性能評(píng)估,發(fā)現(xiàn)只用到10%的IOPS(Input/Output Per Second),由于寫(xiě)入延遲(write latency 2ms)降低了性能

嘗試把SSD從網(wǎng)絡(luò)硬盤(pán)變?yōu)槊颗_(tái)機(jī)器有個(gè)local temp drive(SSD)

結(jié)果從~100ms —> 200us

問(wèn)題二:~1000個(gè)節(jié)點(diǎn)的時(shí)候

問(wèn)題:

發(fā)現(xiàn)kube-apiserver每秒從etcd上讀取500mb

嘗試解決:

通過(guò)Prometheus查看container之間的網(wǎng)絡(luò)流量

原因:

發(fā)現(xiàn)Fluentd和Datadog抓取每個(gè)節(jié)點(diǎn)上資料過(guò)于頻繁

調(diào)低兩個(gè)服務(wù)的抓取頻率,網(wǎng)絡(luò)性能從500mb/s降低到幾乎沒(méi)有

etcd小技巧:通過(guò)--etcd-servers-overrides可以將Kubernetes Event的資料寫(xiě)入作為切割,分不同機(jī)器處理,如下所示

--etcd-servers-overrides=/events#https://0.example.com:2381;https://1.example.com:2381;https://2.example.com:2381
問(wèn)題三:1000 ~ 2000個(gè)節(jié)點(diǎn)

問(wèn)題:

無(wú)法再寫(xiě)入數(shù)據(jù),報(bào)錯(cuò)cascading failure

kubernetes-ec2-autoscaler在全部的etcd都停掉以后才回傳問(wèn)題,并且關(guān)閉所有的etcd

嘗試解決:

猜測(cè)是etcd硬盤(pán)滿了,但是檢查SSD依舊有很多空間

檢查是否有預(yù)設(shè)的空間限制,發(fā)現(xiàn)有2GB大小限制

解決方法:

在etcd啟動(dòng)參數(shù)中加入--quota-backend-bytes

修改kubernetes-ec2-autoscaler邏輯——如果超過(guò)50%出現(xiàn)問(wèn)題,關(guān)閉集群

各種服務(wù)的優(yōu)化 Kube masters 的高可用

一般來(lái)說(shuō),我們的架構(gòu)是一個(gè)kube-master(主要的 Kubernetes 服務(wù)提供組件,上面有kube-apiserver、kube-scheduler 和kube-control-manager)加上多個(gè)slave。但是要達(dá)到高可用,要參考一下方式實(shí)現(xiàn):

kube-apiserver要設(shè)置多個(gè)服務(wù),并且通過(guò)參數(shù)--apiserver-count重啟并且設(shè)定

kubernetes-ec2-autoscaler可以幫助我們自動(dòng)關(guān)閉idle的資源,但是這跟Kubernetes scheduler的原則相悖,不過(guò)通過(guò)這些設(shè)定,可以幫助我們盡量集中資源。

{
"kind" : "Policy",
"apiVersion" : "v1",
"predicates" : [
  {"name" : "GeneralPredicates"},
  {"name" : "MatchInterPodAffinity"},
  {"name" : "NoDiskConflict"},
  {"name" : "NoVolumeZoneConflict"},
  {"name" : "PodToleratesNodeTaints"}
  ],
"priorities" : [
  {"name" : "MostRequestedPriority", "weight" : 1},
  {"name" : "InterPodAffinityPriority", "weight" : 2}
  ]
}

以上為調(diào)整kubernetes scheduler范例,通過(guò)調(diào)高InterPodAffinityPriority的權(quán)重,達(dá)到我們的目的。更多示范參考范例.

需要注意的是,目前Kubernetes Scheduler Policy并不支持動(dòng)態(tài)切換,需要重啟kube-apiserver(issue: 41600)

調(diào)整scheduler policy造成的影響

OpenAI使用了KubeDNS ,但不久后發(fā)現(xiàn)——

問(wèn)題:

經(jīng)常出現(xiàn)DNS查詢不到的情況(隨機(jī)發(fā)生)

超過(guò) ~200QPS domain lookup

嘗試解決:

嘗試查看為何有這種狀態(tài),發(fā)現(xiàn)有些node上跑了超過(guò)10個(gè)KuberDNS

解決方法:

由于scheduler policy造成了許多POD的集中

KubeDNS很輕量,容易被分配到同一節(jié)點(diǎn)上,造成domain lookup的集中

需要修改POD affinity(相關(guān)介紹),盡量讓KubeDNS分配到不同的node之上

affinity:
 podAntiAffinity:
   requiredDuringSchedulingIgnoredDuringExecution:
   - weight: 100
     labelSelector:
       matchExpressions:
       - key: k8s-app
         operator: In
         values:
         - kube-dns
     topologyKey: kubernetes.io/hostname
新建節(jié)點(diǎn)時(shí)Docker image pulls緩慢的問(wèn)題

問(wèn)題:

每次新節(jié)點(diǎn)建立起來(lái),docker image pull都要花30分鐘

嘗試解決:

有一個(gè)很大的container image Dota,差不多17GB,影響了整個(gè)節(jié)點(diǎn)的image pulling

開(kāi)始檢查kubelet是否有其他image pull選項(xiàng)

解決方法:

在kubelet增加選項(xiàng)--serialize-image-pulls=false來(lái)啟動(dòng)image pulling,讓其他服務(wù)可以更早地pull(參考:kubelet啟動(dòng)選項(xiàng))

這個(gè)選項(xiàng)需要docker storgae切換到overlay2(可以參考docker教學(xué)文章)

并且把docker image存放到SSD,可以讓image pull更快一些

補(bǔ)充:source trace

// serializeImagePulls when enabled, tells the Kubelet to pull images one
// at a time. We recommend *not* changing the default value on nodes that
// run docker daemon with version  < 1.9 or an Aufs storage backend.
// Issue #10959 has more details.
SerializeImagePulls *bool `json:"serializeImagePulls"`
提高docker image pull的速度

此外,還可以通過(guò)以下方式來(lái)提高pull的速度

kubelet參數(shù)--image-pull-progress-deadline要提高到30mins
docker daemon參數(shù)max-concurrent-download調(diào)整到10才能多線程下載

網(wǎng)絡(luò)性能提升

Flannel性能限制

OpenAI節(jié)點(diǎn)間的網(wǎng)絡(luò)流量,可以達(dá)到10-15GBit/s,但是由于Flannel所以導(dǎo)致流量會(huì)降到 ~2GBit/s

解決方式是拿掉Flannel,使用實(shí)際的網(wǎng)絡(luò)

hostNetwork: true

dnsPolicy: ClusterFirstWithHostNet

這里還有一些注意事項(xiàng)需要詳細(xì)閱讀


想要簡(jiǎn)單易用、生產(chǎn)就緒的Kubernetes?試試好雨Rainbond——以應(yīng)用的方式包裝Kubernetes,理解和使用更簡(jiǎn)單,各種管理流程開(kāi)箱即用!

好雨Rainbond(云幫)是一款以應(yīng)用為中心的開(kāi)源PaaS,深度整合基于Kubernetes的容器管理、Service Mesh微服務(wù)架構(gòu)最佳實(shí)踐、多類型CI/CD應(yīng)用構(gòu)建與交付、多數(shù)據(jù)中心資源管理等技術(shù),為用戶提供云原生應(yīng)用全生命周期解決方案,構(gòu)建應(yīng)用與基礎(chǔ)設(shè)施、應(yīng)用與應(yīng)用、基礎(chǔ)設(shè)施與基礎(chǔ)設(shè)施之間互聯(lián)互通的生態(tài)體系,滿足支撐業(yè)務(wù)高速發(fā)展所需的敏捷開(kāi)發(fā)、高效運(yùn)維和精益管理需求。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/32659.html

相關(guān)文章

  • LC3視角:Kubernetes下日志采集、存儲(chǔ)與處理技術(shù)實(shí)踐

    摘要:下需要為每個(gè)單獨(dú)進(jìn)行采集配置采集日志目錄,采集規(guī)則,存儲(chǔ)目標(biāo)等,不易維護(hù)。日志服務(wù)的日志架構(gòu)實(shí)踐我們提出基于阿里云日志服務(wù)的日志處理架構(gòu),用以補(bǔ)充社區(qū)的方案,來(lái)嘗試解決場(chǎng)景下日志處理的一些細(xì)節(jié)體驗(yàn)問(wèn)題。 摘要: 在Kubernetes服務(wù)化、日志處理實(shí)時(shí)化以及日志集中式存儲(chǔ)趨勢(shì)下,Kubernetes日志處理上也遇到的新挑戰(zhàn),包括:容器動(dòng)態(tài)采集、大流量性能瓶頸、日志路由管理等問(wèn)題。本文...

    Guakin_Huang 評(píng)論0 收藏0
  • Kubernetes Autoscaling是如何工作?

    摘要:是如何工作的這是最近我們經(jīng)常被問(wèn)到的一個(gè)問(wèn)題。是一個(gè)控制循環(huán),用于監(jiān)視和縮放部署中的。最早版本僅支持作為可監(jiān)控的度量標(biāo)準(zhǔn)。是版本以上的首選方法。 Kubernetes Autoscaling是如何工作的?這是最近我們經(jīng)常被問(wèn)到的一個(gè)問(wèn)題。 所以本文將從Kubernetes Autoscaling功能的工作原理以及縮放集群時(shí)可以提供的優(yōu)勢(shì)等方面進(jìn)行解釋。 什么是Autoscaling 想...

    zhunjiee 評(píng)論0 收藏0
  • 關(guān)于容器,你不能不看這篇

    摘要:其次,青云的負(fù)載均衡器能感知到容器網(wǎng)絡(luò),而傳統(tǒng)的方案在內(nèi)部還需要再做一層虛擬網(wǎng)絡(luò),層的負(fù)載均衡器無(wú)法感知容器網(wǎng)絡(luò)。 前言 容器技術(shù)目前的市場(chǎng)現(xiàn)狀是一家獨(dú)大、百花齊放。 關(guān)于容器技術(shù),看看青云QingCloud 王淵命(老王)是如何看待它的,本文來(lái)自他在青云QingCloud 深圳站實(shí)踐課堂的演講。全文 2780字,閱讀時(shí)長(zhǎng)約為 11 分鐘。 容器是什么 容器的概念外延比較廣,討論的時(shí)候...

    zzzmh 評(píng)論0 收藏0
  • Kubernetes容器編排三大支柱

    摘要:在這種情況下,以防干擾其他集群租戶,調(diào)度器可能會(huì)考慮將作為驅(qū)逐的候選對(duì)象。其結(jié)果是負(fù)載均衡和調(diào)度之間交互作用。 每當(dāng)談及Kubernetes,我們經(jīng)常聽(tīng)到諸如資源管理、調(diào)度和負(fù)載均衡等術(shù)語(yǔ)。雖然Kubernetes提供了許多功能,但更關(guān)鍵的還是要了解這些概念,只有這樣才能更好地理解如何放置、管理并恢復(fù)工作負(fù)載。在這篇文章中,我提供了每個(gè)功能的概述,并解釋了它們是如何在Kubernete...

    劉厚水 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<