天天看點

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之叢集部署環境規劃(一)0、前言一、環境規劃二、Kubernetes(k8s)介紹、系統架構及元件功能

0、前言

整體架構目錄:

ASP.NET Core分布式項目實戰-目錄

k8s架構目錄:

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列目錄

一、環境規劃

軟體 版本
Linux CentOS7 18.04
Kubernetes 1.9(也适用1.10)
Docker 18.06-ce
etcd 3.0
服務 IP 元件
master01 192.168.161.151

kube-apiserver

kube-controller-manager

kube-scheduler

(主master)

master02 192.168.161.150 (後期主要為擴充為master高可用說明)
node01 192.168.161.152

kubelet

kube-proxy

docker

flannel

node02 192.168.161.153

二、Kubernetes(k8s)介紹、系統架構及元件功能

1、k8s介紹

具體介紹可自行去官網檢視:

www.kubernetes.io

 ,這邊主要說明k8s是用來幹什麼的,k8s主要用來自動化部署、擴充和管理容器應用,提供了資源排程、部署管理、服務發現、擴容縮容、監控等一整套功能,目标是讓部署容器化應用簡單高效

2、基本對象概念

Pod:Pod是最小部署單元,一個Pod有一個或多個容器組成,Pod中容器共享存儲和網絡,在同一台Docker主機上運作。 

Service:

Service一個應用服務抽象,定義了Pod邏輯集合和通路這個Pod集合的政策。

Service代理Pod集合對外表現是為一個通路入口,配置設定一個叢集IP位址,來自這個IP的請求将負載均衡轉發後端Pod中的容器。

Service通過Lable Selector選擇一組Pod提供服務

Volume: 資料卷,共享Pod中容器使用的資料

Namespace:

命名空間将對象邏輯上配置設定到不同Namespace,可以是不同的項目、使用者等區分管理,并設定控制政策,進而實作多租戶。

命名空間也稱為虛拟叢集。

Lable: 标簽用于區分對象(比如Pod、Service),鍵/值對存在;每個對象可以有多個标簽,通過标簽關聯對象

ReplicaSet:

下一代Replication Controller。確定任何給定時間指定的Pod副本數量,并提供聲明式更新等功能。

RC與RS唯一差別就是lable selector支援不同,RS支援新的基于集合的标簽,RC僅支援基于等式的标簽

Deployment:

Deployment是一個更高層次的API對象,它管理ReplicaSets和Pod,并提供聲明式更新等功能。

官方建議使用Deployment管理ReplicaSets,而不是直接使用ReplicaSets,這就意味着可能永遠不需要直接操作ReplicaSet對象。

StatefulSet:

StatefulSet适合持久性的應用程式,有唯一的網絡辨別符(IP),持久存儲,有序的部署、擴充、删除和滾動更新。

DaemonSet:

DaemonSet確定所有(或一些)節點運作同一個Pod。當節點加入Kubernetes叢集中,Pod會被排程到該節點上運作,當節點從叢集中

移除時,DaemonSet的Pod會被删除。删除DaemonSet會清理它所有建立的Pod。

Job:

一次性任務,運作完成後Pod銷毀,不再重新啟動新容器。還可以任務定時運作

3、系統架構及元件

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之叢集部署環境規劃(一)0、前言一、環境規劃二、Kubernetes(k8s)介紹、系統架構及元件功能

Master元件:

kube-apiserver:

Kubernetes API,叢集的統一入口,各元件協調者,以HTTP API提供接口服務,所有對象資源的增删改查和監聽操作都交給APIServer處理後再送出給Etcd存儲。

kube-controller-manager:

處理叢集中正常背景任務,一個資源對應一個控制器,而ControllerManager就是負責管理這些控制器的。

kube-scheduler:

根據排程算法為新建立的Pod選擇一個Node節點。

Node元件:

kubelet:

kubelet是Master在Node節點上的Agent,管理本機運作容器的生命周期,比如建立容器、Pod挂載資料卷、

下載下傳secret、擷取容器和節點狀态等工作。kubelet将每個Pod轉換成一組容器。 

kube-proxy:

在Node節點上實作Pod網絡代理,維護網絡規則和四層負載均衡工作。 

docker:運作容器。

第三方服務: 

分布式鍵值存儲系統。用于保持叢集狀态,比如Pod、Service等對象資訊。

4、下一篇就是開始叢集部署啦

主要講解第一部分的:自簽TLS證書和部署Etcd叢集

asp.net Core 交流群:787464275 歡迎加群交流

如果您認為這篇文章還不錯或者有所收獲,您可以點選右下角的【推薦】按鈕精神支援,因為這種支援是我繼續寫作,分享的最大動力!

作者:

LouieGuo http://www.cnblogs.com/stulzq

聲明:原創部落格請在轉載時保留原文連結或者在文章開頭加上本人部落格位址,如發現錯誤,歡迎批評指正。凡是轉載于本人的文章,不能設定打賞功能,如有特殊需求請與本人聯系!

微信公衆号:歡迎關注                                                 QQ技術交流群: 歡迎加群

Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之叢集部署環境規劃(一)0、前言一、環境規劃二、Kubernetes(k8s)介紹、系統架構及元件功能
Kubernetes(k8s)叢集部署(k8s企業級Docker容器叢集管理)系列之叢集部署環境規劃(一)0、前言一、環境規劃二、Kubernetes(k8s)介紹、系統架構及元件功能