国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s+docker集群整合搭建(完整版)

這篇具有很好參考價值的文章主要介紹了k8s+docker集群整合搭建(完整版)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、Kubernetes系列之介紹篇

1、背景介紹

  云計算飛速發(fā)展

  • IaaS

    • PaaS

      • SaaS

  Docker技術(shù)突飛猛進

  • 一次構(gòu)建,到處運行

    • 容器的快速輕量

      • 完整的生態(tài)環(huán)境

2、什么是kubernetes

  首先,他是一個全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案。Kubernetes(k8s)是Google開源的容器集群管理系統(tǒng)(谷歌內(nèi)部:Borg)。在Docker技術(shù)的基礎(chǔ)上,為容器化的應(yīng)用提供部署運行、資源調(diào)度、服務(wù)發(fā)現(xiàn)和動態(tài)伸縮等一系列完整功能,提了大規(guī)模容器集群管理的便捷性。

  Kubernetes是一個完備的分布式系統(tǒng)支撐平臺,具有完備的集群管理能力,多層次的安全防護和準入機制、多租戶應(yīng)用支撐能力、透明的服務(wù)注冊和發(fā)現(xiàn)機制、內(nèi)建智能負載均衡器、強大的故障發(fā)現(xiàn)和自我修復(fù)能力、服務(wù)滾動升級和在線擴容能力、可擴展的資源自動調(diào)度機制以及多粒度的資源配額管理能力。同時Kubernetes提供完善的管理工具,涵蓋了包括開發(fā)、部署測試、運維監(jiān)控在內(nèi)的各個環(huán)節(jié)。

Kubernetes中,Service是分布式集群架構(gòu)的核心,一個Service對象擁有如下關(guān)鍵特征:

擁有一個唯一指定的名字

擁有一個虛擬IP(Cluster IP、Service IP、或VIP)和端口號

能夠體現(xiàn)某種遠程服務(wù)能力

被映射到了提供這種服務(wù)能力的一組容器應(yīng)用上

  Service的服務(wù)進程目前都是基于Socket通信方式對外提供服務(wù),比如Redis、Memcache、MySQL、Web Server,或者是實現(xiàn)了某個具體業(yè)務(wù)的一個特定的TCP Server進程,雖然一個Service通常由多個相關(guān)的服務(wù)進程來提供服務(wù),每個服務(wù)進程都有一個獨立的Endpoint(IP+Port)訪問點,但Kubernetes能夠讓我們通過服務(wù)連接到指定的Service上。有了Kubernetes內(nèi)奸的透明負載均衡和故障恢復(fù)機制,不管后端有多少服務(wù)進程,也不管某個服務(wù)進程是否會由于發(fā)生故障而重新部署到其他機器,都不會影響我們對服務(wù)的正常調(diào)用,更重要的是這個Service本身一旦創(chuàng)建就不會發(fā)生變化,意味著在Kubernetes集群中,我們不用為了服務(wù)的IP地址的變化問題而頭疼了。

  容器提供了強大的隔離功能,所有有必要把為Service提供服務(wù)的這組進程放入容器中進行隔離。為此,Kubernetes設(shè)計了Pod對象,將每個服務(wù)進程包裝到相對應(yīng)的Pod中,使其成為Pod中運行的一個容器。為了建立Service與Pod間的關(guān)聯(lián)管理,Kubernetes給每個Pod貼上一個標簽Label,比如運行MySQL的Pod貼上name=mysql標簽,給運行PHP的Pod貼上name=php標簽,然后給相應(yīng)的Service定義標簽選擇器Label Selector,這樣就能巧妙的解決了Service于Pod的關(guān)聯(lián)問題。

  在集群管理方面,Kubernetes將集群中的機器劃分為一個Master節(jié)點和一群工作節(jié)點Node,其中,在Master節(jié)點運行著集群管理相關(guān)的一組進程kube-apiserver、kube-controller-manager和kube-scheduler,這些進程實現(xiàn)了整個集群的資源管理、Pod調(diào)度、彈性伸縮、安全控制、系統(tǒng)監(jiān)控和糾錯等管理能力,并且都是全自動完成的。Node作為集群中的工作節(jié)點,運行真正的應(yīng)用程序,在Node上Kubernetes管理的最小運行單元是Pod。Node上運行著Kubernetes的kubelet、kube-proxy服務(wù)進程,這些服務(wù)進程負責(zé)Pod的創(chuàng)建、啟動、監(jiān)控、重啟、銷毀以及實現(xiàn)軟件模式的負載均衡器。

  在Kubernetes集群中,它解決了傳統(tǒng)IT系統(tǒng)中服務(wù)擴容和升級的兩大難題。你只需為需要擴容的Service關(guān)聯(lián)的Pod創(chuàng)建一個Replication Controller簡稱(RC),則該Service的擴容及后續(xù)的升級等問題將迎刃而解。在一個RC定義文件中包括以下3個關(guān)鍵信息。

