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

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

這篇具有很好參考價(jià)值的文章主要介紹了【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

連接上文

在上文已經(jīng)成功部署了etcd分布式數(shù)據(jù)庫、master01節(jié)點(diǎn),

本文將承接上文的內(nèi)容,繼續(xù)部署Kubernetes集群中的 worker node 節(jié)點(diǎn)和 CNI 網(wǎng)絡(luò)插件

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

?1.? 部署 Worker Node 組件

?1.1 work node 組件部署前需了解的節(jié)點(diǎn)注冊(cè)機(jī)制


kubelet 采用 TLS Bootstrapping 機(jī)制,自動(dòng)完成到 kube-apiserver 的注冊(cè),在 node 節(jié)點(diǎn)量較大或者后期自動(dòng)擴(kuò)容時(shí)非常有用。 ?

Master apiserver 啟用 TLS 認(rèn)證后,node 節(jié)點(diǎn) kubelet 組件想要加入集群,必須使用CA簽發(fā)的有效證書才能與 apiserver 通信,當(dāng) node 節(jié)點(diǎn)很多時(shí),簽署證書是一件很繁瑣的事情。因此 Kubernetes 引入了 TLS bootstraping 機(jī)制來自動(dòng)頒發(fā)客戶端證書,kubelet 會(huì)以一個(gè)低權(quán)限用戶自動(dòng)向 apiserver 申請(qǐng)證書,kubelet 的證書由 apiserver 動(dòng)態(tài)簽署。

?? ?kubelet 首次啟動(dòng)通過加載 bootstrap.kubeconfig 中的用戶 Token 和 apiserver CA 證書發(fā)起首次 CSR 請(qǐng)求,這個(gè) Token 被預(yù)先內(nèi)置在 apiserver 節(jié)點(diǎn)的 token.csv 中,其身份為 kubelet-bootstrap 用戶和 system:kubelet-bootstrap 用戶組;想要首次 CSR 請(qǐng)求能成功(即不會(huì)被 apiserver 401 拒絕),則需要先創(chuàng)建一個(gè) ClusterRoleBinding,將 kubelet-bootstrap 用戶和 system:node-bootstrapper 內(nèi)置 ClusterRole 綁定(通過 kubectl get clusterroles 可查詢),使其能夠發(fā)起 CSR 認(rèn)證請(qǐng)求。
?

TLS bootstrapping 時(shí)的證書實(shí)際是由 kube-controller-manager 組件來簽署的,也就是說證書有效期是 kube-controller-manager 組件控制的;kube-controller-manager 組件提供了一個(gè) --experimental-cluster-signing-duration 參數(shù)來設(shè)置簽署的證書有效時(shí)間;默認(rèn)為 8760h0m0s,將其改為 87600h0m0s,即 10 年后再進(jìn)行 TLS bootstrapping 簽署證書即可。 ??

?也就是說 kubelet 首次訪問 API Server 時(shí),是使用 token 做認(rèn)證,通過后,Controller Manager 會(huì)為 kubelet 生成一個(gè)證書,以后的訪問都是用證書做認(rèn)證了。
?

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

?1.2?Worker Node 組件部署步驟

//在所有 node 節(jié)點(diǎn)上操作
#創(chuàng)建kubernetes工作目錄
mkdir -p /opt/kubernetes/{bin,cfg,ssl,logs}
?
#上傳 node.zip 到 /opt 目錄中,解壓 node.zip 壓縮包,獲得kubelet.sh、proxy.sh
cd /opt/
unzip node.zip
chmod +x kubelet.sh proxy.sh
?

//在 master01 節(jié)點(diǎn)上操作
#把 kubelet、kube-proxy 拷貝到 node 節(jié)點(diǎn)
cd /opt/k8s/kubernetes/server/bin
scp kubelet kube-proxy root@192.168.50.21:/opt/kubernetes/bin/
scp kubelet kube-proxy root@192.168.50.22:/opt/kubernetes/bin/
?
#上傳 kubeconfig.sh 文件到 /opt/k8s/kubeconfig 目錄中,生成 kubeconfig 的配置文件
mkdir /opt/k8s/kubeconfig
?
cd /opt/k8s/kubeconfig
chmod +x kubeconfig.sh
./kubeconfig.sh 192.168.50.20?/opt/k8s/k8s-cert/
?
scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.50.21:/opt/kubernetes/cfg/
scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.50.22:/opt/kubernetes/cfg/
?
#RBAC授權(quán),使用戶 kubelet-bootstrap 能夠有權(quán)限發(fā)起 CSR 請(qǐng)求
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
?

