k8s概念及k8s集群部署(Centos7)

Centos7部署k8s集群

部署之前,先簡單說下k8s是個啥:

一、k8s簡介:

  • k8s,全稱:kubernetes,它可以看作是一個分布式系統支撐平臺。
  • k8s的作用:
    1、故障自愈:
    k8s這個玩意可以監控容器運行,我們把項目放到容器里。由于一些外部內部原因服務器承受不住壓力,如果主節點上的容器突然掛了,k8s立刻會自己將主機上的服務調度到另一個node機器上運行
    2、應用更新:
    更新項目上線時不用中斷當前項目的運行。
    3、還有一些自動擴容,縮容的概念就不講了,我本人也沒親身體會用過,不好說。

二、k8s的全生命周期管理:

在k8s進行管理應用的時候,基本步驟是:
創建集群–>部署應用–>發布應用–>擴展應用–>更新應用。

三、k8s的主要組件,以及它們主要是用來干什么的:

  • etcd:一款開源軟件。提供可靠的分布式數據存儲服務,用于持久化存儲K8s集群的配置和狀態

  • apiservice:用戶程序(如kubectl)、K8s其它組件之間通信的接口。K8s其它組件之間不直接通信,而是通過API server通信的。這一點在上圖的連接中可以體現,例如,只有API server連接了etcd,即其它組件更新K8s集群的狀態時,只能通過API server讀寫etcd中的數據。

  • Scheduler:排程組件,為用戶應用的每一可部署組件分配工作結點。

  • controller-manager:執行集群級別的功能,如復制組件、追蹤工作結點狀態、處理結點失敗等。Controller Manager組件是由多個控制器組成的,其中很多控制器是按K8s的資源類型劃分的,如Replication Manager(管理ReplicationController 資源),ReplicaSet Controller,PersistentVolume controller。

  • kube-proxy:在應用組件間負載均衡網絡流量。

  • kubelet:管理工作結點上的容器。

  • Contriner runtime Docker, rkt等實際運行容器的組件

四、k8s的整個集群運行原理:

  • master主機上的kube-controller-manager是整個集群的控制管理中心,kube-controler-manager中的node controller模塊 通過apiservice提供的監聽接口,實時監控node機的狀態信息。
    當某個node機器宕機,controller-manager就會及時排除故障并自動修復。

  • node節點機上的kubelet進程每隔一段時間周期就會調用一次apiservice接口報告自身狀態,apiservice接口接受到這些信息后將節點狀態更新到ectd中。kubelet也通過apiservice的監聽接口監聽pod信息,如果監控到新的pod副本被調度綁定到本節點,則執行pod對應的容器的創建和啟動,如果監聽到pod對象被刪除,則刪除本節點對應的pod容器。

五、安裝準備:

了解了基本概念之后,我們開始準備安裝部署工作:

  • 準備兩臺服務器:
    192.168.26.227,
    192.168.26.228

    一主一從:
    master機:192.168.26.227
    node機:192.168.26.228

  • 拓撲圖:
    在這里插入圖片描述
    master主機上192.168.26.277必須要有的組件:

  • etcd  :提供分布式數據存儲的數據庫吧,用于持久化存儲k8s集群的配置和狀態

  • kube-apiserver:api service提供了http rest接口,是整個集群的入口,K8s其它組件之間不直接通信,而是通過API server通信的。(只有API server連接了etcd,即其它組件更新K8s集群的狀態時,只能通過API server讀寫etcd中的數據)

  • kube-scheduler:scheduler負責資源的調度

  • kube-controller-manager:整個集群的管理控制中心,此組件里面是由多個控制器組成的,如:Replication Manager(管理ReplicationController 資源),ReplicaSet Controller,PersistentVolume controller。主要作用用來復制組件、追蹤工作結點狀態、處理失敗結點。

node節點機上192.168.26.228必須要有的組件:

  • flannel:好像是用來支持網絡通信的吧
  • kube-proxy:用來負載均衡網絡流量
  • kubelet:用來管理node節點機上的容器
  • docker:運行項目鏡像容器的組件