目標Pod的定義

目標Pod需要運行的副本數(shù)量(Replicas)

要監(jiān)控的目標Pod標簽(Label)

  在創(chuàng)建好RC后,Kubernetes會通過RC中定義的的Label篩選出對應(yīng)Pod實例并實時監(jiān)控其狀態(tài)和數(shù)量,如果實例數(shù)量少于定義的副本數(shù)量,則會根據(jù)RC中定義的Pod模板來創(chuàng)建一個新的Pod,然后將新Pod調(diào)度到合適的Node上啟動運行,知道Pod實例的數(shù)量達到預(yù)定目標,這個過程完全是自動化。

  

 Kubernetes優(yōu)勢:

  • 容器編排

  • 輕量級

  • 開源

  • 彈性伸縮

  • 負載均衡

3 、Kubernetes的核心概念

3.1、Master

  k8s集群的管理節(jié)點,負責(zé)管理集群,提供集群的資源數(shù)據(jù)訪問入口。擁有Etcd存儲服務(wù)(可選),運行Api Server進程,Controller Manager服務(wù)進程及Scheduler服務(wù)進程,關(guān)聯(lián)工作節(jié)點Node。

  • Kubernetes API server提供HTTP Rest接口的關(guān)鍵服務(wù)進程,是Kubernetes里所有資源的增、刪、改、查等操作的唯一入口。也是集群控制的入口進程;

  • Kubernetes Controller Manager是Kubernetes所有資源對象的自動化控制中心;

  • Kubernetes Schedule是負責(zé)資源調(diào)度(Pod調(diào)度)的進程

3.2、Node

  Node是Kubernetes集群架構(gòu)中運行Pod的服務(wù)節(jié)點(亦叫agent或minion)。Node是Kubernetes集群操作的單元,用來承載被分配Pod的運行,是Pod運行的宿主機。關(guān)聯(lián)Master管理節(jié)點,擁有名稱和IP、系統(tǒng)資源信息。

  • 運行docker eninge服務(wù)

  • 守護進程kunelet

  • 負載均衡器kube-proxy

每個Node節(jié)點都運行著以下一組關(guān)鍵進程

kubelet:負責(zé)對Pod對于的容器的創(chuàng)建、啟停等任務(wù)

kube-proxy:實現(xiàn)Kubernetes Service的通信與負載均衡機制的重要組件

Docker Engine(Docker):Docker引擎,負責(zé)本機容器的創(chuàng)建和管理工作

  Node節(jié)點可以在運行期間動態(tài)增加到Kubernetes集群中,默認情況下,kubelet會向master注冊自己,這也是Kubernetes推薦的Node管理方式,kubelet進程會定時向Master匯報自身情報,如操作系統(tǒng)、Docker版本、CPU和內(nèi)存,以及有哪些Pod在運行等等,這樣Master可以獲知每個Node節(jié)點的資源使用情況,并實現(xiàn)高效均衡的資源調(diào)度策略。

3.3、Pod

運行于Node節(jié)點上,若干相關(guān)容器的組合。Pod內(nèi)包含的容器運行在同一宿主機上,使用相同的網(wǎng)絡(luò)命名空間、IP地址和端口,能夠通過localhost進行通。Pod是Kurbernetes進行創(chuàng)建、調(diào)度和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。一個Pod可以包含一個容器或者多個相關(guān)容器。