//在 node01 節(jié)點(diǎn)上操作
#啟動(dòng) kubelet 服務(wù)
cd /opt/
./kubelet.sh 192.168.50.21
ps aux | grep kubelet
?
//在 master01 節(jié)點(diǎn)上操作,通過 CSR 請(qǐng)求
#檢查到 node01 節(jié)點(diǎn)的 kubelet 發(fā)起的 CSR 請(qǐng)求,Pending 表示等待集群給該節(jié)點(diǎn)簽發(fā)證書
kubectl get csr
?
#通過 CSR 請(qǐng)求
kubectl certificate approve (上面選項(xiàng)中REQUESTOR的值 ?)
?
#Approved,Issued 表示已授權(quán) CSR 請(qǐng)求并簽發(fā)證書
kubectl get csr
?
?
#查看節(jié)點(diǎn),由于網(wǎng)絡(luò)插件還沒有部署,節(jié)點(diǎn)會(huì)沒有準(zhǔn)備就緒 NotReady
kubectl get node
?
?
//在 node01 節(jié)點(diǎn)上操作
#加載 ip_vs 模塊
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
?
#啟動(dòng)proxy服務(wù)
cd /opt/
./proxy.sh 192.168.50.21
ps aux | grep kube-proxy
?

注意:這里的notready是因?yàn)閚ode節(jié)點(diǎn)上的網(wǎng)絡(luò)插件還沒有部署好,所以會(huì)這樣顯示,

接下來會(huì)重點(diǎn)介紹k8s的網(wǎng)絡(luò)插件,再繼續(xù)部署?

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

node02節(jié)點(diǎn)同樣的操作

?2.?k8s的CNI網(wǎng)絡(luò)插件模式

2.1 k8s的三種網(wǎng)絡(luò)模式?

K8S 中 Pod 網(wǎng)絡(luò)通信:


(1)Pod 內(nèi)容器與容器之間的通信


在同一個(gè) Pod 內(nèi)的容器(Pod 內(nèi)的容器是不會(huì)跨宿主機(jī)的)共享同一個(gè)網(wǎng)絡(luò)命令空間,相當(dāng)于它們?cè)谕慌_(tái)機(jī)器上一樣,可以用 localhost 地址訪問彼此的端口。

(2)同一個(gè) Node 內(nèi) Pod 之間的通信


每個(gè) Pod 都有一個(gè)真實(shí)的全局 IP 地址,同一個(gè) Node 內(nèi)的不同 Pod 之間可以直接采用對(duì)方 Pod 的 IP 地址進(jìn)行通信,Pod1 與 Pod2 都是通過 Veth 連接到同一個(gè) docker0 網(wǎng)橋,網(wǎng)段相同,所以它們之間可以直接通信。

(3)不同 Node 上 Pod 之間的通信


Pod 地址與 docker0 在同一網(wǎng)段,docker0 網(wǎng)段與宿主機(jī)網(wǎng)卡是兩個(gè)不同的網(wǎng)段,且不同 Node 之間的通信只能通過宿主機(jī)的物理網(wǎng)卡進(jìn)行。

要想實(shí)現(xiàn)不同 Node 上 Pod 之間的通信,就必須想辦法通過主機(jī)的物理網(wǎng)卡 IP 地址進(jìn)行尋址和通信。因此要滿足兩個(gè)條件:Pod 的 IP 不能沖突;將 Pod 的 IP 和所在的 Node 的 IP 關(guān)聯(lián)起來,通過這個(gè)關(guān)聯(lián)讓不同 Node 上 Pod 之間直接通過內(nèi)網(wǎng) IP 地址通信。

Overlay Network:

