Kubernetes(k8s)集群部署(k8s企業級Docker容器集群管理)系列之集群部署環境規划(一)


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

etcd

(主master)

master02 192.168.161.150

kube-apiserver

kube-controller-manager

kube-scheduler

(后期主要為擴展為master高可用說明)

node01 192.168.161.152

kubelet

kube-proxy

docker

flannel

etcd

node02 192.168.161.153

kubelet

kube-proxy

docker

flannel

etcd

 

二、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、系統架構及組件

 

 

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:運行容器。


第三方服務: 

etcd
分布式鍵值存儲系統。用於保持集群狀態,比如Pod、Service等對象信息。

 

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

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


 

asp.net Core 交流群:787464275 歡迎加群交流
如果您認為這篇文章還不錯或者有所收獲,您可以點擊右下角的【推薦】按鈕精神支持,因為這種支持是我繼續寫作,分享的最大動力!

作者:LouieGuo
聲明:原創博客請在轉載時保留原文鏈接或者在文章開頭加上本人博客地址,如發現錯誤,歡迎批評指正。凡是轉載於本人的文章,不能設置打賞功能,如有特殊需求請與本人聯系!

微信公眾號:歡迎關注                                                 QQ技術交流群: 歡迎加群

                


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM