Kubernetes 入門(1)基本概念

1. Kubernetes簡介

作為一個目前在生產環境已經廣泛使用的開源項目 Kubernetes 被定義成一個用于自動化部署、擴容和管理容器應用的開源系統;它將一個分布式軟件的一組容器打包成一個個更容易管理和發現的邏輯單元。

Kubernetes 是希臘語『舵手』的意思,它最開始由 Google 的幾位軟件工程師創立,深受公司內部 Borg 和 Omega 項目的影響,很多設計都是從 Borg 中借鑒的,同時也對 Borg 的缺陷進行了改進,Kubernetes 目前是 Cloud Native Computing Foundation (CNCF) 的項目并且是很多公司管理分布式系統的解決方案。

在 Kubernetes 統治了容器編排這一領域之前,其實也有很多容器編排方案,例如 compose 和 Swarm,但是在運維大規模、復雜的集群時,這些方案基本已經都被 Kubernetes 替代了。

2. Node

Node 可以是一臺物理機,也可以是虛擬機。

2.1 Node狀態

當我們拿到這臺服務器后,首先我們登錄服務器查看下服務器的基本配置和信息。其實對于一個新加入 K8S 集群的 Node 也是一樣,需要先檢查它的狀態,并將狀態上報至集群的 master 。

2.1.1 IP地址

首先,我們所關心的是我們服務器的 IP 地址,包括內網 IP 和外網 IP。對應于 K8S 集群的話這個概念是類似的,內部 IP 可在 K8S 集群內訪問,外部 IP 可在集群外訪問。

2.1.2 信息

我們需要看下服務器的基本信息,比如看看系統版本信息, cat /etc/issue 或者 cat /etc/os-release 等方法均可查看。對于 K8S 集群會將每個 Node 的這些基礎信息都記錄下來。

image.png

2.1.3 容量

我們通常也都會關注下,我們有幾個核心的 CPU ,可通過 cat /proc/cpuinfo 查看,有多大的內存 通過 cat /proc/meminfo 或 free 等查看。對于 K8S 集群,會默認統計這些信息,并計算在此 Node 上可調度的 Pod 數量。

image.png

2.1.4 條件

對于我們拿到的服務器,我們根據上述的一些基本信息進行判斷,這臺機器是否能滿足我們的需要。對 K8S 集群也同樣,當判斷上述信息均滿足要求時候,便將集群內記錄的該 Node 信息標記為 Ready (Ready = True),這樣我們的服務器便正式的完成交付。

3. Deployment 和 Pod

3.1 Pod

作為 Kubernetes 集群中的基本單元,Pod 就是最小并且最簡單的 Kubernetes 對象,這個簡單的對象其實就能夠獨立啟動一個后端進程并在集群的內部為調用方提供服務。

3.2 Deployment

提供了一種對 Pod 和 ReplicaSet 的管理方式,每一個 Deployment 都對應集群中的一次部署,是非常常見的 Kubernetes 對象

3.3 例如

在使用一臺服務器時,我們通常需要編寫一個主頁index.html以及將其部署在web服務器上,對于 K8S 而言,我們想要的,能提供對 index.html 訪問的服務便可理解為 Deployment 的概念,表明一種我們預期的目標狀態。
而對于 web服務器 和 index.html 這個組合可以理解為其中的 Pod 概念,作為最小的調度單元。

4. Container Runtime

Docker 已經是容器技術的事實標準了,它讓開發者將自己的應用以及依賴打包到一個可移植的容器中,讓應用程序的運行可以實現環境無關。

如果我們想要將當前主頁部署在多臺服務器上,我們可以在服務器上安裝docker,此時,我們需要做的事情,也便只是將我們的服務構建成一個鏡像,需要編寫一個 Dockerfile,構建一個鏡像并部署到每臺服務器上便可。

我們能夠通過 Docker 實現進程、網絡以及掛載點和文件系統隔離的環境,并且能夠對宿主機的資源進行分配,這能夠讓我們在同一個機器上運行多個不同的 Docker 容器,任意一個 Docker 的進程都不需要關心宿主機的依賴,都各自在鏡像構建時完成依賴的安裝和編譯等工作,這也是為什么 Docker 是 Kubernetes 項目的一個重要依賴。

而 Docker 如果對應于 K8S 集群中的概念,便是 Container Runtime,這里還有其他的選擇,比如 rkt,runc 和其他實現了 OCI 規范的運行時

參考資料

《Kubernetes 從上手到實踐》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391236.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391236.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python程序互斥體

Python程序互斥體 有時候我們需要程序只運行一個實例,在windows平臺下我們可以很簡單的用mutex實現這個目的。 ??在開始時,程序創建了一個命名的mutex,這個mutex可以被其他進程檢測到。 這樣如果程序已經啟動,再次運行時的進程就…

890

890 轉載于:https://www.cnblogs.com/Forever77/p/11528605.html

android 西班牙_分析西班牙足球聯賽(西甲)

android 西班牙The Spanish football league commonly known as La Liga is the first national football league in Spain, being one of the most popular professional sports leagues in the world. It was founded in 1929 and has been held every year since then with …

Goalng軟件包推薦

2019獨角獸企業重金招聘Python工程師標準>>> 前言 哈嘍大家好呀! 馬上要迎來狗年了大家是不是已經懷著過年的心情了呢? 今天筆者給大家帶來了一份禮物, Goalng的軟件包推薦, 主要總結了一下在go語言中大家開源的優秀的軟件, 大家了解之后在后續使用過程有遇到如下軟…

