色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內(nèi)不再提示

關于K8s最詳細的解析

Linux愛好者 ? 來源:CSDN技術(shù)社區(qū) ? 作者:stackpush ? 2021-04-08 13:55 ? 次閱讀

一個目標:容器操作;兩地三中心;四層服務發(fā)現(xiàn);五種Pod共享資源;六個CNI常用插件;七層負載均衡;八種隔離維度;九個網(wǎng)絡模型原則;十類IP地址;百級產(chǎn)品線;千級物理機;萬級容器;相如無億,K8s有億:億級日服務人次。

一個目標:容器操作

Kubernetes(k8s)是自動化容器操作的開源平臺。這些容器操作包括:部署、調(diào)度和節(jié)點集群間擴展。

具體功能:

自動化容器部署和復制。

實時彈性收縮容器規(guī)模。

容器編排成組,并提供容器間的負載均衡。調(diào)度:容器在哪個機器上運行。

組成:

kubectl:客戶端命令行工具,作為整個系統(tǒng)的操作入口。

kube-apiserver:以REST API服務形式提供接口,作為整個系統(tǒng)的控制入口。

kube-controller-manager:執(zhí)行整個系統(tǒng)的后臺任務,包括節(jié)點狀態(tài)狀況、Pod個數(shù)、Pods和Service的關聯(lián)等。

kube-scheduler:負責節(jié)點資源管理,接收來自kube-apiserver創(chuàng)建Pods任務,并分配到某個節(jié)點。

etcd:負責節(jié)點間的服務發(fā)現(xiàn)和配置共享。

kube-proxy:運行在每個計算節(jié)點上,負責Pod網(wǎng)絡代理。定時從etcd獲取到service信息來做相應的策略。

kubelet:運行在每個計算節(jié)點上,作為agent,接收分配該節(jié)點的Pods任務及管理容器,周期性獲取容器狀態(tài),反饋給kube-apiserver。

DNS:一個可選的DNS服務,用于為每個Service對象創(chuàng)建DNS記錄,這樣所有的Pod就可以通過DNS訪問服務了。下面是K8s的架構(gòu)拓撲圖:

3b2e3086-97c4-11eb-8b86-12bb97331649.jpg

兩地三中心

兩地三中心包括本地生產(chǎn)中心、本地災備中心、異地災備中心。

3b392d42-97c4-11eb-8b86-12bb97331649.jpg

兩地三中心要解決的一個重要問題就是數(shù)據(jù)一致性問題。k8s使用etcd組件作為一個高可用、強一致性的服務發(fā)現(xiàn)存儲倉庫。用于配置共享和服務發(fā)現(xiàn)。

它作為一個受到Zookeeper和doozer啟發(fā)而催生的項目。除了擁有他們的所有功能之外,還擁有以下4個特點:

簡單:基于http+json的api讓你用curl命令就可以輕松使用。

安全:可選SSL客戶認證機制。

快速:每個實例每秒支持一千次寫操作。

可信:使用Raft算法充分實現(xiàn)了分布式。四層服務發(fā)現(xiàn)

先一張圖解釋一下網(wǎng)絡七層協(xié)議:

3b44af28-97c4-11eb-8b86-12bb97331649.jpg

k8s提供了兩種方式進行服務發(fā)現(xiàn):

環(huán)境變量:當創(chuàng)建一個Pod的時候,kubelet會在該Pod中注入集群內(nèi)所有Service的相關環(huán)境變量。需要注意的是,要想一個Pod中注入某個Service的環(huán)境變量,則必須Service要先比該Pod創(chuàng)建。這一點,幾乎使得這種方式進行服務發(fā)現(xiàn)不可用。

比如,一個ServiceName為redis-master的Service,對應的ClusterIP:Port為10.0.0.11:6379,則對應的環(huán)境變量為:

3b56a7e6-97c4-11eb-8b86-12bb97331649.jpg

DNS:可以通過cluster add-on的方式輕松的創(chuàng)建KubeDNS來對集群內(nèi)的Service進行服務發(fā)現(xiàn)。

以上兩種方式,一個是基于tcp,眾所周知,DNS是基于UDP的,它們都是建立在四層協(xié)議之上。

五種Pod共享資源