Pod其實有兩種類型,普通Pod和靜態(tài)Pod,后者比較特殊,它并不存在Kubernetes的etcd存儲中,而是存放在某個具體的Node上的一個具體文件中,并且只在此Node上啟動。普通Pod一旦被創(chuàng)建,就會被放入etcd存儲中,隨后會被Kuberrnetes Master調(diào)度到某個具體的Node上進行綁定,隨后該Pod被對應(yīng)的Node上的kubelet進程實例化成一組相關(guān)的Docker容器并啟動起來,在默認情況下,當(dāng)Pod里的某個容器停止時,Kubernetes會自動檢測到這個問題并且重啟這個Pod(重啟Pod里所有容器),如果Pod所在的Node宕機,則會將這個Node上的所有Pod重新調(diào)度到其他節(jié)點上。

3.4、Replication Controller

Replication Controller用來管理Pod的副本,保證集群中存在指定數(shù)量的Pod副本。集群中副本的數(shù)量大于指定數(shù)量,則會停止指定數(shù)量之外的多余容器數(shù)量,反之,則會啟動少于指定數(shù)量個數(shù)的容器,保證數(shù)量不變。Replication Controller是實現(xiàn)彈性伸縮、動態(tài)擴容和滾動升級的核心。

3.5、Service

Service定義了Pod的邏輯集合和訪問該集合的策略,是真實服務(wù)的抽象。Service提供了一個統(tǒng)一的服務(wù)訪問入口以及服務(wù)代理和發(fā)現(xiàn)機制,關(guān)聯(lián)多個相同Label的Pod,用戶不需要了解后臺Pod是如何運行。

外部系統(tǒng)訪問Service的問題

首先需要弄明白Kubernetes的三種IP這個問題

  • Node IP:Node節(jié)點的IP地址

  • Pod IP: Pod的IP地址

  • Cluster IP:Service的IP地址  

    

首先,Node IP是Kubernetes集群中節(jié)點的物理網(wǎng)卡IP地址,所有屬于這個網(wǎng)絡(luò)的服務(wù)器之間都能通過這個網(wǎng)絡(luò)直接通信。這也表明Kubernetes集群之外的節(jié)點訪問Kubernetes集群之內(nèi)的某個節(jié)點或者TCP/IP服務(wù)的時候,必須通過Node IP進行通信。

其次,Pod IP是每個Pod的IP地址,它是Docker Engine根據(jù)docker0網(wǎng)橋的IP地址段進行分配的,通常是一個虛擬的二層網(wǎng)絡(luò)。

最后Cluster IP是一個虛擬的IP,但更像是一個偽造的IP網(wǎng)絡(luò),原因有以下幾點

Cluster IP僅僅作用于Kubernetes Service這個對象,并由Kubernetes管理和分配IP地址

Cluster IP無法被ping,它沒有一個“實體網(wǎng)絡(luò)對象”來響應(yīng)

Cluster IP只能結(jié)合Service Port組成一個具體的通信端口,單獨的Cluster IP不具備通信的基礎(chǔ),并且它們屬于Kubernetes集群這樣一個封閉的空間。

Kubernetes集群之內(nèi),Node IP網(wǎng)、Pod IP網(wǎng)與Cluster IP網(wǎng)之間的通信,采用的是Kubernetes自己設(shè)計的一種編程方式的特殊路由規(guī)則。

3.6、Label

Kubernetes中的任意API對象都是通過Label進行標識,Label的實質(zhì)是一系列的Key/Value鍵值對,其中key與Value由用戶自己指定。Label可以附加在各種資源對象上,如Node、Pod、Service、RC等,一個資源對象可以定義任意數(shù)量的Label,同一個Label可以被添加到任意數(shù)量的資源對象上去。Label是Replication Controller和Service運行的基礎(chǔ),二者通過Label來進行關(guān)聯(lián)Node上運行的Pod。

我們可以通過給指定的資源對象捆綁一個或者多個不同的Label來實現(xiàn)多維度的資源分組管理功能,以便靈活、方便的進行資源分配、調(diào)度、配置等管理工作。

版本標簽:"release":"stable","release":"canary"......

環(huán)境標簽:"environment":"dev","environment":"qa","environment":"production"

架構(gòu)標簽:"tier":"frontend","tier":"backend","tier":"middleware"