六、k8s安裝步驟:

做好準備工作后,正式進入安裝部署:

1、所有機器上執行以下命令,準備安裝環境:
(注意是所有機器,主機master,從機node都要安裝)

1.1、安裝epel-release源

yum -y install epel-release

1.2、所有機器關閉防火墻

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

#查看防火墻狀態

firewall-cmd --state

2、現在開始在master主機192.168.26.227上安裝kubernetes Master

2.1、使用yum安裝etcd、kubernetes-master

yum -y install etcd kubernetes-master

2.2、編輯:vi /etc/etcd/etcd.conf文件,修改結果如下:
在這里插入圖片描述
2.3、配置:vi /etc/kubernetes/apiserver文件,配置結果如下:

在這里插入圖片描述
2.4、啟動etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服務,并設置開機啟動:

for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done

2.5、在etcd中定義flannel網絡

etcdctl mk /atomic.io/network/config '{"Network":"172.17.0.0/16"}'

linux服務器技術
專欄收錄該內容
1 篇文章0 訂閱
訂閱專欄
借鑒博客:https://www.cnblogs.com/xkops/p/6169034.html

此博客里面有每個k8s配置文件的注釋:https://blog.csdn.net/qq_35904833/article/details/78190257

啊西吧,啊西吧,根據上面的博客終于安裝成功了。媽的,網上大部分博客安裝k8s配置寫得亂七八槽的,終于找到一篇條理清晰,安裝詳細的k8s安裝博客啦,哈哈哈哈,不容易啊快三個星期了,從狗屁不懂搞這玩意。

下面寫一寫我自己的安裝流程:

一、安裝準備:
      準備兩臺服務器(我用的是CentOS7系統):192.168.26.227,192.168.26.228

一主一從:

master機:192.168.26.227

node機:192.168.26.228

簡單說一下k8s:

k8s是個什么玩意?
          可以這樣去理解:k8s全稱:Kubernetes,它可以看作是一個分布式系統支撐平臺。

我們為什么要用k8s集群?
          故障自愈:

k8s這個玩意可以監控容器運行,我們把項目放到容器里。由于一些外部內部原因服務器承受不住壓力,如果主節點上的容器突然掛了,k8s立刻會自己將主機上的服務調度到另一個node機器上運行

應用更新:

更新項目上線時不用中斷當前項目的運行。

還有一些自動擴容,縮容的概念就不講了,我本人也沒親身體會用過,不好說。

k8s的全生命周期管理:
      在k8s進行管理應用的時候,基本步驟是:創建集群,部署應用,發布應用,擴展應用,更新應用。

k8s的主要組件,以及它們主要是用來干什么的:
          etcd:一款開源軟件。提供可靠的分布式數據存儲服務,用于持久化存儲K8s集群的配置和狀態

apiservice:用戶程序(如kubectl)、K8s其它組件之間通信的接口。K8s其它組件之間不直接通信,而是通過API server通信的。這一點在上圖的連接中可以體現,例如,只有API server連接了etcd,即其它組件更新K8s集群的狀態時,只能通過API server讀寫etcd中的數據。

Scheduler:排程組件,為用戶應用的每一可部署組件分配工作結點。

controller-manager:執行集群級別的功能,如復制組件、追蹤工作結點狀態、處理結點失敗等。Controller Manager組件是由多個控制器組成的,其中很多控制器是按K8s的資源類型劃分的,如Replication Manager(管理ReplicationController 資源),ReplicaSet Controller,PersistentVolume controller。

kube-proxy:在應用組件間負載均衡網絡流量。

kubelet:管理工作結點上的容器。

Contriner runtime Docker, rkt等實際運行容器的組件

上面都是些k8s集群所要用到的組件,具體這些組件都是用來干嘛的呢,我們來好好分析分析。

master主機上192.168.26.277必須要有的組件:

etcd  :提供分布式數據存儲的數據庫吧,用于持久化存儲k8s集群的配置和狀態

