<table id="km2im"></table>
  • <bdo id="km2im"><center id="km2im"></center></bdo>
    • 自動秒收錄
    • 軟件:1973
    • 資訊:56261|
    • 收錄網站:185720|

    IT精英團

    運維入坑必看:Kubernetes平臺架構解讀

    運維入坑必看:Kubernetes平臺架構解讀

    瀏覽次數:
    評論次數:
    編輯: 樂詠
    信息來源: ITPUB
    更新日期: 2022-05-24 21:24:14
    摘要

    Kubernetes是一個開源容器編排平臺,管理大規模分布式容器化軟件應用,是云計算發展演進的一次徹底革命性的突破。Kubernetes是谷歌的第三代容器管理系統,是Borg獨特的控制器和Omega靈

    • 正文開始
    • 相關閱讀
    • 推薦作品

    它是Kubernetes是一個開源容器編排平臺,管理大規模分布式容器化軟件應用,.云計算發展和演變的革命性突破Kubernetes是Google的第三代容器管理系統,是Borg獨特的控制器和Omega靈活的調度程序的結合。Kubernetes中的應用程序被打包到與環境完全分離的容器映像中,應用程序被自動配置,資源分配被維護和跟蹤。

    Kubernetes基于應用為中心's技術架構和思想,向下屏蔽基礎設施差異,實現底層基礎設施資源的統一調度和安排;通過向上容器鏡像的標準化應用,實現應用負載的自動部署;通過中間Kubernetes的通用編排能力、開放API和自定義CRD擴展能力,打造云端原生操作系統能力,形成云計算新界面;Kubernetes,R & amp快速構建標準化、彈性高可靠、松耦合、易管理維護的應用系統,提升交付效率,降低運維復雜度。,的d團隊在技術架構上有三個能力:敏捷的彈性伸縮能力:不同于虛擬機的分鐘級彈性伸縮響應,容器應用可以實現秒級甚至毫秒級的彈性伸縮響應;智能的服務故障自愈能力:容器應用具有很強的自愈能力,可以實現應用故障的自動清除和重建。大規模的復制分發能力:容器應用標準化交付成果可以實現跨平臺、跨地域、云邊緣的一體化大規模復制和分發部署能力。

    一、Kubernetes整體架構

    庫伯內特斯是典型的主從分布式架構,,由集中式管理節點(Master Node),分布式的工作節點(Worker Node)輔助工具.組成

    1、集中式管理節點

    集中式管理節點,用于調度和管理群集。四大核心組件:,API Server:承擔集群的網關,實現統一認證和對外服務,同時也是管理節點/Pod資源的代理通道。Scheduler:資源調度器,除了Kubernetes默認調度器,還支持自定義調度器;ETCD:集群狀態統一存儲,類似Zookeeper的鍵值存儲;

    >
    • Controller Manger:控制管理器實現自愈、擴容、應用生命周期管理、服務發現、路由、服務綁定等能力;Kubernetes默認提供Replication Controller、Node Controller、Namespace Controller、Service Controller、Endpoints Controller、Persistent Controller、DaemonSet Controller等控制器。


    2、分布式的工作節點


    分布式的工作節點,工作節點運行業務應用容器;默認會運行三大核心組件
    • Kubelet:與管理節點通信并觸發指令執行,管理驅動網絡,存儲及容器運行時;

    • Kube Proxy:通過DNS實現服務發現,借助iptables規則引導訪問至服務IP,并將重定向至正確的后端應用,實現高可用負載均衡能力;

    • Container Runtime:容器運行時。為了擴展Kubernetes平臺適配能力,同時也標準化整個生態,通過CNI與CSI標準規范網絡及存儲的擴展;通過CRI與OCI標準規范容器鏡像及容器運行時的擴展;目前CRI支持的容器運行時有docker、rkt、cri-o、frankti、kata-containers和clear-containers等。


    3、輔助工具


    輔助工具,主要是輔助集群管理及網絡擴展:
    • kubectl通過API Server進行交互,實現集群管理的命令行工具;

    • Dashboard 是Kubernetes的web用戶管理監控界面;

    • Core DNS是可擴展的DNS服務器,實現集群服務發現能力。


    二、Kubernetes核心理念


    1、POD容器組,Kubernetes最小調度單元


    Pod是Kubernetes的最小調度及資源分配單元,Pod之間相互隔離,通常情況一個Pod只建議運行一個容器,當某些容器之間關系非常緊密(Tightly coupled),可以運行在同一Pod運行多個容器方便一起調度管理。一個Pod就是一個應用運行實例,通過同時運行多個Pod來實現應用橫向擴展能力。Pod本身沒有自恢復能力,當調度或運行失敗時,需要管理節點的Controller根絕配置觸發實現Pod重啟、重建或遷移等操作。



    從Pod啟動過程來看,Pod容器主要是Pause Container,Init Container以及App Container三種類型容器組成:
    • Pause Container:又叫Infra Container,Pod通過Pause Container實現Pod多個容器網絡共享,Pause Container最先啟動并綁定Pod唯一IP地址與各種網絡資源,其他容器通過加入Pause Container的Network namespace來實現網絡共享。Pause是C語言實現,鏡像非常小只有700KB左右,并且永遠處于Pause(暫停)狀態;官方鏡像是gcr.io/google_containers/pause-amd64:3.0,同時也支持自定義。

    • Init Container:Pod中可以自定義一個或者多個Init Container,按照順序依次啟動,在應用Container之前啟動并執行一些輔助任務,比如執行腳本、拷貝文件到共享目錄、日志收集、應用監控等。將輔助功能與主業務容器解耦,實現獨立發布和能力重用。除了不支持Readiness Probe,其他與特性與普通容器保持一致。

    • App Container:Pod真正承接業務的Container,一般情況會獨立運行,如果是有微服務治理等需求會搭配Sidecar Container一起運行。在Init Container啟動完成之后,App Container會并行啟動,但是需要等待所有App Container處于就緒狀態,整個Pod才算啟動成功。



    從POD的資源隔離來看,Pod容器主要由Linux提供的Namespace和Cgroup能力實現的,Namespace實現進程間隔離,Cgroup實現進程資源控制;其中Namespace由ipc 、uts 、net 、mnt 、pid 各種資源空間聯合組成。
    CRI是Kubernetes v1.5引入的,將Kubelet與容器運行時解耦;CRI中定義了容器鏡像的服務的接口,因為容器運行時與鏡像的生命周期是彼此隔離的,所以定義了RuntimeServiceImageService兩個服務,其中RuntimeService主要包含Sandbox和Container兩種容器的管理gRPC接口,Sandbox就是上面Pod啟動過程中提到的Pause容器。目前支持CRI的后端有cri-o,cri-containerd,rkt,frakti,docker等,cri-o是由redhat發起并開源且由社區驅動的container-runtime,輕量化專為kubernetes而生,主要目的就是替代docker作為kubernetes集群的容器運行時。


    2、Volume存儲卷,Kubernetes復雜的存儲架構



    存儲非常重要關鍵,同時也是生態與技術都比較復雜的領域,就linux、window兩個生態支持的文件系統就多達20+。對于Kubernete存儲架構設計一直在持續演進完善,為了盡可能多地兼容各種存儲平臺,Kubernetes以in-tree plugin的形式默認對接很多不同類型的存儲系統;同時也支持基于FlexVolume和CSI插件以out-of-tree plugin來實現自定義存儲服務。

    對Kubernetes存儲,主要有應用的基本配置文件讀取、密碼密鑰管理;應用的存儲狀態、數據存取,不同應用間數據共享等三大使用場景。目前Kubernetes支持的Volume Plugins如下表:



    Empty Dir:生命周期與Pod保持一致,當Pod刪除后emptyDir中的數據也會被自動清除。當前emptyDir支持的類型有內存、大頁內存、Node節點上Pod所在的文件系統。
    • ConfigMap:主要是承擔配置中心,用于存儲應用的配置數據,比如Springboot應用properties配置文件數據,但是空間大小限制在1MB內。

    • Secret:功能與ConfigMap類似,用于存儲應用的敏感數據,比如數據密碼、token、證書等,可以與ConfigMap聯合使用,同樣空間大小限制在1MB內。

    • HostPath:將Node節點本地文件系統路徑映射到pod容器中使用。與emptyDir不同之處就是Pod刪除后,HostPath中的數據Kubernetes根據用戶的配置,可以不被清除。

    • In-tree網絡存儲:網絡存儲跟隨Pod的生命周期,通過存儲插件對接不同類型存儲;其中FlexVolume雖然允許自定義開發驅動來掛載卷到集群Node節點上供Pod使用,但生命周期與pod同步。

    • PersistentVolumeClaim網絡存儲:具有獨立的生命周期,可以通過存儲的out-tree插件對接不同類型存儲。當前支持的存儲插件類型有FlexVolume與CSI。



    引入PV、PVC、StorageClass之后,資源管控更加靈活,團隊職責更加明確,研發人員只需考慮存儲需求(IO、容量、訪問模式等),不需要關注底層存儲細節;底層復雜的細節都由專業的集群管理與存儲管理員來完成。
    CSI是Kubernetes 1.9版本開始引入,建立一套標準的存儲管理接口,通過該接口為容器提供存儲服務。從而實現Kubernetes平臺與存儲服務驅動完全解耦。CSI主要包含CSI Controller ServerCSI Node Server兩個部分,Controller Server主要實現創建、刪除、掛載、卸載等控制功能;Node Server主要實現的是Node節點上的 mount、unmount的操作。



    CSI Controller Server和External CSI SideCar是通過 Unix Socket來進行通信的,CSI Node Server和Kubelet也是通過Unix Socket來通信。CSI實現類也日趨完善,比如ExpandCSIVolumes可以實現文件系統擴容;VolumeSnapshotDataSource可以實現數據卷的快照;VolumePVCDataSource實現自定義定PVC數據源;CSIInlineVolume在Volume中定義一些CSI的驅動。阿里云也開源了阿里云盤、NAS、CPFS、OSS、LVM等CSI存儲插件。


    3、Ingress與Service,百花齊放的Kubernetes網絡



    Kubernetes 容器網絡非常復雜,涉及的概念也比較多,比如Pod網絡,Service網絡,Cluster IP,NodePort,LoadBalancer和Ingress等,為此將Kubernetes 的網絡參考TCP/IP協議棧抽象為四層:

    第0層:Node節點網絡比較簡單,就是保證Kubernetes 節點(物理或虛擬機)之間能夠正常IP尋址和互通的網絡,一般由底層(公有云或數據中心)網絡基礎設施支持。
    第1層:Pod是Kubernetes的最小調度單元,Pod網絡就是確保Kubernetes集群中所有Pod(包括同一節點及不同節點上的Pod),邏輯上在同一個平面網絡內,能夠相互IP尋址和通信的網絡。是容器網絡最復雜部分,通過各種容器網絡插件滿足不同網絡需求,通過CNI標準化及開放網絡自定義能力。
    第3層:雖然單個Pod都有IP,但是與Pod生命周期一致,為了解決一組相同Pod統一穩定的訪問地址,并且將請求均衡的分發到后端Pod應用服務中。Kubernetes引入了Service網絡,以此實現服務發現(Service Discovery)和負載均衡(Load Balancing)能力,底層是通過Kube-Proxy+iptables轉發實現,對應用無侵入且不穿透代理,沒有額外性能損耗。
    第4層:Kubernetes Service網絡是集群內部網絡,集群外部是無法訪問,需要將內部服務暴露外部才能訪問。Kubernetes通過NodePort,LoadBalancer和Ingress多個方式構建外部網絡接入能力。



    CNI最早是由CoreOS發起的容器網絡規范,是Kubernetes網絡插件的基礎。Container Runtime在創建容器時,先創建好network namespace,再調用CNI插件為network namespace配置網絡,最后啟動容器內進程。CNI插件包括CNI Plugin與IPAM Plugin兩部分:

    • CNI Plugin:負責配置管理容器網絡,包括兩個基本的接口:

    • 網絡配置: AddNetwork(net NetworkConfig, rt RuntimeConf) (types.Result, error)

    • 清理網絡: DelNetwork(net NetworkConfig, rt RuntimeConf) error

    • IPAM Plugin:負責容器IP地址分配,實現包括host-local和dhcp。



    容器網絡技術也在持續演進發展,社區開源的網絡組件眾多,比如Flannel、Calico、Cilium、OVN等,每個組件都有各自的優點及適應的場景,難以形成大一統的組件及解決方案。


    4、Workload工作負載,Kubernetes應用中心理念



    Kubernetes通過工作負載Workload實現應用管理部署與發布,踐行Kubernetes以應用為中心的理念。Kubernetes支持多種類型的工作負載,包含Deployment、StatefulSet、ReplicaSet、Job、CronJob、DaemonSet,以滿足不同場景的需求。

    • Deployment與ReplicaSet:替換原來的 ReplicationController對象,管理部署無狀態應用,Deployment管理不同版本的ReplicaSet,ReplicaSet管理相同版本的Pod,通過Deployment調整 ReplicaSet的終態副本數,控制器會維持實際運行的Pod數量與期望的數量一致,Pod 出故障時會自動重啟或恢復。

    • StatefulSet:管理部署有狀態應用,創建的Pod擁有根據規范創建的持久型標識符。Pod遷移或銷毀重啟后,標識符仍會保留。如每個Pod有序號,可以按序號創建更新或刪除;Pod有唯一網絡標志(hostname)或獨享的存儲PV,支持灰度發布等。

    • DaemonSet:管理部署每個節點運行的守護任務,如監控、日志收集等。新加入的節點也運行,移出節點是需要刪除。也可以通過標簽的指定運行節點。

    • Job與Cronjob:Job是一次性任務,可創建一個或多個Pod,監控Pod是否成功運行或終止;根據Pod狀態設置重復次數、并發度、重啟策略。Cronjob是定時調度的Job,可以指定運行時間、等待時間、是否并行運行、運行次數限制。

    在Kubernetes生態中,還有一些提供額外操作的第三方工作負載,同時也可以通過使用CRD自定義工作負載,還有就是Device Plugin驅動的硬件工作負載。


    5、Controller控制器,Kubernetes集控管理中心


    Controller Manager作為Kubernetes集控管理中心,負責集群的Node、Pod副本、服務端點(Endpoint)、命名空間(Namespace)、服務賬號(ServiceAccount)、資源定額(ResourceQuota)的資源管理,并通過API Server接口實時監控集群的每個資源對象的狀態,一旦發生故障導致系統狀態發生變化,就會立即嘗試修復到“期望狀態”。



    • Replication Controller:保證集群中一個RC所關聯的Pod副本數始終保持預設值。

    • ResourceQuota Controller:確保Kubernetes中的資源對象在任何時候都不會超量占用系統物理資源。有容器,Pod以及Namespace三個級別。

    • Namespace Controller:通過API Server定時讀取Namespace信息。如果Namespace被API標記為優雅刪除(即設置刪除期限,DeletionTimestamp),則將該Namespace狀態設置為“Terminating”,并保存到etcd中。同時刪除該Namespace下的ServiceAccount、RC、Pod等資源對象。

    • Endpoint Controller:Endpoints是Service對應所有Pod副本的訪問地址,Endpoint Controller主要負責監聽Service和對應的Pod副本的變化,從而生成和維護Endpoints對象控制器。



    • Deployment Controller:Deployment通過控制ReplicaSet,ReplicaSet再控制Pod,最終由Deployment Controller驅動達到期望狀態,Deployment Controller會監聽 DeploymentInformer、ReplicaSetInformer、PodInformer 三種資源。

    另外,在Kubernetes v1.6引入了云控制管理器Cloud Controller Manager(CCM),提供與阿里公有云基礎產品對接的支持。


    三、總結



    總結一下,Kubernetes不僅是一個強大的容器編排系統本身,而且促進了一個龐大的工具和服務的生態系統,云原生時代的操作系統,形成云計算新界面。   

    從設計理念方面,Kubernetes是以應用為中心的構理念,向下屏蔽基礎設施差異,實現底層基礎資源統一調度及編排;向上通過容器鏡像標準化應用,實現應用負載自動化部署;中間通過Kubernetes通用的編排能力,開放API以及自定義CRD擴展能力;
    從技術架構方面,Kubernetes是典型的分布式主從架構,由Master控制節點與可以水平擴展的Worker工作節點組成,Master實現集中式控制管理,Worker實現分布式運行;與Openstack的架構還有基于SpringCloud研發的分微服業務應用沒有太大區別。
    從設計模式方面,Kubernetes通過定義大量的模型(原語、資源對象、配置、常用的 CRD),通過配置管理模型實現集群資源的控制;雖然模型多切復雜,可以分層(核心層,隔離與服務訪問層,調度層,資源層)逐步理解。
    從平臺擴展方面,Kubernetes是一個開放可擴展平臺,不僅有開發的API,開放標準(CNI,CSI,CRI等)以及CRD,不僅是一個單純運行時平臺,同時面向運維的開發平臺。


    作者丨巨子嘉

    來源丨公眾號:巨子嘉(ID:juzijia-club)


    標簽:容器 節點 網絡
    記得保命!捕捉Linux下的所有高危命令!
    ? 上一篇 2022-05-24
    • 記得保命!捕捉Linux下的所有高危命令!
      0閱讀 0條評論 個贊
      1、rm-rf命令該命令可能導致不可恢復的系統崩壞。>rm-rf/#強制刪除根目錄下所有東西。>rm-rf*#強制刪除當前目錄的所有文件。>rm-rf.#強制刪除當前……
    • Kubernetes 4000節點運維經驗分享
      0閱讀 0條評論 個贊
      1摘要在PayPal,我們最近開始試水Kubernetes。我們大部分的工作負載都運行在ApacheMesos上,而作為遷移的一部分,我們需要從性能方面了解下運行Kubernetes集群……
    • 干貨:10個聚類算法的完整Python操作實例
      0閱讀 0條評論 個贊
      來源:海豚數據科學實驗室本文約7000字,建議閱讀14分鐘本文將介紹一篇關于聚類的文章,10種聚類介紹和Python代碼。聚類或聚類分析是無監督學習問題。它通常被用作數據分析技術,用于發現數據中的有趣……
    • 為什么NodeJS是構建微服務的最佳選擇?
      4閱讀 0條評論 個贊
      作者|RonFybish譯者|Sambodhi策劃|閆園園什么是微服務微服務是一種應用架構,它將每個應用功能都放在自己的服務中,與其他服務隔離。這些服務是松散耦合的,可獨立部署。這種架構……
    • 學習SQL必須知道的10個高級概念
      2閱讀 0條評論 個贊
      隨著數據量持續增長,對合格數據專業人員的需求也會增長。具體而言,對SQL流利的專業人士的需求日益增長,而不僅僅是在初級層面。因此,Stratascratch的創始人NathanRosidi以及我覺得……
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    • SQL中的三種重復數據刪除方法 還有誰不行?
      1閱讀 0條評論 個贊
      SQL去重是數據分析工作中比較常見的一個場景,今天給大家具體介紹3種去重的方法。在使用SQL提數的時候,常會遇到表內有重復值的時候,比如我們想得到uv(獨立訪客),就需要做去重。在MySQL中……
    • 卡夫卡3.0新功能全暴露 好香??!
      1閱讀 0條評論 個贊
      以下文章來源于云加社區,作者屈志平導語|kafka3.0的版本已經試推行去zk的kafka架構了,如果去掉了zk,那么在kafka新的版本當中使用什么技術來代替了zk的位置呢,接下來我們一起來一探究竟……
    • 學習SQL必須知道的10個高級概念
      2閱讀 0條評論 個贊
      隨著數據量持續增長,對合格數據專業人員的需求也會增長。具體而言,對SQL流利的專業人士的需求日益增長,而不僅僅是在初級層面。因此,Stratascratch的創始人NathanRosidi以及我覺得……
    • 7 種提升Spring Boot吞吐量神技!
      0閱讀 0條評論 個贊
      一、異步執行實現方式二種:1.使用異步注解@aysnc、啟動類:添加@EnableAsync注解2.JDK8本身有一個非常好用的Future類——CompletableFuture@AllArg……
    • SQL優化通用公式:5個步驟和10個案例
      1閱讀 0條評論 個贊
      導讀:在應用開發的早期,數據量少,開發人員開發功能時更重視功能上的實現,隨著生產數據的增長,很多SQL語句開始暴露出性能問題,對生產的影響也越來越大,有時可能這些有問題的SQL就是整個系統性能的瓶頸?!?/div>
    • 如何在Bash腳本中使用強大的Linux測試命令
      1閱讀 0條評論 個贊
      Linuxtest命令是Shell內置命令,用來檢測某個條件是否成立。test通常和if語句一起使用,并且大部分if語句都依賴test??梢詫⒁粋€元素與另一個元素進行比較,但它更?!?/div>
    • Java原子變量中set()和lazySet()的區別
      1閱讀 0條評論 個贊
      來源|Java技術指北(ID:javanorth)在本教程中,我們將講講Javaatomic類(如AtomicInteger和AtomicReference)的方法set()和l……
    • MYSQL VS POLARDB唯一索引死鎖及應用設計
      1閱讀 0條評論 個贊
      #issue68021MySQLuniquecheck問題-知乎(zhihu.com)事情的開始是這樣的,最近和阿里云密切聯系,也成為他們的大客戶,(我們當然是大客戶,BIGBIG……
    • 真正的建筑設計是什么樣子的?
      2閱讀 0條評論 個贊
      什么是架構和架構本質在軟件行業,對于什么是架構,都有很多的爭論,每個人都有自己的理解。此君說的架構和彼君理解的架構未必是一回事。因此我們在討論架構之前,我們先討論架構的概念定義,概念是人認識這個世界的……
    • 采訪者:告訴我們SpringAOP的底層代理模型
      2閱讀 0條評論 個贊
      來源|Java技術指北(ID:javanorth)代理模式相信大家經常聽說,在設計模式中相對而言是比較難理解的。這次指北君來給大家通俗的介紹介紹。1、什么是代理模式Provideasurrog……
    • 用Ansible實現MySQL的備份、操作和維護
      0閱讀 0條評論 個贊
      作者簡介曹杰,中國結算上海分公司高級經理,從事系統運維管理工作。本文以容器形式部署了開源自動化運維工具Ansible,基于自帶的MySQL管理模塊編排了playbook配置文件,最終實現M……
    • 干貨:10個聚類算法的完整Python操作實例
      0閱讀 0條評論 個贊
      來源:海豚數據科學實驗室本文約7000字,建議閱讀14分鐘本文將介紹一篇關于聚類的文章,10種聚類介紹和Python代碼。聚類或聚類分析是無監督學習問題。它通常被用作數據分析技術,用于發現數據中的有趣……
    • 本文將帶您了解kubernetes的架構和組件!
      1閱讀 0條評論 個贊
      kubernetes架構目標kubernetes是生產級的,用于跨主機部署,擴展,管理和組合應用程序容器的基礎設施。kubernetes不僅僅是“容器編排”,他更加主要的解決方向是消除協調計算資源,網……
    • 10分鐘了解云原生 值得收藏~
      1閱讀 0條評論 個贊
      文章轉載:奇妙的Linux世界我們已經進入云計算下半場,不再像上半場在糾結要不要上云,而是討論怎么上云?才能把云計算的價值發揮到淋漓盡致。如何把云計算與不同的業務場景深度結合?如何讓技術真正作用于企業……
    • 運維常用的34個Linux Shell腳本 對你一定有幫助!
      1閱讀 0條評論 個贊
      作為一名Linux工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時間做自己的事。最近在網上沖浪的時候,也注意收集一些大佬寫過的腳本,匯總整理一下,歡迎收藏,與君共勉?。?)用戶猜數字#!/b……
    • 我用Java在幾分鐘內處理了30億條數據.
      2閱讀 0條評論 個贊
      來源:https://c1n.cn/GM8hb目錄場景說明模擬數據場景分析讀取數據處理數據遇到的問題場景說明現有一個10G文件的數據,里面包含了18-70之間的整數,分別表示18-70歲的……
    • 一萬字長文講解HBase讀寫性能優化
      2閱讀 0條評論 個贊
      一、HBase讀優化1.HBase客戶端優化和大多數系統一樣,客戶端作為業務讀寫的入口,姿勢使用不正確通常會導致本業務讀延遲較高實際上存在一些使用姿勢的推薦用法,這里一般需要關注四個問題:1)s……
    • 創建Go語言最快的排序算法
      1閱讀 0條評論 個贊
      前言說到排序算法,很多同學會想起快速排序、堆排序、冒泡排序這些耳熟能詳的算法。了解得深一些的同學,也可能看過例如Python的timsort以及C++introsort之類的排序算法?!?/div>
    • 高可用性架構設計的無狀態服務
      2閱讀 0條評論 個贊
      笑談架構設計事故的發生是量的積累的結果,任何事情都沒有表面看起來那么簡單,在軟件運行的過程中,隨著用戶量的增加,不考慮高可用,遲早有一天會發生故障,不得事先考慮高可用設計,而高可用是一門龐大的學問。在……
    • 不容錯過的20個ES6技巧
      5閱讀 0條評論 個贊
      前言大家好,我是xieyezi,好久不見,我又重新回歸掘金啦,這次為大家整理了20個使用頻率很高的ES6代碼塊,希望大家喜歡……
    最近發布資訊
    更多
    国产H视频在线播放,国产毛多水多的老女人,国产成人午夜福利电影在线播放
    <table id="km2im"></table>
  • <bdo id="km2im"><center id="km2im"></center></bdo>