欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kubernetes 1.28.2集群安裝過程中的關(guān)鍵步驟詳解(最新推薦)

 更新時間:2025年03月07日 10:54:17   作者:明明跟你說過  
Kubernetes K8s是Google開源的容器編排平臺,最初由Borg項(xiàng)目發(fā)展而來,K8s 1.28版本引入了非正常節(jié)點(diǎn)關(guān)閉恢復(fù)、內(nèi)置Sidecar容器支持、Job優(yōu)化、Proxy改進(jìn)和調(diào)度框架優(yōu)化等功能,本文介紹Kubernetes 1.28.2集群安裝過程中的關(guān)鍵步驟,感興趣的朋友一起看看吧

一、引言

1、Kubernetes簡介

Kubernetes(通常簡稱為K8s)是一個開源的容器編排平臺,最初由Google開發(fā),并于2014年發(fā)布為開源項(xiàng)目。它提供了一種自動化容器化應(yīng)用程序部署、擴(kuò)展和管理的方法。

Borg 的誕生:
谷歌的工程師們在面對大規(guī)模、分布式、可擴(kuò)展應(yīng)用的挑戰(zhàn)時,創(chuàng)建了 Borg 系統(tǒng),用于管理和運(yùn)行谷歌的內(nèi)部服務(wù)和應(yīng)用。Borg 采用了容器化的思想,將應(yīng)用程序打包成容器并在集群中運(yùn)行。

Omega 的演進(jìn):
Borg 的經(jīng)驗(yàn)在谷歌內(nèi)部得到了積累和總結(jié)。在 Borg 的基礎(chǔ)上,谷歌發(fā)展出了 Omega 系統(tǒng),這是 Borg 的下一代版本,繼續(xù)探索分布式系統(tǒng)管理的更高級別的抽象。

Kubernetes 的誕生:
2014年,Google 將 Borg 的一部分經(jīng)驗(yàn)開源,推出了 Kubernetes 項(xiàng)目。Kubernetes 最初是由 Google、Red Hat、Microsoft 等公司共同推動的,旨在為云原生應(yīng)用提供一個開源的容器編排和管理平臺??梢哉f,k8s是站在Borg這個巨人的肩膀上而開發(fā)出的容器編排管理系統(tǒng)

推出后,Kubernetes 很快得到了開源社區(qū)的廣泛關(guān)注和參與。云服務(wù)提供商、軟件公司以及大量的開發(fā)者紛紛加入到 Kubernetes 的開發(fā)和維護(hù)中,形成了龐大的開源社區(qū)。

2、Kubernetes 1.28版本特性介紹

Kubernetes 1.28版本作為2023年的第二個主要版本更新,引入了一系列重要的新功能和改進(jìn)。

非正常節(jié)點(diǎn)關(guān)閉恢復(fù):

  • Kubernetes 1.28版本中,節(jié)點(diǎn)非體面關(guān)閉(non-graceful shutdown)特性達(dá)到GA階段,意味著kubelet能夠更加穩(wěn)定地檢測到節(jié)點(diǎn)即將關(guān)閉的事件,并確保在節(jié)點(diǎn)實(shí)際下線前正確、有序地終止節(jié)點(diǎn)上的Pod,從而避免數(shù)據(jù)丟失和資源占用問題。

內(nèi)置Sidecar容器支持:

  • 此版本增強(qiáng)了對Sidecar容器的內(nèi)置支持,包括更方便的配置管理、生命周期管理和資源隔離等方面,以更好地支持微服務(wù)架構(gòu)中的輔助容器。

Job優(yōu)化:

  • 對Kubernetes Job對象進(jìn)行了優(yōu)化,涉及到更快的完成狀態(tài)判定、更靈活的調(diào)度策略以及作業(yè)清理機(jī)制的改進(jìn)等。

Proxy改進(jìn):

  • Kubernetes代理組件(kube-proxy)的功能得到了增強(qiáng),涉及性能提升、資源利用率改進(jìn)或新增網(wǎng)絡(luò)策略特性等。