疊加網(wǎng)絡(luò),在二層或者三層基礎(chǔ)網(wǎng)絡(luò)上疊加的一種虛擬網(wǎng)絡(luò)技術(shù)模式,該網(wǎng)絡(luò)中的主機(jī)通過虛擬鏈路隧道連接起來(類似于VPN)。

VXLAN:

將源數(shù)據(jù)包封裝到UDP中,并使用基礎(chǔ)網(wǎng)絡(luò)的IP/MAC作為外層報(bào)文頭進(jìn)行封裝,然后在以太網(wǎng)上傳輸,到達(dá)目的地后由隧道端點(diǎn)解封裝并將數(shù)據(jù)發(fā)送給目標(biāo)地址。
?

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

2.2 ?Flannel 插件

Flannel 的功能是讓集群中的不同節(jié)點(diǎn)主機(jī)創(chuàng)建的 Docker 容器都具有全集群唯一的虛擬 IP 地址。

Flannel 是 Overlay 網(wǎng)絡(luò)的一種,也是將 TCP 源數(shù)據(jù)包封裝在另一種網(wǎng)絡(luò)包里面進(jìn)行路由轉(zhuǎn)發(fā)和通信,目前支持 udp、vxlan、 host-GW 3種數(shù)據(jù)轉(zhuǎn)發(fā)方式。

UDP(默認(rèn)方式,基于應(yīng)用轉(zhuǎn)發(fā),配置簡單,性能最差) VXLAN(基于內(nèi)核轉(zhuǎn)發(fā)) Host-gw(性能最好、配置麻煩) ?

(1)Flannel UDP 模式(端口8285)?


udp模式的工作原理:(基于應(yīng)用進(jìn)行轉(zhuǎn)發(fā),F(xiàn)lannel提供路由表,F(xiàn)lannel封裝、解封裝)

數(shù)據(jù)從 node01 上 Pod 的源容器中發(fā)出后,經(jīng)由所在主機(jī)的 docker0 虛擬網(wǎng)卡轉(zhuǎn)發(fā)到 flannel0 虛擬網(wǎng)卡,flanneld 服務(wù)監(jiān)聽在 flannel0 虛擬網(wǎng)卡的另外一端。

Flannel 通過 Etcd 服務(wù)維護(hù)了一張節(jié)點(diǎn)間的路由表。源主機(jī) node01 的 flanneld 服務(wù)將原本的數(shù)據(jù)內(nèi)容封裝到 UDP 中后根據(jù)自己的路由表通過物理網(wǎng)卡投遞給目的節(jié)點(diǎn) node02 的 flanneld 服務(wù),數(shù)據(jù)到達(dá)以后被解包,然后直接進(jìn)入目的節(jié)點(diǎn)的 flannel0 虛擬網(wǎng)卡,之后被轉(zhuǎn)發(fā)到目的主機(jī)的 docker0 虛擬網(wǎng)卡,最后就像本機(jī)容器通信一樣由 docker0 轉(zhuǎn)發(fā)到目標(biāo)容器。

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

ETCD 之 Flannel 提供說明:

  • 存儲(chǔ)管理Flannel可分配的IP地址段資源
  • 監(jiān)控 ETCD 中每個(gè) Pod 的實(shí)際地址,并在內(nèi)存中建立維護(hù) Pod 節(jié)點(diǎn)路由表

(2) vxlan 模式(端口4789)


vxlan 是一種overlay(虛擬隧道通信)技術(shù),通過三層網(wǎng)絡(luò)搭建虛擬的二層網(wǎng)絡(luò),跟 udp 模式具體實(shí)現(xiàn)不太一樣:

1)udp模式是在用戶態(tài)實(shí)現(xiàn)的,數(shù)據(jù)會(huì)先經(jīng)過tun網(wǎng)卡,到應(yīng)用程序,應(yīng)用程序再做隧道封裝,再進(jìn)一次內(nèi)核協(xié)議棧,而vxlan是在內(nèi)核當(dāng)中實(shí)現(xiàn)的,只經(jīng)過一次協(xié)議棧,在協(xié)議棧內(nèi)就把vxlan包組裝好。