分區(qū)標簽:"partition":"customerA","partition":"customerB"

質(zhì)量管控標簽:"track":"daily","track":"weekly"

Label相當(dāng)于我們熟悉的標簽,給某個資源對象定義一個Label就相當(dāng)于給他打了一個標簽,隨后可以通過Label Selector(標簽選擇器)查詢和篩選擁有某些Label的資源對象,Kubernetes通過這種方式實現(xiàn)了類似SQL的簡單又通用的對象查詢機制。

Label Selector在Kubernetes中重要使用場景如下:

kube-Controller進程通過資源對象RC上定義Label Selector來篩選要監(jiān)控的Pod副本的數(shù)量,從而實現(xiàn)副本數(shù)量始終符合預(yù)期設(shè)定的全自動控制流程

 kube-proxy進程通過Service的Label Selector來選擇對應(yīng)的Pod,自動建立起每個Service到對應(yīng)Pod的請求轉(zhuǎn)發(fā)路由表,從而實現(xiàn)Service的智能負載均衡

 通過對某些Node定義特定的Label,并且在Pod定義文件中使用Nodeselector這種標簽調(diào)度策略,kuber-scheduler進程可以實現(xiàn)Pod”定向調(diào)度“的特性

4、Kubernetes架構(gòu)和組件

- 服務(wù)分組,小集群,多集群

- 服務(wù)分組,大集群,單集群

4.1、Kubernetes組件:

Kubernetes Master控制組件,調(diào)度管理整個系統(tǒng)(集群),包含如下組件:

4.1.1、Kubernetes API Server

作為Kubernetes系統(tǒng)的入口,其封裝了核心對象的增刪改查操作,以RESTful API接口方式提供給外部客戶和內(nèi)部組件調(diào)用。維護的REST對象持久化到Etcd中存儲。

4.1.2.Kubernetes Scheduler

    為新建立的Pod進行節(jié)點(node)選擇(即分配機器),負責(zé)集群的資源調(diào)度。組件抽離,可以方便替換成其他調(diào)度器。

4.1.3.Kubernetes Controller

    負責(zé)執(zhí)行各種控制器,目前已經(jīng)提供了很多控制器來保證Kubernetes的正常運行。

4.1.4. Replication Controller

    管理維護Replication Controller,關(guān)聯(lián)Replication Controller和Pod,保證Replication Controller定義的副本數(shù)量與實際運行Pod數(shù)量一致。

4.1.5. Node Controller

    管理維護Node,定期檢查Node的健康狀態(tài),標識出(失效|未失效)的Node節(jié)點。

4.1.6. Namespace Controller

    管理維護Namespace,定期清理無效的Namespace,包括Namesapce下的API對象,比如Pod、Service等。

4.1.7. Service Controller

    管理維護Service,提供負載以及服務(wù)代理。

4.1.8.EndPoints Controller

    管理維護Endpoints,關(guān)聯(lián)Service和Pod,創(chuàng)建Endpoints為Service的后端,當(dāng)Pod發(fā)生變化時,實時更新Endpoints。

4.1.9. Service Account Controller

    管理維護Service Account,為每個Namespace創(chuàng)建默認的Service Account,同時為Service Account創(chuàng)建Service Account Secret。

4.1.10. Persistent Volume Controller

    管理維護Persistent Volume和Persistent Volume Claim,為新的Persistent Volume Claim分配Persistent Volume進行綁定,為釋放的Persistent Volume執(zhí)行清理回收。

4.1.11. Daemon Set Controller

    管理維護Daemon Set,負責(zé)創(chuàng)建Daemon Pod,保證指定的Node上正常的運行Daemon Pod。

4.1.12. Deployment Controller

    管理維護Deployment,關(guān)聯(lián)Deployment和Replication Controller,保證運行指定數(shù)量的Pod。當(dāng)Deployment更新時,控制實現(xiàn)Replication Controller和 Pod的更新。

4.1.13.Job Controller

    管理維護Job,為Jod創(chuàng)建一次性任務(wù)Pod,保證完成Job指定完成的任務(wù)數(shù)目