調(diào)度框架優(yōu)化:

  • 調(diào)度框架在Kubernetes 1.28版本中進(jìn)行了調(diào)整,減少了不必要的重試操作,從而提升了整體調(diào)度性能,這對于集群規(guī)模較大或者工作負(fù)載較為復(fù)雜的場景尤其重要。

3、安裝前的準(zhǔn)備工作

準(zhǔn)備至少2臺服務(wù)器,虛擬機(jī)或服務(wù)器都可以,資源配置如下

※ 安裝k8s至少需要2G或以上內(nèi)存

二、環(huán)境準(zhǔn)備

1、禁用防火墻和SELinux

在兩臺機(jī)器上都要執(zhí)行

關(guān)閉防火墻并禁止開機(jī)自啟動

[root@master ~]# systemctl stop firewalld && systemctl disable firewalld
[root@node ~]# systemctl stop firewalld && systemctl disable firewalld 

 關(guān)閉SELinux

[root@master ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@master ~]# setenforce 0
[root@master ~]# getenforce
Permissive
[root@node ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@node ~]# setenforce 0
[root@node ~]# getenforce
Permissive 

2、設(shè)置時間同步 

[root@master ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
[root@master ~]# date
Tue Mar 19 14:10:22 CST 2024
[root@node ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
[root@node ~]# date
Tue Mar 19 14:10:22 CST 2024 

3、關(guān)閉swap交換分區(qū) 

[root@master ~]# swapoff -a
[root@node ~]# swapoff -a 

4、修改hosts文件

[root@master ~]# vi /etc/hosts
# 添加如下兩行內(nèi)容
192.168.40.110 master
192.168.40.111 node
[root@node ~]# vi /etc/hosts
# 添加如下兩行內(nèi)容
192.168.40.110 master
192.168.40.111 node

5、修改機(jī)器內(nèi)核參數(shù)

[root@master ~]# modprobe br_netfilter
[root@master ~]# cat > /etc/sysctl.d/k8s.conf <<EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> EOF
[root@master ~]# sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
[root@node ~]# modprobe br_netfilter
[root@node ~]# cat > /etc/sysctl.d/k8s.conf <<EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> EOF
[root@node ~]# sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1 

三、安裝Docker與containerd

1、配置阿里repo源

[root@master ~]# yum install yum-utils device-mapper-persistent-data lvm2  -y
[root@master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@node ~]# yum install yum-utils device-mapper-persistent-data lvm2 -y 
[root@node ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、安裝container

[root@master ~]# yum install  containerd.io -y
 [root@node ~]# yum install  containerd.io -y

3、修改containerd配置文件

[root@master ~]# mkdir -p /etc/containerd
[root@master ~]# containerd config default > /etc/containerd/config.toml
[root@master ~]# vim /etc/containerd/config.toml
#將SystemdCgroup = false修改為SystemdCgroup = true
[root@node ~]# mkdir -p /etc/containerd
[root@node ~]# containerd config default > /etc/containerd/config.toml
[root@node ~]# vim /etc/containerd/config.toml
#將SystemdCgroup = false修改為SystemdCgroup = true

4、設(shè)置container開機(jī)自啟動

[root@master ~]# systemctl enable containerd  --now
[root@node ~]# systemctl enable containerd  --now 

5、設(shè)置服務(wù)的端點(diǎn)地址

[root@master ~]# cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF
[root@node ~]# cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF 

6、安裝docker

[root@master ~]# yum install  docker-ce  -y
[root@master ~]# systemctl enable docker --now
[root@node ~]# yum install  docker-ce  -y
[root@node ~]# systemctl enable docker --now

7、添加docker鏡像加速器

[root@master docker]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://ofcqsr1y.mirror.aliyuncs.com"]
> }
> EOF
[root@master docker]# sudo systemctl daemon-reload
[root@master docker]# sudo systemctl restart docker
[root@node docker]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://ofcqsr1y.mirror.aliyuncs.com"]
> }
> EOF
[root@node docker]# sudo systemctl daemon-reload
[root@node docker]# sudo systemctl restart docke  

四、安裝kubeadm、kubelet和kubectl

1、配置軟件源

[root@master ~]# vim /etc/yum.repos.d/kubernetes.repo
# 添加如下內(nèi)容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
[root@node ~]# vim /etc/yum.repos.d/kubernetes.repo
# 添加如下內(nèi)容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

2、安裝kubeadm、kubelet、kubectl

[root@master ~]# yum install kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2 -y
[root@node ~]# yum install kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2 -y 

3、設(shè)置kubelet開機(jī)自啟動

[root@master ~]# systemctl enable kubelet
 [root@node ~]# systemctl enable kubelet

五、初始化Master節(jié)點(diǎn)

1、上傳離線鏡像包

離線鏡像包我已經(jīng)放到個人主頁的資源中,大家可以自行下載

2、導(dǎo)入鏡像

[root@master ~]# ctr -n=k8s.io images import k8s-1-28.tar.gz
[root@master ~]# ctr -n=k8s.io images import k8s-1-28-etcd.tar.gz

3、設(shè)置容器運(yùn)行時

[root@master ~]# crictl config runtime-endpoint /run/containerd/containerd.sock

4、初始化Master節(jié)點(diǎn)

[root@master ~]# kubeadm init --kubernetes-version=1.28.2  --apiserver-advertise-address=192.168.40.110  --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.244.0.0/16
[root@master ~]#   mkdir -p $HOME/.kube
[root@master ~]#   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]#   sudo chown $(id -u):$(id -g) $HOME/.kube/config 

查看節(jié)點(diǎn)狀態(tài)

[root@master ~]# kubectl get node
NAME     STATUS     ROLES           AGE   VERSION
master   NotReady   control-plane   66s   v1.28.2 

六、添加Work節(jié)點(diǎn)

  1、設(shè)置容器運(yùn)行時

[root@node ~]# crictl config runtime-endpoint /run/containerd/containerd.sock

2、導(dǎo)入鏡像

[root@node ~]# ctr -n=k8s.io images import k8s-1-28-etcd.tar.gz
[root@node ~]# ctr -n=k8s.io images import k8s-1-28.tar.gz 

3、將Work節(jié)點(diǎn)加入到集群

在Master節(jié)點(diǎn)上生成token

[root@master ~]# kubeadm token create --print-join-command

將生成的密鑰考到node節(jié)點(diǎn)執(zhí)行

[root@node ~]# kubeadm join 192.168.40.110:6443 --token 8zx14z.br9wctj9shxb08sq --discovery-token-ca-cert-hash sha256:6559345665c6beb70a9da42c2de6b85fc41f61d3dc3c527be3f7cc4629c503ab 

4、查看集群狀態(tài) 

[root@master ~]# kubectl get node
NAME     STATUS     ROLES           AGE   VERSION
master   NotReady   control-plane   10m   v1.28.2
node     NotReady   <none>          5s    v1.28.2

5、為Work節(jié)點(diǎn)設(shè)置標(biāo)簽

 [root@master ~]# kubectl label nodes node node-role.kubernetes.io/work=work
#再次查看
[root@master ~]# kubectl get node
NAME     STATUS     ROLES           AGE   VERSION
master   NotReady   control-plane   10m   v1.28.2
node     NotReady    work                 5s    v1.28.2

七、安裝網(wǎng)絡(luò)插件calico

1、calico介紹

  • Calico是一個開源的網(wǎng)絡(luò)和網(wǎng)絡(luò)安全解決方案,專為容器化環(huán)境設(shè)計(jì),旨在提供網(wǎng)絡(luò)連接和安全策略管理功能。它基于BGP協(xié)議,實(shí)現(xiàn)了一個純?nèi)龑泳W(wǎng)絡(luò)方案,能夠與Kubernetes、AWS、OpenStack等云平臺良好地集成。
  • Calico的核心功能包括網(wǎng)絡(luò)連接、網(wǎng)絡(luò)策略和安全性。通過使用BGP路由協(xié)議,Calico能夠在所有節(jié)點(diǎn)上通過Linux Kernel實(shí)現(xiàn)高效的vRouter進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。每個vRouter都會將在本節(jié)點(diǎn)上運(yùn)行的容器的路由信息廣播到整個Calico網(wǎng)絡(luò),并自動設(shè)置到達(dá)其他節(jié)點(diǎn)的路由轉(zhuǎn)發(fā)規(guī)則。這種設(shè)計(jì)確保了所有容器之間的數(shù)據(jù)流量都是通過IP路由的方式完成互聯(lián)互通的。