2)udp模式的tun網(wǎng)卡是三層轉(zhuǎn)發(fā),使用tun是在物理網(wǎng)絡(luò)之上構(gòu)建三層網(wǎng)絡(luò),屬于ip in udp,vxlan模式是二層實(shí)現(xiàn), overlay是二層幀,屬于mac in udp。

3)vxlan由于采用mac in udp的方式,所以實(shí)現(xiàn)起來會(huì)涉及mac地址學(xué)習(xí),arp廣播等二層知識(shí),udp模式主要關(guān)注路由
?

Flannel VXLAN模式跨主機(jī)的工作原理:(Flannel提供路由表,由內(nèi)核封裝、解封裝)

1、數(shù)據(jù)幀從主機(jī)A上Pod的源容器中發(fā)出后,經(jīng)由所在主機(jī)的docker0/cni0 網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)到flannel.1 接口

2、flannel.1 收到數(shù)據(jù)幀后添加VXLAN 頭部,封裝在UDP報(bào)文中

3、主機(jī)A通過物理網(wǎng)卡發(fā)送封包到主機(jī)B的物理網(wǎng)卡中

4、主機(jī)B的物理網(wǎng)卡再通過VXLAN 默認(rèn)端口8472轉(zhuǎn)發(fā)到flannel.1 接口進(jìn)行解封裝

(官方給出的預(yù)設(shè)接口為4789,而實(shí)際運(yùn)用的其實(shí)為8472端口)

5、解封裝以后,內(nèi)核將數(shù)據(jù)幀發(fā)送到Cni0, 最后由Cni0 發(fā)送到橋接到此接口的容器B中。
?

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

3) UDP和VXLAN的區(qū)別?


由于UDP模式是在用戶態(tài)做轉(zhuǎn)發(fā)(即基于應(yīng)用進(jìn)行轉(zhuǎn)發(fā),由應(yīng)用程序進(jìn)行封裝和解封裝),會(huì)多一次報(bào)文隧道封裝,因此性能上會(huì)比在內(nèi)核態(tài)做轉(zhuǎn)發(fā)的VXLAN模式差。

UDP和VXLAN的區(qū)別:

UDP基于應(yīng)用程序進(jìn)行轉(zhuǎn)發(fā),由應(yīng)用程序進(jìn)行封裝和解封裝;VXLAN由內(nèi)核進(jìn)行封裝和解封裝,內(nèi)核效率比應(yīng)用程序要高,所以VXLAN比UDP要快。
UDP是數(shù)據(jù)包,VXLAN是數(shù)據(jù)幀。
UDP的網(wǎng)卡Flannel0,VXLAN的網(wǎng)卡Flannel.1。

?

(4)知識(shí)延申:vlan和vxlan的區(qū)別?


1)vxlan支持更多的二層網(wǎng)絡(luò)

vlan使用12位bit表示vlan ID,因此最多支持2^12=4096個(gè)vlan(可用數(shù)量為4094)

vxlan使用的ID使用24位bit,最多可以支持2^24個(gè)

2)vxlan對(duì)已有的網(wǎng)絡(luò)路徑利用效率更高

vlan使用STP(spanning tree protocol)避免環(huán)路,會(huì)將一半的網(wǎng)絡(luò)路徑阻塞。

vxlan的數(shù)據(jù)包封裝成UDP通過網(wǎng)絡(luò)層傳輸,可以使用所有的網(wǎng)絡(luò)路徑。

3)vxlan可以防止物理交換機(jī)Mac表耗盡

vlan需要在交換機(jī)的Mac表中記錄Mac物理地址。

vxlan采用隧道機(jī)制,Mac物理地址不需記錄在交換機(jī)。

4)VXLAN在一定程度上可以實(shí)現(xiàn)邏輯網(wǎng)絡(luò)拓?fù)浜臀锢砭W(wǎng)絡(luò)拓?fù)涞慕怦?/strong>