Pod是K8s最基本的操作單元,包含一個或多個緊密相關的容器,一個Pod可以被一個容器化的環(huán)境看作應用層的“邏輯宿主機”;一個Pod中的多個容器應用通常是緊密耦合的,Pod在Node上被創(chuàng)建、啟動或者銷毀;每個Pod里運行著一個特殊的被稱之為Volume掛載卷,因此他們之間通信和數(shù)據(jù)交換更為高效,在設計時我們可以充分利用這一特性將一組密切相關的服務進程放入同一個Pod中。

3b62b5ae-97c4-11eb-8b86-12bb97331649.jpg

同一個Pod里的容器之間僅需通過localhost就能互相通信。

一個Pod中的應用容器共享五種資源:

PID命名空間:Pod中的不同應用程序可以看到其他應用程序的進程ID。

網(wǎng)絡命名空間:Pod中的多個容器能夠訪問同一個IP和端口范圍。

IPC命名空間:Pod中的多個容器能夠使用SystemV IPC或POSIX消息隊列進行通信。

UTS命名空間:Pod中的多個容器共享一個主機名。

Volumes(共享存儲卷):Pod中的各個容器可以訪問在Pod級別定義的Volumes。Pod的生命周期通過Replication Controller來管理;通過模板進行定義,然后分配到一個Node上運行,在Pod所包含容器運行結(jié)束后,Pod結(jié)束。

Kubernetes為Pod設計了一套獨特的網(wǎng)絡配置,包括:為每個Pod分配一個IP地址,使用Pod名作為榮期間通信的主機名等。

六個CNI常用插件

CNI(Container Network Interface)容器網(wǎng)絡接口,是Linux容器網(wǎng)絡配置的一組標準和庫,用戶需要根據(jù)這些標準和庫來開發(fā)自己的容器網(wǎng)絡插件。CNI只專注解決容器網(wǎng)絡連接和容器銷毀時的資源釋放,提供一套框架,所以CNI可以支持大量不同的網(wǎng)絡模式,并且容易實現(xiàn)。

下面用一張圖表示六個CNI常用插件:

3b998d36-97c4-11eb-8b86-12bb97331649.jpg

七層負載均衡

提負載均衡就不得不先提服務器之間的通信。

IDC(Internet Data Center),也可稱 數(shù)據(jù)中心、機房,用來放置服務器。IDC網(wǎng)絡是服務器間通信的橋梁。

3ba405e0-97c4-11eb-8b86-12bb97331649.jpg

上圖里畫了很多網(wǎng)絡設備,它們都是干啥用的呢?

路由器、交換機、MGW/NAT都是網(wǎng)絡設備,按照性能、內(nèi)外網(wǎng)劃分不同的角色。

內(nèi)網(wǎng)接入交換機:也稱為TOR(top of rack),是服務器接入網(wǎng)絡的設備。每臺內(nèi)網(wǎng)接入交換機下聯(lián)40-48臺服務器,使用一個掩碼為/24的網(wǎng)段作為服務器內(nèi)網(wǎng)網(wǎng)段。

內(nèi)網(wǎng)核心交換機:負責IDC內(nèi)各內(nèi)網(wǎng)接入交換機的流量轉(zhuǎn)發(fā)及跨IDC流量轉(zhuǎn)發(fā)。

MGW/NAT:MGW即LVS用來做負載均衡,NAT用于內(nèi)網(wǎng)設備訪問外網(wǎng)時做地址轉(zhuǎn)換。

外網(wǎng)核心路由器:通過靜態(tài)互聯(lián)運營商或BGP互聯(lián)美團統(tǒng)一外網(wǎng)平臺。先說說各層負載均衡:

二層負載均衡:基于MAC地址的二層負載均衡。

三層負載均衡:基于IP地址的負載均衡。

四層負載均衡:基于IP+端口的負載均衡。

七層負載均衡:基于URL等應用層信息的負載均衡。這里用一張圖來說說四層和七層負載均衡的區(qū)別:

3baef9c8-97c4-11eb-8b86-12bb97331649.jpg

上面四層服務發(fā)現(xiàn)講的主要是k8s原生的kube-proxy方式。K8s關于服務的暴露主要是通過NodePort方式,通過綁定minion主機的某個端口,然后進行pod的請求轉(zhuǎn)發(fā)和負載均衡,但這種方式有下面的缺陷:

Service可能有很多個,如果每個都綁定一個node主機端口的話,主機需要開放外圍的端口進行服務調(diào)用,管理混亂。