2、安裝calico

[root@master ~]# curl -L -O https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml 
[root@master ~]# kubectl  apply -f calico.yaml

3、查看Pod狀態(tài)

[root@master ~]# kubectl get pod -A 
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-658d97c59c-fbrgn   1/1     Running   0          5m31s
kube-system   calico-node-qd6v2                          1/1     Running   0          5m31s
kube-system   calico-node-s9khc                          1/1     Running   0          5m31s
kube-system   coredns-66f779496c-l6nqx                   1/1     Running   0          19m
kube-system   coredns-66f779496c-n7jn6                   1/1     Running   0          19m
kube-system   etcd-master                                1/1     Running   0          19m
kube-system   kube-apiserver-master                      1/1     Running   0          19m
kube-system   kube-controller-manager-master             1/1     Running   5          19m
kube-system   kube-proxy-7wbhh                           1/1     Running   0          9m15s
kube-system   kube-proxy-bb47r                           1/1     Running   0          19m
kube-system   kube-scheduler-master                      1/1     Running   5          19m

八、總結(jié)

  • 環(huán)境準(zhǔn)備:首先,需要確保安裝環(huán)境的準(zhǔn)備充分。這包括選擇合適的操作系統(tǒng)(如Linux),確保硬件資源(如CPU、內(nèi)存、存儲)滿足Kubernetes的最低要求,以及配置好網(wǎng)絡(luò)環(huán)境,如網(wǎng)絡(luò)插件的選擇和配置。
  • 軟件依賴安裝:安裝Kubernetes之前,需要安裝一些必要的軟件依賴,如Docker或其他容器運(yùn)行時(如Containerd)、kubectl命令行工具等。這些工具是Kubernetes正常運(yùn)行的基礎(chǔ)。
  • 集群初始化:使用kubeadm進(jìn)行集群初始化是Kubernetes安裝的關(guān)鍵步驟。在初始化過程中,需要配置集群的一些基本參數(shù),如API服務(wù)器的地址、網(wǎng)絡(luò)插件的選擇等。同時,還需要確保kubeadm能夠成功地在各個節(jié)點(diǎn)上部署和啟動必要的組件。
  • 節(jié)點(diǎn)加入:初始化完成后,需要將其他節(jié)點(diǎn)加入到集群中。涉及到在各個節(jié)點(diǎn)上安裝必要的軟件,并使用kubeadm命令將節(jié)點(diǎn)加入到集群中。在節(jié)點(diǎn)加入過程中,需要確保節(jié)點(diǎn)的配置與集群一致,并且能夠與其他節(jié)點(diǎn)正常通信。
  • 網(wǎng)絡(luò)配置:Kubernetes集群中的網(wǎng)絡(luò)配置是一個重要的環(huán)節(jié)。需要選擇合適的網(wǎng)絡(luò)插件(如Calico),并正確配置相關(guān)參數(shù),以確保Pod之間的網(wǎng)絡(luò)互通以及服務(wù)的正常訪問。

到此這篇關(guān)于Kubernetes 1.28.2集群安裝過程中的關(guān)鍵步驟詳解(最新推薦)的文章就介紹到這了,更多相關(guān)Kubernetes 集群安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論