kube-apiserver:api service提供了http rest接口,是整個集群的入口,K8s其它組件之間不直接通信,而是通過API server通信的。(只有API server連接了etcd,即其它組件更新K8s集群的狀態時,只能通過API server讀寫etcd中的數據)

kube-scheduler:scheduler負責資源的調度

kube-controller-manager:整個集群的管理控制中心,此組件里面是由多個控制器組成的,如:Replication Manager(管理ReplicationController 資源),ReplicaSet Controller,PersistentVolume controller。主要作用用來復制組件、追蹤工作結點狀態、處理失敗結點

node節點機上192.168.26.228必須要有的組件:

flannel:好像是用來支持網絡通信的吧

kube-proxy:用來負載均衡網絡流量

kubelet:用來管理node節點機上的容器

docker:運行項目鏡像容器的組件

2018年11月30日:

今天又看了一些博客,多了一些認識和理解,如下:

k8s的整個集群運行原理:【重點核心知識很重要】
          master主機上的kube-controller-manager是整個集群的控制管理中心,kube-controler-manager中的node controller模塊 通過apiservice提供的監聽接口,實時監控node機的狀態信息。

當某個node機器宕機,controller-manager就會及時排除故障并自動修復。

node節點機上的kubelet進程每隔一段時間周期就會調用一次apiservice接口報告自身狀態,apiservice接口接受到這些信息后將節點狀態更新到ectd中。kubelet也通過apiservice的監聽接口監聽pod信息,如果監控到新的pod副本被調度綁定到本節點,則執行pod對應的容器的創建和啟動,如果監聽到pod對象被刪除,則刪除本節點對應的pod容器。(目前對pod、容器、鏡像這些概念還不是很清晰,無法在大腦中構建這都是些什么玩意,先做個筆記記著吧)

剛才在別人博客上看到一個圖很有意思,我們總監叫我學了ELK日志系統,jenkins自動構建工具,最近在搞k8s,還差消息中間件沒學,然后就看到了這個圖,頓時整個公司要搭建的分布式服務器環境一目了然,由于我不是架構師并不知道公司整個服務器分布式系統是怎樣的,現在才恍然大悟,原來如此,原來如此,原來如此呀。

原圖:
              原圖的博客地址:https://blog.csdn.net/zyc88888/article/details/79281954

我做了筆記的圖:

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

下面廢話不多說,來進行安裝步驟:

二、k8s安裝步驟:
        1、所有機器上執行以下命令,準備安裝環境:(注意是所有機器,主機master,從機node都要安裝)

1.1、安裝epel-release源

yum -y install epel-release
          1.2、所有機器關閉防火墻

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

#查看防火墻狀態
firewall-cmd --state

2、現在開始master主機上192.168.26.227安裝kubernetes Master

2.1、使用yum安裝etcd、kubernetes-master

yum -y install etcd kubernetes-master

2.2、編輯:vi /etc/etcd/etcd.conf文件,修改結果如下:

2.3、配置:vi /etc/kubernetes/apiserver文件,配置結果如下:

2.4、啟動etcd、kube-apiserver、kube-controller-manager、kube-scheduler等服務,并設置開機啟動。

for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES ; done

2.5、在etcd中定義flannel網絡

etcdctl mk /atomic.io/network/config ‘{“Network”:“172.17.0.0/16”}’

》》》》》》》》》》》》》》》》》》》》》》》》》到這里,master主機上的配置安裝就算暫時告一段落了》》》》》》》》》》》》》》》》》》》》》》》》

3、接下來弄node從機上的配置安裝什么的

3.1、在node機上192.168.26.228安裝kubernetes Node和flannel組件應用

yum -y install flannel kubernetes-node

3.2、為flannel網絡指定etcd服務,
修改/etc/sysconfig/flanneld文件,配置結果如下圖:

在這里插入圖片描述

3.3、修改:vi /etc/kubernetes/config文件,配置結果如下圖:

在這里插入圖片描述
3.4、修改node機的kubelet配置文件/etc/kubernetes/kubelet