4.1.14. Pod Autoscaler Controller

    實現(xiàn)Pod的自動伸縮,定時獲取監(jiān)控數(shù)據(jù),進行策略匹配,當(dāng)滿足條件時執(zhí)行Pod的伸縮動作。

4.2、Kubernetes Nodes

Kubernetes Nodes運行節(jié)點,運行管理業(yè)務(wù)容器,包含如下組件

4.2.1、Kubelet

負責(zé)管控容器,Kubelet會從Kubernetes API Server接收Pod的創(chuàng)建請求,啟動和停止容器,監(jiān)控容器運行狀態(tài)并匯報給Kubernetes API Server.

4.2.2、Kubernetes Proxy

負責(zé)為Pod創(chuàng)建代理服務(wù),Kubernetes Proxy會從Kubernetes API Server獲取所有的Service信息,并根據(jù)Service的信息創(chuàng)建代理服務(wù),實現(xiàn)Service到Pod的請求路由和轉(zhuǎn)發(fā),從而實現(xiàn)Kubernetes層級的虛擬轉(zhuǎn)發(fā)網(wǎng)絡(luò)。

4.3.3、Docker

Node上需要運行容器服務(wù)

二、基于Kubernetes構(gòu)建Docker集群環(huán)境實戰(zhàn)

kubernetes是google公司基于docker所做的一個分布式集群,有以下主件組成

1、etcd:

高可用存儲共享配置和服務(wù)發(fā)現(xiàn),作為與node機器上的flannel配套使用,作用是使每臺 node上運行的docker擁有不同的ip段,最終目的是使不同的node上正在運行的docker containner都有一個與別的任意一個containner(別的node上運行的docker containner)不一樣的IP地址。

2、flannel:

網(wǎng)絡(luò)結(jié)構(gòu)支持

3、kube-apiserver:

不論通過kubectl還是使用remote api 直接控制,都要經(jīng)過apiServer

4、kube-controller-manager:

對replication controller, endpoints controller, namespace controller, and serviceaccounts controller的循環(huán)控制,與kube-apiserver交互,保證這些controller工作

5、kube-scheduler

Kubernetes scheduler 的作用就是根據(jù)特定的調(diào)度算法將pod調(diào)度到指定的工作節(jié)點(node)上,這一過程也叫綁定(bind)。

6、kubelet

Kubelet運行在Kubernetes Node上. 它是container agent的邏輯繼任者

7、kube-proxy

kube-proxy是kubernetes 里運行在node節(jié)點上的一個組件, 它起的作用是一個服務(wù)代理的角色

三、準備環(huán)境

1、架構(gòu)拓撲圖

k8s集群搭建,kubernetes,docker,容器

2、環(huán)境規(guī)劃CentOS7系統(tǒng)機器兩臺:

192.168.10.130:用來安裝Kubernetes master

192.168.10.131:用作kubernetes node(node1)

角色                      IP                      組件
master                  192.168.10.130          etcd、kube-apiserver、kube-controller-manager、kube-scheduler
node01                  192.168.10.131          kubelet、kube-proxy、docker
node02                  192.168.10.132          kubelet、kube-proxy、docker

3、環(huán)境說明

操作系統(tǒng): CentOS7

Kubernetes版本:v1.8.3

Docker版本:v17.09-ce

均采用當(dāng)前最新穩(wěn)定版本。

關(guān)閉selinux。

備注:本人用的版本為以下:

查看系統(tǒng)內(nèi)核:uname -r 顯示結(jié)果3.10.0-229.el7.x86_64

查看系統(tǒng)版本:cat /etc/centos-release

顯示結(jié)果 CentOS Linux release 7.1.1503 (Core)

查看系統(tǒng)位數(shù):getconf LONG_BIT

操作系統(tǒng): CentOS Linux release 7.1.1503 (Core)

Kubernetes版本:v1.10.

Docker版本:v17.05-ce

Etcd版本:v3.34

關(guān)閉selinux。

部署部分

四、部署集群

1、下載二進制包

Kubernetes軟件包及ETCD

可以到官方的下載地址下載,地址是:點擊打開鏈接,最新下載版本是V1.10,會被墻,可以參考點擊打開鏈接,無論如何我還是把V1.0的client binary、server binary、node binary下載下來了。ETCD可以到點擊打開鏈接下載。

