主頁 >  其他 > 學習k8s竟然可以如此簡單——原理篇

學習k8s竟然可以如此簡單——原理篇

2020-11-24 18:41:32 其他

了解k8s及作業原理

  • 什么是K8S
  • Kubernetes特性
  • K8S集群分為兩類節點
    • master相關組件
    • worker-node相關組件
  • 作業原理流程圖
  • 三種部署方法
  • 常用的資源物件
      • pod最小調度單元
      • 資源標簽
      • 標簽選擇器
      • Pod控制器(centroller)
      • 服務資源(Service)
      • 存盤卷
      • Name和Namespace
      • Annotation
      • Ingress

什么是K8S

Kubernetes是容器集群管理系統,是一個開源的平臺,可以實作容器集群的自動化部署、自動擴縮容、維護等功能,
k8s是一個編排容器的工具,其實也是管理應用的全生命周期的一個工具,從創建應用,應用的部署,應用提供服務,擴容縮容應用,應用更新,都非常的方便,而且可以做到故障自愈,例如一個服務器損壞,可以自動將這個服務器上的服務調度到另外一個主機上進行運行,無需進行人工干涉,k8s可以更快的更新新版本,打包應用,更新的時候可以做到不用中斷服務,服務器故障不用停機,從開發環境到測驗環境到生產環境的遷移極其方便,一個組態檔搞定,一次生成image,到處運行,

Kubernetes特性

Kubernetes是一種用于在一組主機上運行和協同容器化應用程式的系統,旨在提供可預測性、可擴展性與高可用的性的方法來完全管理容器化應用程式和服務的生命周期的平臺,它具有以下幾個重要的特性

  1. 自動化部署: yaml部署到k8s,會根據應用程式計算資源需求,自動分配到node,
  2. 系統自愈:當成功部署到k8s中,node節點宕機,k8s會重新將pod調度到可用節點,
  3. 水平擴展:HPA周期調整RC的副本數量,將用戶定義的resource值匹配,
  4. 服務發現和負載均衡:內置服務發現功能,為每個容器分配IP,service代理,
  5. 自動更新和回滾:監控應用狀態,不會同時殺掉應用, 更新出錯,自動恢復到原先狀態,
  6. 彈性伸縮:實時根據服務器的并發情況,增加或縮減容器數量

K8S集群分為兩類節點

Kubernetes使用共享網路將多個物理機或虛擬機匯集到一個集群中,在各服務器之間進行通信,該集群是配置Kubernetes的所有組件、功能和作業負載的物理平臺,集群中一臺服務器(或高可用部署中的一組服務器)用作Master,負責管理整個集群(管理端-對內 --管理員&運維工程師),余下的其他機器用作Worker Node–提供服務(開放給用戶),它們是使用本地和外部資源接收和運行作業負載的服務器,

Master
Master是集群的網關和中樞,負責諸如為用戶和客戶端暴露API(功能介面 apiserver)、跟蹤其它服務器的健康狀態、以最優方式調度作業負載,以及編排其他組件之間的通信等任務,它是用戶或客戶端與集群之間的核心聯絡點,并負責Kubernetes系統的大多數集中式管控邏輯,

Node
Node是Kubernetes集群的作業節點,負責接收來自Master的作業指令并根據指令相應的創建或洗掉Pod物件(k8s集群最小的單位 - 可以是1或者多個docker),以及調整網路規則以合理地路由和轉發流量等,

master相關組件

kube-apiserver
? Kubernetes API,集群的統一入口,各組件協調者,以 RESTful API提供介面服務,所有物件資源的增刪改查和監聽 操作都交給APIServer處理后再提交給Etcd存盤,
kube-controller-manager
? 處理集群中常規后臺任務,一個資源對應一個控制器,而ControllerManager就是負責管理這些控制器的,
kube-scheduler
? 根據調度演算法為新創建的Pod選擇一個Node節點,可以任意 部署,可以部署在同一個節點上,也可以部署在不同的節點上,
etcd
? 分布式鍵值存盤系統,用于保存集群狀態資料,比如Pod、 Service等物件資訊,

worker-node相關組件

Kubelet
? kubelet是Master在Node節點上的Agent,管理本機運行容器 的生命周期,比如創建容器、Pod掛載資料卷、下載secret、獲 取容器和節點狀態等作業,kubelet將每個Pod轉換成一組容器,
kube-proxy
? 在Node節點上實作Pod網路代理,維護網路規則和四層負載均衡作業,
docker或rocket
? 容器引擎,運行容器,