在這里插入圖片描述

3.5、node節點機上啟動kube-proxy,kubelet,docker,flanneld等服務,并設置開機啟動。

for SERVICES in kube-proxy kubelet docker flanneld;do systemctl restart $SERVICES;systemctl enable $SERVICES;systemctl status $SERVICES; done

》》》》》》以上所有master主機,node節點機上的配置就完成了,接下來看看k8s集群是否搭建起來了》》》》》》》》》》》》》》》》》》》

在master主機上192.168.26.227執行如下命令,查看運行的node節點機器:

kubectl get nodes

展示如下圖結果,說明成功了,結果圖如下:

在這里插入圖片描述

以上就是centos7安裝部署k8s的基本步驟,希望能夠幫助到你。

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

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

相關文章

HTML 文本格式化

HTML 文本格式化 在構建網頁的過程中,文本的格式化是一個至關重要的環節。HTML(HyperText Markup Language)提供了豐富的標簽和屬性來幫助我們實現各種文本格式化的需求。本文將詳細介紹HTML中常見的文本格式化方法,包括字體、顏…

Manus AI Agent 技術解讀:架構、機制與競品對比

目錄 1. Manus 是什么? 1.1 研發背景 1.2 技術特點 1.3 工具調用能力 1.4 主要應用場景 2. Manus 一夜爆火的原因何在? 2.1 技術突破帶來的震撼 2.2 完整交付的產品體驗 2.3 生態與開源策略 3. Manus 與其他 AI Agent 的對比分析 3.1 技術架構…

【學習思維模型】

學習思維模型 一、理解類模型二、記憶類模型三、解決問題類模型四、結構化學習模型五、效率與習慣類模型六、高階思維模型七、實踐建議八、新增學習思維模型**1. 波利亞問題解決四步法****2. 主動回憶(Active Recall)****3. 魚骨圖(因果圖/Ishikawa Diagram)****4. MECE原則…

PCIE接口

PCIE接口 PIC接口介紹PIC總線結構PCI總線特點PCI總線的主要性能PIC的歷程 PCIE接口介紹PCIe接口總線位寬PCIE速率GT/s和Gbps區別PCIE帶寬計算 PCIE架構PCIe體系結構端到端的差分數據傳遞PCIe總線的層次結構事務層數據鏈路層物理層PCIe層級結構及功能框圖 PCIe鏈路初始化PCIe鏈路…

大語言模型(LLM)和嵌入模型的統一調用接口

ChatModelFactory、EmbeddingModelFactory 講解代碼:import os from dotenv import load_dotenv, find_dotenv_ load_dotenv(find_dotenv())from langchain_openai import ChatOpenAI, OpenAIEmbeddings, AzureChatOpenAI, AzureOpenAIEmbeddingsclass ChatModelF…

在Linux開發板中使用.NET實現音頻開發

本文將以Linux開發板為基礎,使用ALSA音頻框架和C#語言,演示如何實現基礎的音頻錄制與播放功能。 1. 背景 音頻處理是嵌入式開發中常見的需求,無論是語音交互、環境監測還是多媒體應用都離不開音頻模塊的支持。在Linux系統中,ALSA…

Windows控制臺函數:控制臺輸出函數WriteConsoleA()

目錄 什么是 WriteConsoleA? 函數簽名 參數詳解 返回值 一個最簡單的例子 跟 ReadConsoleA 對比 再試一個有趣的例子 為什么傳地址給 lpNumberOfCharsWritten? 注意事項 什么是 WriteConsoleA? WriteConsoleA 是一個 Windows API 函…

【貪心算法】將數組和減半的最小操作數

1.題目解析 2208. 將數組和減半的最少操作次數 - 力扣(LeetCode) 2.講解算法原理 使用當前數組中最大的數將它減半,,直到數組和減小到一半為止,從而快速達到目的 重點是找到最大數,可以采用大根堆快速達到…

Prompt engineering設計原則