軟件包 用途

kubernetes-server-linux-amd64.tar.gz

版本是V1.10,包含KUBE-APISERVER,KUBE-CONTROLLER-MANAGER,KUBE-SCHEDULE

下載地址: kubernetes-server-linux-amd64.tar.gz_免費高速下載|百度網(wǎng)盤-分享無限制

kubernetes-node-linux-amd64.tar.gz

版本是V1.10, 包含KUBELET,KUBE-PROXY,KUBECTL,需要先安裝Docker

下載地址:kubernetes-node-linux-amd64.tar.gz_免費高速下載|百度網(wǎng)盤-分享無限制

etcd-v3.3.4-linux-amd64.tar.gz

版本是V3.34,Kubernetes Master需要ETCD數(shù)據(jù)存儲

下載地址:etcd-v3.3.4-linux-amd64.tar.gz_免費高速下載|百度網(wǎng)盤-分享無限制

Docker

版本V1.17.05

2、下載完成后,上傳到服務(wù)器

kubernetes-server-linux-amd64.tar.gz上傳到master節(jié)點。

kubernetes-node-linux-amd64.tar.gz 上傳到node節(jié)點。

etcd-v3.3.4-linux-amd64.tar.gz上傳到node節(jié)點

五、關(guān)閉系統(tǒng)運行的防火墻及selinux和設(shè)置時區(qū)主機名

1、如果系統(tǒng)開啟了防火墻則按如下步驟關(guān)閉防火墻(所有機器)

# systemctl stop firewalld # systemctl disable firewalld

2、關(guān)閉selinux

vim /etc/sysconfig/selinux
?
將以下值找到并修改
SELINUX=disabled
?
修改完后運行以下命令使得修改生效
setenforce 0

3.分別設(shè)置主機名為master1 node1 ... 時區(qū)

設(shè)置時區(qū),master、node機器都需執(zhí)行,時間統(tǒng)一

timedatectl set-timezone Asia/Shanghai

設(shè)置master主機名

hostnamectl set-hostname master

設(shè)置node主機名

hostnamectl set-hostname node #node執(zhí)行

六、master(即kubernetes-server)主機機器安裝配置

1、安裝etcd

ETCD是用于共享配置和服務(wù)發(fā)現(xiàn)的分布式、一致性的KV存儲系統(tǒng),主要包括了增刪改查、安全認證、集群、選舉、事務(wù)、分布式鎖、Watch機制等等,實現(xiàn)了RAFT協(xié)議,功能相當(dāng)強大

1.1、解壓文件

etcd-v3.3.4-linux-amd64.tar.gz

1.2 復(fù)制文件到指定目錄或就在當(dāng)前目錄,但需bin目錄下

把解壓目錄下的etcd和etcdctl復(fù)制到/usr/local/bin目下 ,或自己建一個bin目錄,然后把etcd和etcdctl放在建的bin目錄下

cd /usr/local/bin/

1.3配置etcd的配置文件

確保列出的這些項都配置正確并且沒有被注釋掉,下面的配置都是如此 

[telecom@master ~]$ vim /etc/etcd/etcd.conf
?
ETCD_NAME="default"
?
ETCD_DATA_DIR="/var/lib/kubelet"
?
ETCD_LISTEN_PEER_URLS="http://192.168.10.130:2380"
?
ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://127.0.0.1:2379,http://192.168.10.130:2379,http://192.168.10.130:4001"
?
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.130:2380"
?
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
?
ETCD_INITIAL_CLUSTER="default=http://192.168.10.130:2380"
?
ETCD_INITIAL_CLUSTER_STATE="new"
?
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
?
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
?
ETCD_HEARTBEAT_INTERVAL=6000
?
ETCD_ELECTION_TIMEOUT=30000
?
?

1.4、配置systemctl

在/etc/systemd/system/目錄下創(chuàng)建etcd.service,如果沒有system這個目錄,則創(chuàng)建就可以,首先創(chuàng)建ETCD的存儲的目錄地址/home/chen/etcd/data,然后創(chuàng)建ETCD的配置文件目錄/etc/etcd/,因為我們用的ETCD默認配置,所以/etc/etcd/etcd.conf空文件即可。