作業原理流程圖

在這里插入圖片描述

三種部署方法

Minikube是由kubernetes社區維護的單機版的kubernetes集群,非常適合作為kubernetes入門,或是開發測驗環境使用,Minikube實際是跑在本地的虛擬機中,所以,需要先安裝一套Hypervisor,
部署地址:https://kubernetes.io/docs/tasks/tools/

Kubeadm:純粹的二進制檔案部署非常復雜和麻煩,kubeadm部署工具的選用邏輯也很簡單,kubeadm是官方提供和推薦的,因此可以認為kubeadm是可用而且可靠的,檔案也足夠全面,
部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/

二進制:專案致力于讓有意向使用原生kubernetes集群的企業或個人,可以方便的、系統的使用二進制的方式手工搭建kubernetes高可用集群,并且讓相關的人員可以更好的理解kubernetes集群的運作機制,
下載地址:https://github.com/kubernetes/kubernetes/releases

常用的資源物件

pod最小調度單元

Kubernetes并不直接運行容器,而是使用一個抽象的資源物件來封裝一個或者多個容器,這個抽象即為Pod,它是Kubernetes的最小調度單元,同一Pod中的容器共享網路名稱空間和存盤資源,這些容器可經由本地回環介面lo直接通信,但彼此之間又在Mount、User及PID等名稱空間上保持了隔離,

資源標簽

標簽(Label)是將資源進行分類的識別符號,資源標簽其實就是一個鍵值型(key/values)資料,標簽旨在指定物件(如Pod等)辨識性的屬性,這些屬性僅對用戶存在特定的意義,對Kubernetes集群來說并不直接表達核心系統語意,

標簽選擇器

標簽選擇器(Selector)全稱為”Label Selector“,它是一種根據Label來過濾符合條件的資源物件的機制,

Pod控制器(centroller)

盡管Pod是kubernetes的最小調度單元,但用戶通常并不會直接部署及管理Pod物件,而是要借助于另一類抽象——控制器(Controller)對其進行管理,用于作業負載的控制器是一種管理Pod生命周期的資源抽象,它們是kubernetes上的一類物件,而非單個資源物件,

服務資源(Service)

Service是建立在一組Pod物件之上的資源抽象,它通過標簽選擇器選定一組Pod物件,并為這組Pod物件定義一個統一的固定訪問入口(通常是一個IP地址),若Kubernetes集群存在DNS附件,它就會在Service創建時為其自動配置一個DNS名稱以便客戶端進行服務發現,

存盤卷

存盤卷(Volume)是獨立于容器檔案系統之外的存盤空間,常用于擴展容器的存盤空間并為它提供持久存盤能力,Kubernetes集群上的存盤卷大體可以分為臨時卷、本地卷和網路卷,臨時卷和本地卷都位于Node本地,一旦Pod被調度至其他Node,此種型別的存盤卷將無法訪問到,因此臨時卷和本地卷通常用于資料快取,持久化的資料則需要放置于持久卷(persistent volume)之上(網路卷),

Name和Namespace

名稱(Name)是Kubernetes集群中資源物件的識別符號,它們的作用域通常是名稱空間(Namespace),因此名稱空間是名稱的額外的限定機制,在同一名稱空間中,同一型別資源物件的名稱必須具有唯一性,名稱空間通常用于實作租戶或專案的資源隔離,從而形成邏輯分組,

Annotation

Annotation(注釋)是另一種附加在物件之上的鍵值型別的資料,但它擁有更大的資料容量,Annotation常用于將各種非標識型元資料(metadata)附加到物件上,但它不能用于標識和選擇物件,通常也不會被Kubernetes直接使用,其主要目的是方便工具或用戶的閱讀和查找等,

Ingress

Kubernetes將Pod物件和外部網路環境進行了隔離,Pod和Service等物件間的通信都使用其內部專用地址進行,如若需要開放某些Pod物件提供給外部用戶訪問,則需要為其請求流量打開一個通往Kubernetes集群內部的通道,除了Service之外,Ingress也是這類通道的實作方式之一,

k8s詳細博客:http://docs.kubernetes.org.cn/

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/226793.html

標籤:其他

上一篇:優秀的人真是“自律”嗎? —— 《微習慣》讀后感

下一篇:Ubuntu18.04下hadoop2.10安裝詳細步驟(親測有效,可供參考)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more