無法應用很多公司要求的防火墻規(guī)則。理想的方式是通過一個外部的負載均衡器,綁定固定的端口,比如80,然后根據(jù)域名或者服務名向后面的Service ip轉(zhuǎn)發(fā),Nginx很好的解決了這個需求,但問題是如果有的心得服務加入,如何去修改Nginx的配置,并且加載這些配置?Kubernetes給出的方案就是Ingress。這是一個基于7層的方案。

八種隔離維度

3bb7c832-97c4-11eb-8b86-12bb97331649.jpg

K8s集群調(diào)度這邊需要對上面從上到下從粗粒度到細粒度的隔離做相應的調(diào)度策略。

九個網(wǎng)絡模型原則

K8s網(wǎng)絡模型要符合4個基礎原則,3個網(wǎng)絡要求原則,1個架構(gòu)原則,1個IP原則。

每個Pod都擁有一個獨立的IP地址,而且假定所有Pod都在一個可以直接連通的、扁平的網(wǎng)絡空間中,不管是否運行在同一Node上都可以通過Pod的IP來訪問。

K8s中的Pod的IP是最小粒度IP。同一個Pod內(nèi)所有的容器共享一個網(wǎng)絡堆棧,該模型稱為IP-per-Pod模型。

Pod由docker0實際分配的IP

Pod內(nèi)部看到的IP地址和端口與外部保持一致

同一個Pod內(nèi)的不同容器共享網(wǎng)絡,可以通過localhost來訪問對方的端口,類似同一個VM內(nèi)不同的進程。IP-per-Pod模型從端口分配、域名解析、服務發(fā)現(xiàn)、負載均衡、應用配置等角度看,Pod可以看做是一臺獨立的VM或物理機。

所有容器都可以不用NAT的方式同別的容器通信。

所有節(jié)點都可以在不同NAT方式下同所有容器心痛,反之亦然。

容器的地址和別人看到的地址是同一個地址。要符合下面的架構(gòu):

3bcf4ed0-97c4-11eb-8b86-12bb97331649.jpg

由上圖架構(gòu)引申出來IP概念從集群外部到集群內(nèi)部

3bf60fe8-97c4-11eb-8b86-12bb97331649.jpg

十類IP地址

大家都知道IP地址分為ABCDE類,另外還有5類特殊用途的IP。

第一類

A 類:1.0.0.0-1226.255.255.255,默認子網(wǎng)掩碼/8,即255.0.0.0。

B 類:128.0.0.0-191.255.255.255,默認子網(wǎng)掩碼/16,即255.255.0.0。

C 類:192.0.0.0-223.255.255.255,默認子網(wǎng)掩碼/24,即255.255.255.0。

D 類:224.0.0.0-239.255.255.255,一般用于組播。

E 類:240.0.0.0-255.255.255.255(其中255.255.255.255為全網(wǎng)廣播地址)。E 類地址一般用于研究用途。

第二類

0.0.0.0

嚴格來說,0.0.0.0 已經(jīng)不是一個真正意義上的 IP 地址了。它表示的是這樣一個集合:所有不清楚的主機和目的網(wǎng)絡。這里的不清楚是指在本機的路由表里沒有特定條目指明如何到達。作為缺省路由。

127.0.0.1 本機地址。

第三類

224.0.0.1 組播地址。

如果你的主機開啟了IRDP(internet路由發(fā)現(xiàn),使用組播功能),那么你的主機路由表中應該有這樣一條路由。

第四類

169.254.x.x

使用了 DHCP 功能自動獲取了 IP 的主機,DHCP 服務器發(fā)生故障,或響應時間太長而超出了一個系統(tǒng)規(guī)定的時間,系統(tǒng)會為你分配這樣一個 IP,代表網(wǎng)絡不能正常運行。

第五類

10.xxx、172.16.x.x~172.31.x.x、192.168.x.x 私有地址。

大量用于企業(yè)內(nèi)部。保留這樣的地址是為了避免亦或是哪個接入公網(wǎng)時引起地址混亂。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • IDC
    IDC
    +關注

    關注

    4

    文章

    398

    瀏覽量

    37369
  • DNS
    DNS
    +關注

    關注

    0

    文章

    219

    瀏覽量

    20019
  • 負載均衡
    +關注

    關注

    0

    文章

    114

    瀏覽量

    12424
  • kubernetes
    +關注

    關注

    0

    文章

    228

    瀏覽量

    8797