[telecom@master ~]$ vim /etc/systemd/system/etcd.service
?
[Unit]
?
Description=etcd server
?
After=network.target
?
After=network-online.target
?
Wants=network-online.target
?
 
?
[Service]
?
#Type=simple
?
Type=notify
?
WorkingDirectory=/var/lib/kubelet
?
EnvironmentFile=-/etc/etcd/etcd.conf
?
ExecStart=/usr/local/bin/etcd
?
[Install]
?
WantedBy=multi-user.target

1.5、配置好后。執(zhí)行一下命令

systemctl daemon-reload
?
systemctl enable etcd.service
?
systemctl start etcd.service
?
systemctl status etcd.service
?
systemctl stop etcd.service

遇到的問題

spawning /usr/local/bin/etcd: Not a directory
?
新建
mkdir -p /var/lib/kubelet
?
將 /etc/systemd/system/etcd.service
中的WorkingDirectory修改路徑
[Service]
WorkingDirectory=/var/lib/kubelet
?
并在/etc/etcd/etcd.conf
中的
ETCD_DATA_DIR="/var/lib/kubelet"
?
然后再按需執(zhí)行以上命令則會成功

1.6、查看etcd狀態(tài)

k8s集群搭建,kubernetes,docker,容器

1.7、驗證是否往etcd中寫數(shù)據(jù)是否成功,執(zhí)行

export ETCDCTL_API=3
 ?
etcdctl set 鍵 “值”
 ? ?
etcdctl get 鍵 
?
例:[telecom@master ~]$ etcdctl set li "123"
 
123
?
[telecom@master ~]$ etcdctl get li
?

1.8、設(shè)置環(huán)境變量

vi /etc/profile中
?
加入 export ETCDCTL_API=3
?
執(zhí)行source /etc/profile

k8s集群搭建,kubernetes,docker,容器

如果報錯,使用 journalctl -f -t etcd 和 journalctl -u etcd 來定位問題。

k8s集群搭建,kubernetes,docker,容器文章來源地址http://www.zghlxwxcb.cn/news/detail-755355.html