Kubernetes 入門(2)基本組件

1. C/S架構 Kubernetes 遵循非常傳統的客戶端服務端架構,客戶端通過 RESTful 接口或者直接使用 kubectl 與 Kubernetes 集群進行通信,這兩者在實際上并沒有太多的區別,后者也只是對 Kubernetes 提供的 RESTful API 進行封裝并提供出來。 左側…

caioj1522: [NOIP提高組2005]過河

狀態壓縮的經典題。 按照一般做法,DP一維時間O(n),顯然跑不過。考慮到石子較少,實際上有很長一段是一定可以跳到的,設兩個石頭分別在i點和j點,跳躍的路程為S到T。那么從i點可以跳到iS到iT。從j-T到j-S可以跳到J。顯然當…

Dev控件使用CheckedListBoxControl獲取items.count為0 的解決方法

CheckedListBoxControl,我使用DataSource屬性,給其綁定了一個List對象。界面顯示都挺正常的,當若干個項的復選框被選中的后,它的checkedListBoxControl1.CheckedItems也是正常的。 唯獨的問題是在代碼中得到的checkedListBoxContr…

如何啟動軟件YouTube頻道

Hi, I’m Beau and I run the freeCodeCamp.org YouTube channel. 嗨,我是Beau,我運行了freeCodeCamp.org YouTube頻道 。 For the first few years of our channel’s life, we had less than 100,000 subscribers. When we published new videos, we …

【powerdesign】從mysql數據庫導出到powerdesign,生成數據字典

使用版本powerdesign16.5,mysql 5.5,windows 64 步驟: 1.下載mysql驅動【注意 32和64的驅動都下載下來,具體原因查看第三步 依舊會報錯處】 下載地址:https://dev.mysql.com/downloads/connector/odbc/5.3.html 請下…

php amazon-s3_推薦亞馬遜電影-一種協作方法

php amazon-s3Item-based collaborative and User-based collaborative approach for recommendation system with simple coding.推薦系統的基于項目的協作和基于用戶的協作方法,編碼簡單。 推薦系統概述 (Overview of Recommendation System) There are many met…

[高精度乘法]BZOJ 1754 [Usaco2005 qua]Bull Math

模板題目&#xff0c;練練手~ #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std;int s1[2333]; int s2[2333]; int Out[2333]; string one,two;void Debug(){for(int i0;i<one.length();i){pri…

python:使用Djangorestframework編寫post和get接口

1、安裝django pip install django 2、新建一個django工程 python manage.py startproject cainiao_monitor_api 3、新建一個app python manage.py startapp monitor 4、安裝DRF pip install djangorestframework 5、編寫視圖函數 views.py from rest_framework.views import A…

Kubernetes 入門(3)集群安裝

1. kubeadm簡介 kubeadm 是 Kubernetes 官方提供的一個 CLI 工具&#xff0c;可以很方便的搭建一套符合官方最佳實踐的最小化可用集群。當我們使用 kubeadm 搭建集群時&#xff0c;集群可以通過 K8S 的一致性測試&#xff0c;并且 kubeadm 還支持其他的集群生命周期功能&#…

Angular Material 攻略 04 Icon

Icon 網頁系統中的Icon雖然說很簡單&#xff0c;但是其中的學問還是有很多的&#xff0c;我們常用的Icon庫有FontAwesome、Iconfont等&#xff0c;我們選擇了Angular Material這個組件庫&#xff0c;就介紹Material Icons吧。 對Icon感興趣的同學可以看一下這里 Material Desig…

【9303】平面分割

Time Limit: 10 second Memory Limit: 2 MB 問題描述 同一平面內有n&#xff08;n≤500&#xff09;條直線&#xff0c;已知其中p&#xff08;p≥2&#xff09;條直線相交與同一點&#xff0c;則這n條直線最多能將平面分割成多少個不同的區域&#xff1f; Input 兩個整數n&am…

簡述yolo1-yolo3_使用YOLO框架進行對象檢測的綜合指南-第一部分

簡述yolo1-yolo3重點 (Top highlight)目錄&#xff1a; (Table Of Contents:) Introduction 介紹 Why YOLO? 為什么選擇YOLO&#xff1f; How does it work? 它是如何工作的&#xff1f; Intersection over Union (IoU) 聯合路口(IoU) Non-max suppression 非最大抑制 Networ…

django:資源網站匯總

Django REST framework官網 http://www.sinodocs.cn/ django中文網 https://www.django.cn/ 轉載于:https://www.cnblogs.com/gcgc/p/11542068.html

Kubernetes 入門(4)集群配置

1. 集群配置 報錯&#xff1a; message: ‘runtime network not ready: NetworkReadyfalse reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized’ 原因&#xff1a;cni未被初始化&#xff08;CNI 是 Container Network In…

【例9.8】合唱隊形

【例9.8】合唱隊形 鏈接&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1264 時間限制: 1000 ms 內存限制: 65536 KB【題目描述】 N位同學站成一排&#xff0c;音樂老師要請其中的(N-K)位同學出列&#xff0c;使得剩下的K位同學排成合唱隊形。 合唱隊形是…

scrum流程 規劃 沖刺_Scrum –困難的部分2:更快地沖刺

scrum流程 規劃 沖刺In the first part, I presented my favorite list of Scrums hard parts and how to work around them. In the second part, I offer you a colorful bouquet of workarounds as well. Have fun!在第一部分中 &#xff0c;我介紹了我最喜歡的Scrum困難部分…