VXLAN技術(shù)通過隧道技術(shù)在物理的三層網(wǎng)絡(luò)中虛擬二層網(wǎng)絡(luò),處于VXL AN網(wǎng)絡(luò)的終端無法察覺到VXL AN的通信過程,這樣也就使得邏輯網(wǎng)絡(luò)拓?fù)浜臀锢砭W(wǎng)絡(luò)拓?fù)鋵?shí)現(xiàn)了一定程度的解耦,網(wǎng)絡(luò)拓?fù)涞呐渲脤?duì)于物理設(shè)備的配置的依賴程度有所降低,配置更靈活更方便。

5)VXLAN技術(shù)還具有多租戶支持的特性

VLAN技術(shù)僅僅解決了二層網(wǎng)絡(luò)廣播域分割的問題,而VXL AN技術(shù)還具有多租戶支持的特性,通過VXLAN分割,各個(gè)租戶可以獨(dú)立組網(wǎng)、通信,地址分配方面和多個(gè)租戶之間地址沖突的問題也得到了解決。
?

2.3??Calico 插件

(1) k8s組網(wǎng)方案對(duì)比?

1)flannel 方案:

需要在每個(gè)節(jié)點(diǎn)_上把發(fā)向容器的數(shù)據(jù)包進(jìn)行封裝后,再用隧道將封裝后的數(shù)據(jù)包發(fā)送到運(yùn)行著目標(biāo)Pod的node節(jié)點(diǎn)上。目標(biāo)node節(jié)點(diǎn)再負(fù)責(zé)去掉封裝,將去除封裝的數(shù)據(jù)包發(fā)送到目標(biāo)Pod上。數(shù)據(jù)通信性能則大受影響。

2)calico方案:

Calico不使用隧道或NAT來實(shí)現(xiàn)轉(zhuǎn)發(fā),而是把Host當(dāng)作Internet中的路由器,使用BGP同步路由,并使用iptables來做安全訪問策略,完成跨Host轉(zhuǎn)發(fā)來。

采用直接路由的方式,這種方式性能損耗最低,不需要修改報(bào)文數(shù)據(jù),但是如果網(wǎng)絡(luò)比較復(fù)雜場(chǎng)景下,路由表會(huì)很復(fù)雜,對(duì)運(yùn)維同事提出了較高的要求。
?

(2)Calico的組成和工作原理

基于三層路由表進(jìn)行轉(zhuǎn)發(fā),不需要封裝和解封裝。

Calico主要由三個(gè)部分組成:

  • Calico CNI插件:主要負(fù)責(zé)與kubernetes對(duì)接,供kubelet 調(diào)用使用。
  • Felix:負(fù)責(zé)維護(hù)宿主機(jī)上的路由規(guī)則、FIB轉(zhuǎn)發(fā)信息庫等。
  • BIRD:負(fù)責(zé)分發(fā)路由規(guī)則,類似路由器。
  • Confd:配置管理組件。

Calico工作原理:

1 Calico是通過路由表來維護(hù)每個(gè)pod的通信。
2 Calico 的CNI插件會(huì)為每個(gè)容器設(shè)置一個(gè) veth pair設(shè)備,然后把另一端接入到宿主機(jī)網(wǎng)絡(luò)空間,由于沒有網(wǎng)橋,CNI插件還需要在宿主機(jī)上為每個(gè)容器的veth pair設(shè)備配置一條路由規(guī)則,用于接收傳入的IP包。
3 有了這樣的veth pair設(shè)備以后,容器發(fā)出的IP包就會(huì)通過veth pair設(shè)備到達(dá)宿主機(jī),然后宿主機(jī)根據(jù)路由規(guī)則的下一跳地址,發(fā)送給正確的網(wǎng)關(guān),然后到達(dá)目標(biāo)宿主機(jī),再到達(dá)目標(biāo)容器
4 這些路由規(guī)則都是Felix 維護(hù)配置的,而路由信息則是Calico BIRD 組件基于BGP(動(dòng)態(tài)路由協(xié)議,可以選路)分發(fā)而來。
5 calico實(shí)際上是將集群里所有的節(jié)點(diǎn)都當(dāng)做邊界路由器來處理,他們一起組成了一個(gè)全互聯(lián)的網(wǎng)絡(luò),彼此之間通過BGP交換路由,這些節(jié)點(diǎn)我們叫做BGP Peer。

?

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