到了這里,關(guān)于k8s+docker集群整合搭建(完整版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Kubernetes(k8s)上搭建nacos集群

    Kubernetes(k8s)上搭建nacos集群

    你需要準備一個Kubernetes集群,如圖我的集群已經(jīng)準備完畢: nacos可以將配置文件存儲到數(shù)據(jù)庫當(dāng)中,所以我們要先準備一個擁有nacos數(shù)據(jù)表結(jié)構(gòu)的數(shù)據(jù)庫,這樣的數(shù)據(jù)庫鏡像我已經(jīng)準備好了,當(dāng)然你也可以自己制作這個鏡像: 我之前寫過一篇Kubernetes上安裝數(shù)據(jù)庫的文章:h

    2024年02月03日
    瀏覽(35)
  • kubernetes(K8S)學(xué)習(xí)(一):K8S集群搭建(1 master 2 worker)

    kubernetes(K8S)學(xué)習(xí)(一):K8S集群搭建(1 master 2 worker)

    kubernetes官網(wǎng) :https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl GitHub :https://github.com/kubernetes/kubeadm 本文 :使用kubeadm搭建一個3臺機器組成的k8s集群,1臺master節(jié)點,2臺worker節(jié)點。 由于k8s安裝較麻煩,為防止出現(xiàn)其他異常,特此

    2024年04月09日
    瀏覽(23)
  • 二進制搭建 Kubernetes與k8s集群搭建(一)

    二進制搭建 Kubernetes與k8s集群搭建(一)

    目錄 二進制搭建 Kubernetes v1.20 ? ? 操作系統(tǒng)初始化配置 部署 docker引擎 部署 etcd 集群 準備簽發(fā)證書環(huán)境 在 master01 節(jié)點上操作 ? ?? 生成Etcd證書 在 node01 節(jié)點上操作 在 node02 節(jié)點上操作 部署 Master 組件 在 master01 節(jié)點上操作 部署 Worker Node 組件 在所有 node 節(jié)點上操作 在 mas

    2024年02月06日
    瀏覽(26)
  • Linux搭建 Kubernetes(K8S)集群詳情教程

    當(dāng)搭建 Kubernetes 集群時,涉及的詳細步驟可能較多,以下是詳細的 Kubernetes 單節(jié)點集群搭建步驟: 步驟 1: 準備工作 確保滿足以下基本要求: 一臺運行 Ubuntu 18.04 或更高版本的機器。 2 GB 或更多內(nèi)存。 2 個 CPU 核心或更多。 安裝了 Docker。 步驟 2: 安裝 Docker 步驟 3: 安裝 kubea

    2024年01月17日
    瀏覽(63)
  • 容器技術(shù),1. Docker,2. Kubernetes(K8s):

    容器技術(shù),1. Docker,2. Kubernetes(K8s):

    目錄 容器技術(shù) 1. Docker: 2. Kubernetes(K8s): Docker和Kubernetes 容器的主要應(yīng)用場景有哪些? 有效的將單個操作系統(tǒng)的資源劃分到孤立的組中,以便更好的在孤立的組之間平衡有沖突的資源使用需求,這種技術(shù)就是容器技術(shù)。 容器技術(shù)指通過在物理主機操作系統(tǒng)上創(chuàng)建一個一個

    2024年02月11日
    瀏覽(30)
  • k8s容器化搭建redis集群

    k8s容器化搭建redis集群

    k8s中有三臺worker節(jié)點 192.168.1.100 192.168.1.101 192.168.1.102 創(chuàng)建配置字典,掛載redis的配置文件 key為redis.conf value為: 通過statefulset創(chuàng)建redis集群,有狀態(tài)應(yīng)用可以是副本之間有主從關(guān)系,數(shù)據(jù)需要做持久化。 在項目空間的 工作負載 - 有狀態(tài)副本集 - 創(chuàng)建 進行 Redis 的創(chuàng)建。 基本信

    2024年02月06日
    瀏覽(20)
  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要針對上篇文章的單 master 節(jié)點的 K8s 集群上搭建多 master 節(jié)點集群 和 LB 負載均衡服務(wù)器。 Kubernetes(K8S)集群搭建基礎(chǔ)入門教程 虛擬機 IP 地址: IP 操作系統(tǒng) 主機名稱 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    瀏覽(34)
  • 基于Docker的K8s(Kubernetes)集群部署

    基于Docker的K8s(Kubernetes)集群部署

    開始搭建k8s集群 三臺服務(wù)器修改主機名稱 關(guān)閉對話窗口,重新連接 三臺主機名稱呢就修改成功了。 接下來修改每臺節(jié)點的 hosts 文件 所有節(jié)點關(guān)閉 setLinux 查看是否關(guān)閉成功 為每個節(jié)點添加 k8s 數(shù)據(jù)源 如果安裝docker數(shù)據(jù)源找不到y(tǒng)um-config 所有節(jié)點安裝kubelet kubelet安裝中… k

    2024年02月08日
    瀏覽(25)
  • 使用containerd從0搭建k8s(kubernetes)集群

    準備兩臺服務(wù)器節(jié)點,如果需要安裝虛擬機,可以參考《wmware和centos安裝過程》 機器名 IP 角色 CPU 內(nèi)存 centos01 192.168.109.130 master 4核 2G centos02 192.168.109.131 node 4核 2G 設(shè)置主機名,所有節(jié)點都執(zhí)行 關(guān)閉防火墻,所有節(jié)點都執(zhí)行 關(guān)閉swap內(nèi)存,所有節(jié)點都執(zhí)行 配置網(wǎng)橋,所有節(jié)點

    2024年02月08日
    瀏覽(42)
  • 【kubernetes】k8s高可用集群搭建(三主三從)

    【kubernetes】k8s高可用集群搭建(三主三從)

    目錄 【kubernetes】k8s高可用集群搭建(三主三從) 一、服務(wù)器設(shè)置 二、環(huán)境配置 1、關(guān)閉防火墻 2、關(guān)閉selinux 3、關(guān)閉swap 4、修改主機名(根據(jù)主機角色不同,做相應(yīng)修改) 5、主機名映射 6、將橋接的IPv4流量傳遞到iptables的鏈 7、時間同步 8、master之間進行免密登錄設(shè)置 三、

    2024年02月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包