原文標題:K8s 超詳細總結(jié)!

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    搭建k8s需要買幾臺云主機?

    至少3臺。搭建Kubernetes(K8s)集群所需的云主機數(shù)量因?qū)嶋H需求而異。一個基本的K8s集群通常需要至少3臺云主機,包括1個Master節(jié)點和2個Worker節(jié)點。如果考慮高可用性和容錯能力
    的頭像 發(fā)表于 02-20 10:40 ?126次閱讀

    自建K8S集群認證過期

    今天使用kubectl命令查看pod信息時,一直正常運行的k8s集群突然不能訪問了,輸入任何命令都提示以下報錯。
    的頭像 發(fā)表于 02-07 12:32 ?164次閱讀

    k8s和docker區(qū)別對比,哪個更強?

    部署、擴展、管理和應用生命周期管理能力,可實現(xiàn)高可用性和自動伸縮,兩者常結(jié)合使用以優(yōu)化容器化和應用管理。UU云小編將對k8s和docker區(qū)別進行詳細對比:
    的頭像 發(fā)表于 12-11 13:55 ?274次閱讀

    k8s微服務架構(gòu)就是云原生嗎?兩者是什么關系

    k8s微服務架構(gòu)就是云原生嗎?K8s微服務架構(gòu)并不等同于云原生,但兩者之間存在密切的聯(lián)系。Kubernetes在云原生架構(gòu)中扮演著核心組件的角色,它簡化了容器化應用程序的管理,提供了彈性、自動化
    的頭像 發(fā)表于 11-25 09:39 ?254次閱讀

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地與公有云分別建立K8s集群,并確保網(wǎng)絡連接。接著,配置kubeconfig文件連接兩集群,并安裝云服務插件以實現(xiàn)資源互通。然后,編寫Deployment文件部署應用,并使用kubectl命令應用至集群。最后,驗證應用狀態(tài)并監(jiān)控集群性能
    的頭像 發(fā)表于 11-07 09:37 ?247次閱讀

    k8s可以部署私有云嗎?私有云部署全攻略

    Kubernetes(簡稱K8S)可以部署私有云。Kubernetes是一個開源的容器編排引擎,能夠自動化容器的部署、擴展和管理,使得應用可以在各種環(huán)境中高效運行。通過使用Kubernetes,企業(yè)可以在自己的數(shù)據(jù)中心或私有云環(huán)境中搭建和管理容器化的應用,實現(xiàn)高度的靈活性和可擴展性。
    的頭像 發(fā)表于 10-25 09:32 ?261次閱讀

    k8s云原生開發(fā)要求

    Kubernetes(K8s)云原生開發(fā)對硬件有一定要求。CPU方面,建議至少配備2個邏輯核心,高性能CPU更佳。內(nèi)存至少4GB,但8GB或更高更推薦。存儲需至少20-30GB可用空間,SSD提升
    的頭像 發(fā)表于 10-24 10:03 ?342次閱讀
    <b class='flag-5'>k8s</b>云原生開發(fā)要求

    k8s容器啟動失敗的常見原因及解決辦法

    k8s容器啟動失敗的問題通常出現(xiàn)在開發(fā)者使用Kubernetes進行容器編排時,可能的原因有多種,例如:配置錯誤、鏡像問題、資源限制、依賴問題、網(wǎng)絡問題、節(jié)點狀態(tài)異常、其他因素等,以下是對這些常見原因的詳細分析:
    的頭像 發(fā)表于 10-11 10:12 ?415次閱讀

    云服務器部署k8s需要什么配置?

    云服務器部署K8s需要至少2核CPU、4GB內(nèi)存、50GBSSD存儲的主節(jié)點用于管理集群,工作節(jié)點建議至少2核CPU、2GB內(nèi)存、20GBSSD。還需安裝Docker,選擇兼容的Kubernetes版本,配置網(wǎng)絡插件,以及確保系統(tǒng)安全、監(jiān)控和備份措施到位。
    的頭像 發(fā)表于 10-09 15:31 ?301次閱讀

    納尼?自建K8s集群日志收集還能通過JMQ保存到JES

    作者:京東科技 劉恩浩 一、背景 基于K8s集群的私有化交付方案中,日志收集采用了ilogtail+logstash+kafka+es方案,其中ilogtail負責日志收集,logstash負責對數(shù)
    的頭像 發(fā)表于 09-30 14:45 ?285次閱讀

    常用的k8s容器網(wǎng)絡模式有哪些?

    常用的k8s容器網(wǎng)絡模式包括Bridge模式、Host模式、Overlay模式、Flannel模式、CNI(ContainerNetworkInterface)模式。K8s的容器網(wǎng)絡模式多種多樣
    的頭像 發(fā)表于 09-19 11:29 ?366次閱讀

    K8S集群中使用JDOS KMS服務對敏感數(shù)據(jù)安全加密

    基本概念 KMS,Key Management Service,即密鑰管理服務,在K8S集群中,以驅(qū)動和插件的形式啟用對Secret,Configmap進行加密。以保護敏感數(shù)據(jù), 驅(qū)動和插件需要
    的頭像 發(fā)表于 08-09 16:00 ?334次閱讀
    <b class='flag-5'>K8S</b>集群中使用JDOS KMS服務對敏感數(shù)據(jù)安全加密

    K8S學習教程三:在PetaExpress KubeSphere 容器部署 Wiki 系統(tǒng) wiki.js 并啟用中文全文檢索

    K8S學習教程(三):在PetaExpress KubeSphere 容器部署 Wiki 系統(tǒng) wiki.js 并啟用中文全文檢索? 。
    的頭像 發(fā)表于 07-08 17:03 ?745次閱讀
    <b class='flag-5'>K8S</b>學習教程三:在PetaExpress KubeSphere 容器部署 Wiki 系統(tǒng) wiki.js 并啟用中文全文檢索

    K8S學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 Redis 集群

    并且需要手動重啟節(jié)點,相較之下,使用 PetaExpress 提供的 Kubernetes(k8s) 服務 進行 Redis 集群的部署,則展現(xiàn)出了顯著的優(yōu)勢: 1、安裝便捷:使用鏡像或者 yaml 配置文件即可一件安裝,極大地簡化了安裝流程 2、縮擴容方便:在 擴容 、 縮容 方面的優(yōu)點一鍵伸縮,
    的頭像 發(fā)表于 07-03 15:30 ?884次閱讀
    <b class='flag-5'>K8S</b>學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 Redis 集群

    關于STM8S103K3的數(shù)據(jù)保存問題求解

    關于STM8S103K3的數(shù)據(jù)保存問題,我用STM8S103K3開發(fā)一套溫控板小批量投產(chǎn),現(xiàn)在遇到的問題是,設置報警溫度有的時候不能保存(斷電后自動歸零),并不是都不保存有的就可以保存,不知道是哪的問題,編程器換了也沒效果,程序
    發(fā)表于 05-10 06:38
    主站蜘蛛池模板: 久久午夜宫电影网 | 在线亚洲中文字幕36页 | 动漫美女禁区 | 在线免费观看视频a | 跪趴式啪啪GIF动态图27报 | 欧美MV日韩MV国产网站 | 无码国产色欲XXXX视频 | 5566精品资源在线播放 | 久久99热狠狠色AV蜜臀 | 无遮挡h肉3d动漫在线观看 | 国产午夜亚洲精品不卡电影 | 超碰在线视频 免费 | 亚洲中文字幕乱倫在线 | 免费看黄的片多多APP下载 | 99久久免费视频6 | 被cao的奶水直喷高H | 嫩草影院久久99 | 久久操韩国自偷拍 | 一个人高清在线观看日本免费 | 欧美日韩一区在线观看 | 国产精品亚洲一区二区三区久久 | 欧美亚洲国产激情一区二区 | 动漫美女和男人下载 | 大学生第一次破苞疼哭了 | 十分钟免费看完整视频 | 恋夜直播午夜秀场最新 | 国产亚洲精品久久久久久久软件 | 搡女人免费免费视频观看 | 一级做a爰片久久毛片一 | 99久久全国免费久久爱 | 最近中文字幕免费高清MV视频 | 色欲AV久久综合人妻蜜桃 | 蜜桃传媒一区二区亚洲AV | 亚洲精品无码专区在线播放 | 97一期涩涩97片久久久久久久 | 在线亚洲中文精品第1页 | 99re久久热在这里精品 | 99久久精品国产国产毛片 | 国产成人在线视频播放 | 老师扒开尿口男生摸尿口 | 亚洲精品国产拍在线观看 |