2.4??flannel和calico對(duì)比?

flannel
配置方便,功能簡單,是基于overlay疊加網(wǎng)絡(luò)實(shí)現(xiàn)的(在原有數(shù)據(jù)包中再封裝一層),由于要進(jìn)行封裝和解封裝的過程對(duì)性能會(huì)有一定的影響,同時(shí)不具備網(wǎng)絡(luò)策略配置能力。
三種模式:UDP、 VXLAN、HOST-GW
默認(rèn)網(wǎng)段是:10.244.0.0/16


calico
功能強(qiáng)大,基于路由表進(jìn)行轉(zhuǎn)發(fā),沒有封裝和解封裝的過程,對(duì)性能影響較小,具有網(wǎng)絡(luò)策略配置能力,但是路由表維護(hù)起來較為復(fù)雜。
模式:BGP、IPIP
默認(rèn)網(wǎng)段192 .168.0.0/16


目前比較常用的CNI網(wǎng)絡(luò)組件是flannel和calico,flannel的功能比較簡單,不具備復(fù)雜的網(wǎng)絡(luò)策略配置能力,calico是比較出色的網(wǎng)絡(luò)管理插件,但具備復(fù)雜網(wǎng)絡(luò)配置能力的同時(shí),往往意味著本身的配置比較復(fù)雜,所以相對(duì)而言,比較小而簡單的集群使用flannel,考慮到日后擴(kuò)容,未來網(wǎng)絡(luò)可能需要加入更多設(shè)備,配置更多網(wǎng)絡(luò)策略,則使用calico更好。

(flannel在封裝和解封裝的過程中,會(huì)有性能損耗。calico沒有封裝解封裝過程,沒有性能損耗)
?

3.?部署網(wǎng)絡(luò)組件

?3.1 部署 flannel

//在node1節(jié)點(diǎn)上操作
#上傳 cni-plugins-linux-amd64-v0.8.6.tgz 和 flannel.tar 到 /opt 目錄中
cd /opt/
docker load -i flannel.tar
?
mkdir /opt/cni/bin -p
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin
?
//在node2節(jié)點(diǎn)上操作
#上傳 cni-plugins-linux-amd64-v0.8.6.tgz 和 flannel.tar 到 /opt 目錄中
cd /opt/
docker load -i flannel.tar
?
mkdir /opt/cni/bin -p
tar zxvf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin
?
?
//在 master01 節(jié)點(diǎn)上操作
#上傳 kube-flannel.yml 文件到 /opt/k8s 目錄中,部署 CNI 網(wǎng)絡(luò)
cd /opt/k8s
kubectl apply -f kube-flannel.yml?
?
kubectl get pods -n kube-system
?
?
kubectl get nodes

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

?文章來源地址http://www.zghlxwxcb.cn/news/detail-493291.html

3.2? ?部署 Calico?

??該網(wǎng)絡(luò)插件和flannel插件? 選擇其一部署即可(由于yaml文件過于復(fù)雜,本次就不再展示)


//在 master01 節(jié)點(diǎn)上操作
#上傳 calico.yaml 文件到 /opt/k8s 目錄中,部署 CNI 網(wǎng)絡(luò)
cd /opt/k8s
vim calico.yaml
#修改里面定義Pod網(wǎng)絡(luò)(CALICO_IPV4POOL_CIDR),與前面kube-controller-manager配置文件指定的cluster-cidr網(wǎng)段一樣
? ? - name: CALICO_IPV4POOL_CIDR ? ? ? #3878行
? ? ? value: "192.168.0.0/16" ? ? ? ? ? ? ? ? ? ? ?#3879行 ? ? 10.244.0.0/16
??
kubectl apply -f calico.yaml

kubectl get pods -n kube-system
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? READY ? STATUS ? ?RESTARTS ? AGE
calico-kube-controllers-659bd7879c-4h8vk ? 1/1 ? ? Running ? 0 ? ? ? ? ?58s
calico-node-nsm6b ? ? ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ? ?58s
calico-node-tdt8v ? ? ? ? ? ? ? ? ? ? ? ? ?1/1 ? ? Running ? 0 ? ? ? ? ?58s