目錄 一、清晰具體的prompt1. 使用分隔符2. 結構化的輸出(JSON)3. 要求模型檢查是否滿足條件4. 提供少量案例 二、給模型時間去思考1.指定完成任務所需的步驟2. 指導模型在下結論之前找出一個自己的解法 一、清晰具體的prompt 一個合理的prompt設計決定…

Vue 過濾器 filter(s) 的使用

即過濾器是用來格式化數據的一個函數。過濾器不會修改原始數據,它的作用是過濾數據,就是對數據進行加工處理并返回處理后的數據,比如做一些數據格式上的修改,狀態轉換等。 過濾器分為兩種 組件內的過濾器(組件內有效) 全局過濾器…

ESP8266UDP透傳

1. 配置 WiFi 模式 ATCWMODE3 // softAPstation mode 響應 : OK 2. PC 連?入 ESP8266 softAP 就是連接wifi 3.查詢ESP8266設備的IP地址 ATCIFSR 響應: CIFSR: APIP, "192.168.4.1" CIFSR: APMAC, "1a: fe: 34: a5:8d: c6" CIFSR: STAIP, "192.…

高效運行 QwQ-32B + 錯誤修復

文章目錄 QwQ-32B 錯誤修復?? 官方推薦設置👍 推薦的 llama.cpp 設置📖 教程:運行和修復的 QwQ-32B1、對于 llama.cpp 及使用 llama.cpp 的引擎:2、下載模型 測試3、測試/評估4、嘗試不使用我們的修復方案: &#x…

Jump( 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15). )

Jump( 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15). ) 題目大意: 在這個交互式問題中,你需要通過查詢系統,逐步找出隱藏的位字符串 S。給定一個偶數 n,表示目標位字符串 S 的長度,你需要通…

Leetcode 刷題記錄 06 —— 矩陣

本系列為筆者的 Leetcode 刷題記錄,順序為 Hot 100 題官方順序,根據標簽命名,記錄筆者總結的做題思路,附部分代碼解釋和疑問解答。 目錄 01 矩陣置零 方法一:標記數組 方法二:兩個標記變量 02 螺旋矩陣…

Java【網絡原理】(3)網絡編程續

目錄 1.前言 2.正文 2.1ServerSocket類 2.2Socket類 2.3Tcp回顯服務器 2.3.1TcpEchoServer 2.3.2TcpEchoClient 3.小結 1.前言 哈嘍大家好,今天繼續進行計算機網絡的初階學習,今天學習的是tcp回顯服務器的實現,正文開始 2.正文 在…

C++11新特性 8.final關鍵字、override關鍵字

一.final 用法: 1.修飾函數 只能修飾虛函數,阻止子類重寫這個函數,final關鍵字寫在函數名的后面。 即該虛函數不可以再被重寫。 注意:一般不會在基類中使用,不然沒有意義,因為只能修飾虛函數。 2.修飾…

Python實現網絡通信:Socket模塊與TCP/IP協議全解析

Langchain系列文章目錄 01-玩轉LangChain:從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊:四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain:從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

click house擴容方案

《ClickHouse擴容方案解析》 當我們談論數據庫的時候,尤其是像ClickHouse這樣專為處理大規模數據分析而設計的列式存儲數據庫時,擴容是一個不可避免的話題。隨著數據量的增長和查詢復雜度的提升,原有的硬件資源可能不足以支撐高效的查詢響應…

【AGI】智譜開源2025:一場AI技術民主化的革命正在到來

智譜開源2025:一場AI技術民主化的革命正在到來 引言:開源,一場技術平權的革命一、CogView4:中文AI生成的里程碑1. 破解漢字生成的“AI魔咒”2. 開源協議與生態賦能 二、AutoGLM:人機交互的范式躍遷1. 自然語言驅動的跨…

java8中young gc的垃圾回收器選型,您了解嘛

在 Java 8 的 Young GC(新生代垃圾回收)場景中,對于 ToC的場景,即需要盡可能減少垃圾回收停頓時間以滿足業務響應要求的場景,以下幾種收集器各有特點,通常 Parnew和 G1 young表現較為出色,下面詳…