#等 Calico Pod 都 Running,節(jié)點(diǎn)也會(huì)準(zhǔn)備就緒
kubectl get nodes

?4.部署 CoreDNS

?CoreDNS:可以為集群中的 service 資源創(chuàng)建一個(gè)域名與 IP 的對(duì)應(yīng)關(guān)系解析。

service發(fā)現(xiàn)是k8s中的一個(gè)重要機(jī)制,其基本功能為:在集群內(nèi)通過服務(wù)名對(duì)服務(wù)進(jìn)行訪問,即需要完成從服務(wù)名到ClusterIP的解析。

k8s主要有兩種service發(fā)現(xiàn)機(jī)制:環(huán)境變量和DNS。沒有DNS服務(wù)的時(shí)候,k8s會(huì)采用環(huán)境變量的形式,但一旦有多個(gè)service,環(huán)境變量會(huì)變復(fù)雜,為解決該問題,我們使用DNS服務(wù)。
?

//在所有 node 節(jié)點(diǎn)上操作
#上傳 coredns.tar 到 /opt 目錄中
cd /opt
docker load -i coredns.tar
?
?

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

?

//在 master01 節(jié)點(diǎn)上操作
#上傳 coredns.yaml 文件到 /opt/k8s 目錄中,部署 CoreDNS?
cd /opt/k8s
kubectl apply -f coredns.yaml
?
kubectl get pods -n kube-system?
?
#DNS 解析測(cè)試
kubectl run -it --rm dns-test --image=busybox:1.28.4 sh
?
/ # nslookup kubernetes

【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)

?

?

?

到了這里,關(guān)于【云原生】二進(jìn)制部署k8s集群(中)搭建node節(jié)點(diǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • K8s集群部署(二進(jìn)制安裝部署詳細(xì)手冊(cè))

    K8s集群部署(二進(jìn)制安裝部署詳細(xì)手冊(cè))

    ? ?一、簡介 K8s部署主要有兩種方式: 1、Kubeadm Kubeadm是一個(gè)K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 2、二進(jìn)制 ? 從github下載發(fā)行版的二進(jìn)制包,手動(dòng)部署每個(gè)組件,組成Kubernetes集群。 ?本文通過二進(jìn)制安裝部署的方式在centos7上搭建kubernetes集群

    2024年02月15日
    瀏覽(20)
  • k8s1.23.15集群二進(jìn)制部署

    k8s1.23.15集群二進(jìn)制部署

    一、前言 ? ? 二進(jìn)制部署1.23.15版本k8s集群,etcd集群部署與k8s集群節(jié)點(diǎn)復(fù)用,手動(dòng)頒發(fā)集群證書 ? ? 主機(jī)信息如下 主機(jī)名稱 ip地址 服務(wù) k8s-master01 10.1.60.125 docker、etcd、kube-apiserver、kube-schduler、kube-controller-manage、kubelet、kube-proxy k8s-node01 10.1.60.126 docker、etcd、kubelet、kube-proxy

    2024年03月13日
    瀏覽(23)
  • 二進(jìn)制搭建 Kubernetes與k8s集群搭建(一)

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

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

    2024年02月06日
    瀏覽(25)
  • 【云原生】K8S二進(jìn)制搭建三:高可用配置

    【云原生】K8S二進(jìn)制搭建三:高可用配置

    在所有 node 節(jié)點(diǎn)上操作 在 master01 節(jié)點(diǎn)上操作 初始化環(huán)境 初始化環(huán)境看這里 在 master01 節(jié)點(diǎn)上測(cè)試 儀表板是基于Web的Kubernetes用戶界面。您可以使用儀表板將容器化應(yīng)用程序部署到Kubernetes集群,對(duì)容器化應(yīng)用程序進(jìn)行故障排除,并管理集群本身及其伴隨資源。您可以使用儀表

    2024年02月14日
    瀏覽(35)
  • K8S二進(jìn)制部署詳解,一文教會(huì)你部署高可用K8S集群

    Pod網(wǎng)段: 10.0.0.0/16 Service網(wǎng)段: 10.255.0.0/16 集群角色 ip 主機(jī)名 安裝組件 控制節(jié)點(diǎn) 10.10.0.10 master01 apiserver、controller-manager、scheduler、etcd、docker、keepalived、nginx 控制節(jié)點(diǎn) 10.10.0.11 master02 apiserver、controller-manager、scheduler、etcd、docker、keepalived、nginx 控制節(jié)點(diǎn) 10.10.0.12 master03 apiser

    2024年04月28日
    瀏覽(29)
  • 二進(jìn)制搭建k8s集群 master和etcd

    etcd作為服務(wù)發(fā)現(xiàn)系統(tǒng),有以下的特點(diǎn): 簡單:安裝配置簡單,而且提供了HTTP API進(jìn)行交互,使用也很簡單。 安全:支持SSL證書驗(yàn)證。 快速:單實(shí)例支持每秒2k+讀操作。 可靠:采用raft算法,實(shí)現(xiàn)分布式系統(tǒng)數(shù)據(jù)的可用性和一致性。 etcd目前默認(rèn)使用2379端口提供HTTP API服務(wù),

    2024年02月12日
    瀏覽(21)
  • [kubernetes]二進(jìn)制部署k8s集群-基于containerd

    k8s從1.24版本開始不再直接支持docker,但可以自行調(diào)整相關(guān)配置,實(shí)現(xiàn)1.24版本后的k8s還能調(diào)用docker。其實(shí)docker自身也是調(diào)用containerd,與其k8s通過docker再調(diào)用containerd,不如k8s直接調(diào)用containerd,以減少性能損耗。 除了containerd,比較流行的容器運(yùn)行時(shí)還有podman,但是podman官方安裝

    2024年02月12日
    瀏覽(30)
  • k8s1.27.2版本二進(jìn)制高可用集群部署

    k8s1.27.2版本二進(jìn)制高可用集群部署

    說明:本次實(shí)驗(yàn)共有5臺(tái)主機(jī),3臺(tái)master節(jié)點(diǎn)同時(shí)又是worker,os128、os129、os130 節(jié)點(diǎn)主機(jī)容器運(yùn)行時(shí)用的containerd,worker131、worker132主機(jī)的用的docker 主機(jī)名 IP 組件 系統(tǒng) os128 192.168.177.128 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy、containerd CentOS7.9 os129 192.16

    2024年01月22日
    瀏覽(72)
  • 云原生Kubernetes:二進(jìn)制部署K8S單Master架構(gòu)(一)

    云原生Kubernetes:二進(jìn)制部署K8S單Master架構(gòu)(一)

    目錄 一、理論 1.K8S單Master架構(gòu) 2.??etcd 集群 3.CNI 4.Flannel網(wǎng)絡(luò) 5.K8S單Master架構(gòu)環(huán)境部署 6.部署 etcd 集群 7.部署 docker 引擎 8.flannel網(wǎng)絡(luò)配置 二、實(shí)驗(yàn) 1.二進(jìn)制部署K8S單Master架構(gòu) 2.?環(huán)境部署 3.部署 etcd 集群 4.部署 docker 引擎 5.flannel網(wǎng)絡(luò)配置 三、問題 1.etcd 報(bào)錯(cuò) 2.安裝etcd問題 3.系

    2024年02月10日
    瀏覽(89)
  • 云原生Kubernetes:二進(jìn)制部署K8S單Master架構(gòu)(二)

    云原生Kubernetes:二進(jìn)制部署K8S單Master架構(gòu)(二)

    目錄 ?一、理論 1.K8S單Master架構(gòu) 2.部署 master 組件 3.部署 Woker Node 組件 4.在master1節(jié)點(diǎn)上操作 5.在 node01 節(jié)點(diǎn)上操作 6.在 master01 節(jié)點(diǎn)上操作? 7.在 node01 節(jié)點(diǎn)上操作 8.node02 節(jié)點(diǎn)部署(方法一) 二、實(shí)驗(yàn) 1.環(huán)境 ?2.部署 master 組件 3.部署 Woker Node 組件 4.在master1節(jié)點(diǎn)上操作 5.在 nod

    2024年02月10日
    瀏覽(97)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包