部署k8s 1.28.9版本

? ?繼上篇通過vagrant與virtualBox實現虛擬機的安裝。筆者已經將原有的vmware版本的虛擬機卸載掉了。這個場景下,需要重新安裝k8s? 相關組件。由于之前寫的一篇文章本身也沒有截圖。只有命令。所以趁著現在。寫一篇,完整版帶截圖的步驟。現在行業這么卷。離職了讓我能好好的寫點東西。

描述:此篇文章只有具體的步驟,組件內部核心控件。以及具體使用方式。并不包含在這篇內容中。如果有需要。小伙伴兒們可以提出來。作為持續的內容更新也是不錯的。好了不喜歡看嘮叨的同學們。咱們直接開始。上述純屬無聊的廢話。


版本:V1.28.9 版本

部署方式:Kubeadm 【單master 多node部署】

下方?master節點 和node節點? 都要進行配置 。


? (1) 升級linux內核,由于低版本linux內核有可能引發一些不確定因素 所以筆者在此升級了下linux內核

#查詢當前linux內核
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg# 步驟依次執行即可
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgyum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpmyum --enablerepo="elrepo-kernel" -y install kernel-lt.x86_64grub2-set-default 0grub2-mkconfig -o /boot/grub2/grub.cfg#重新啟動
reboot  #啟動后  重新查詢linux內核是否變更
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

(2)關閉防火墻狀態。

#停止當前防火墻
systemctl  stop     firewalld# 重啟后也關閉防火墻 避免自動重啟
systemctl  disable  firewalld #檢查當前防火墻狀態
systemctl   status firewalld

(3)關閉掉swap分區

#關閉當前swap分區
sed  -i   's/.*swap.*/#&/'  /etc/fstab 
swapoff -a

(4)關閉掉 selinux

sed -i 's/enforcing/disabled/'  /etc/selinux/config
setenforce 0

(5)添加host? 請修改成自己的maste節點IP和workNode節點IP

echo "192.168.18.219 master \
192.168.18.220 node01
192.168.18.221 node02"  >> /etc/hosts

(6)添加hostname 同時讓hostname 生效

#替換成自己的主機名稱 也可以按照上述內容 master  node01  node02 配置
hostnamectl  set-hostname   主機名稱# 查詢當前hostname
hostname#使hstname生效
systemctl restart NetworkManager

(7)安裝時間同步插件 保證三臺機器時鐘都是同步的

yum install chrony -y
systemctl start chronyd && systemctl enable chronyd && chronyc sources
date

(8)添加路由轉發

# 內核路由轉發  以及網橋過濾
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
vm.swappiness=0
EOF

(9)使路由轉發生效

sysctl --system

(10)? 安裝ipset

# 安裝ipset
yum -y install ipset ipvsadm

(11)? 加載ipvs

# 加載
cat > /etc/sysconfig/modules/ipvs.modules << EOF
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

(12) 給ipvs 賦予權限

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack

(13)安裝docker 請直接按照步驟來

#如果 之前安裝過docker 可以按照此步驟先進行卸載操作 如果首次安裝 不需要第一步
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine#安裝 yum-utils
yum install -y yum-utilsyum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo#上述如果地址添加失敗可以通過下述地址下載
yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin#查看當前docker  版本
docker -v#開機自啟動 docker 
systemctl enable docker.service
systemctl enable containerd.service#啟動 docker 
systemctl  start docker  &&  systemctl  status docker 

(14)? 添加docker? 鏡像地址

cat > /etc/docker/daemon.json << EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://dockerhub.azk8s.cn",
"http://hub-mirror.c.163.com"
]
}
EOF

(15) 安裝wget 為了安裝 cri-docker cri-docker 因為k8s新版本是基于container.io實現的 所以需要

下載 cri-docker ,請注意 下述命令中的 $MAINPID? 執行過程中有可能會丟失。 請手動 補充到位置

#安裝wget 為了下載cri-docker 由于k8s  新版本是基于 container.io  所以可以通過cri-docker 適#配
yum  install wget  #下載 cri-docker 
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.8/cri-dockerd-0.3.8.amd64.tgz#解壓當前 tar包  默認下載當前目錄  
tar xf cri-dockerd-0.3.8.amd64.tgz#將解壓內容 移動到 /usr/bin
mv cri-dockerd/cri-dockerd  /usr/bin/#創建cri-docker.service 文件
cat > /usr/lib/systemd/system/cri-docker.service<<EOF
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/cri-dockerd --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 --container-runtime-endpoint fd:// 
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF#上述中的  $MAINPID   有可能會丟失 如果丟失 請執行如下代碼 添加上 $MAINPID   
vim  /usr/lib/systemd/system/cri-docker.service   

(16) 添加cri-docker.socket??

cat > /usr/lib/systemd/system/cri-docker.socket<<EOF
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker[Install]
WantedBy=sockets.target
EOF

(17)? 修改了 systemd 的相關配置 所以需要讓其生效

# 對cri-docker 的配置讓其生效
systemctl daemon-reload #開機自啟動  啟動cri-docker  同時查看狀態
systemctl enable cri-docker && systemctl start cri-docker && systemctl status cri-docker

(18)? 添加k8s鏡像地址

# 添加k8s鏡像源地址
cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
EOF

(19) 前期準備工作已經做好 那么 安裝 kubeadm? ?kubelet? ?kubectl 同時啟動kubelet 設置開機自啟動 同時查看狀態? 現在的kubelet還是啟動失敗的? 請不要慌張?

#安裝  kuebadm   kubelet   kubectl
yum install -y kubelet kubeadm kubectl#啟動kubelet 并設置開機自啟動
systemctl enable kubelet && systemctl start kubelet && systemctl status kubelet

(20)? 配置cgroup? 和docker 保持一致

# 配置 cgroup 驅動與docker一致
cp /etc/sysconfig/kubelet{,.bak}cat > /etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF#安裝自動補全 工具
yum install  -y bash-completion  

(21) 用戶bash目錄? 添加kubectl 變量

source /usr/share/bash-completion/bash_completionecho "source <(kubectl completion bash)" >> ~/.bashrcsource  ~/.bashrc  

(22) 查看 kubeadm 鏡像

查看鏡像倉庫是否有相關鏡像
kubeadm config images list --image-repository registry.aliyuncs.com/google_containers

(23)拉取相關鏡像????????????????

kubeadm config images pull  --image-repository registry.aliyuncs.com/google_containers \
--cri-socket=unix:///var/run/cri-dockerd.sock

?上述為 master節點 和node節點? 都要進行配置 下述? 將分開說明 master? 和? node 的配置


下方配置請注意? 一部分是master 需要配置的? 一部分是node需要配置的

Master配置


# master節點運行  啟動master節點相關組件及容器【master】
kubeadm init \
--apiserver-advertise-address 192.168.31.219 \
--kubernetes-version v1.28.11 \
--pod-network-cidr=10.244.0.0/16 \
--image-repository registry.aliyuncs.com/google_containers \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--ignore-preflight-errors=all#上述配置中的   
api-server-address 代表的是主節點的ip地址
kubernetes-version 代表的是k8s組件版本 
pod-network-cidr   代表內部的區分流量
image-repository    鏡像倉庫地址
cri-socket          指定cri-docker的 地址

(master)上述執行成功后 會提示執行相關命令

# 創建kubeconfig master啟動完成后也會提示此命令【master】
mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config

(master) 創建自有證書 生成內容 在node節點是有用的? 請一定要記住 下方已經標注出來了,一個是token? 一個是生成的 有效的sha256的值

# 創建相關kubeadm token 【master】生成的值 在node節點中是需要的請記住
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'# 使用我們自己生成的證書  在子節點進行join時需要token  以及sha【masert】
kubeadm token create --ttl 0  --print-join-command# 查看是否已經創建成功證書 在node節點join要用到 【master】

master? 下載網絡插件? 還記著前邊筆者說過的 kubelet還沒起來的問題嗎 ,當把cin插件下載完成后 kubelet就會恢復正常

修改相關配置 calico.yml文件中相關配置CALICO_IPV4POOL_CIDR 改成admin init中 ?--pod-network-cidr 參數相同,但是由于現在的dokerhub無法下載鏡像,通過阿里云下載相關鏡像還無法找到對應的版本的網絡代理插件。那么筆者喜歡讓大家白嫖。壓縮包會同步出來。這樣你們就不用科學上網去自己尋找了。如果按照筆者的配置就不需要修改上述的CALICO_IPV4POOL_CIDR。

請將所有tar? 包? 執行? docker load? ?添加到master? 鏡像中? 然后? ?通過kubectl? 執行

wget https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/calico.yam# 如果下載失敗  請把使用筆者給的安裝包的內容
kubectl  apply -f  calico.yamll

Node節點


將node節點添加到 master中去


#在node節點執行  加入到主節點
kubeadm join 192.168.31.219:6443  --token  juw32i.1cb4jrcr4fm8scvy  --discovery-token-ca-cert-hash sha256:5be9defe9be83e5b50b51490009b8bb8a22a7bf9b9d71c6176cca81581d98fba  --cri-socket=unix:///var/run/cri-dockerd.sock#解釋
token   是在主節點生成的  上述標黃的內容
sha256:  自己生成的值   也在上述標黃的內容中  

最終? 可以在master? 查看? ?節點狀態? 如果顯示ready 那么就是正常啟動的

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

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

相關文章

SpringBoot中常用的注解及其用法

1. 常用類注解 RestController和Controller是Spring中用于定義控制器的兩個類注解. 1.1 RestController RestController是一個組合類注解,是Controller和ResponseBody兩個注解的組合,在使 用 RestController 注解標記的類中&#xff0c;每個方法的返回值都會以 JSON 或 XML…

【Android安全】Ubuntu 下載、編譯 、刷入Android-8.1.0_r1

0. 環境準備 Ubuntu 16.04 LTS&#xff08;預留至少95GB磁盤空間&#xff0c;實測占94.2GB&#xff09; Pixel 2 XL 要買歐版的&#xff0c;不要美版的。 歐版能解鎖BootLoader、能刷機。 美版IMEI里一般帶“v”或者"version"&#xff0c;這樣不能解鎖BootLoader、…

網絡安全-網絡安全及其防護措施2

6.安全設計和日志 安全審計 安全審計是對系統和網絡活動進行檢查和記錄的過程&#xff0c;確保合規性和安全性。審計過程可以幫助發現潛在的安全漏洞和違規行為&#xff0c;并驗證系統配置和操作的正確性。 定期審計 定義&#xff1a;定期檢查系統和網絡的安全配置和活動記錄…

394. 字符串解碼 739. 每日溫度(LeetCode熱題100)

394. 字符串解碼 - 力扣&#xff08;LeetCode&#xff09; curr_str&#xff1a;遍歷整個字符串時 如果左邊有[&#xff0c;且無相應右括號和其匹配&#xff0c;那么curr_str就表示該[到當前位置的解碼字符串如果左邊的[]已經匹配&#xff0c;或者沒有[]&#xff0c;curr_siz…

找不到vcruntime140_1.dll 無法執行的相關解決方法,如何高效率修復vcruntime140_1.dll

當出現“找不到 vcruntime140_1.dll 無法執行”這類提示時&#xff0c;意味著你的系統中的 vcruntime140_1.dll 文件已經缺失或者損壞。為了恢復并正常啟動你的程序&#xff0c;你需要對這個 DLL 文件進行修復。接下來&#xff0c;我們將詳細介紹如何進行這一操作。 一.找不到v…

數學建模·層次分析法

層次分析法 LAF 定義 評價體系的優劣影響&#xff0c;計算評價指標的權重的一種方法 主觀性較強&#xff0c;現在一般不用 主要步驟 關鍵在于一致性檢驗和求權值 權重的計算 注意權重之和為1&#xff0c;需要歸一化 算數平均法 特征值法 矩陣的一致性檢驗 為什么要檢驗…

【C語言】原碼、反碼、補碼詳解 -《碼上有道 ! 》

目錄 原碼、反碼、補碼詳解及其在C語言中的應用一、原碼&#xff08;Sign-Magnitude&#xff09;1.1 定義與表示1.2 歷史來源與作用1.3 示例1.4 C語言示例1.5 代碼運行結果 二、反碼&#xff08;Ones Complement&#xff09;2.1 定義與表示2.2 歷史來源與作用2.3 示例2.4 C語言…

sentinel網關限流配置及使用

sentinel控制臺源碼&#xff1a;https://download.csdn.net/download/yixin605691235/89543923 sentinel控制臺jar包&#xff1a;https://download.csdn.net/download/yixin605691235/89543931 不同環境直接修改jar包中的application.yml文件中的nacos地址就可以了。 一、網關限…

【LeetCode 0169】【摩爾投票算法】主元素

Majority Element Given an array nums of size n, return the majority element. The majority element is the element that appears more than ?n / 2? times. You may assume that the majority element always exists in the array. Example 1: **Input:** nums [3…

大數據信用查詢有哪些問題值得注意呢?

隨著大數據技術的不斷發展&#xff0c;大數據信用報告成為一種新型的信用風險檢測工具&#xff0c;被很多的銀行和機構廣泛用于信用風險評估&#xff0c;那大數據信用查詢有哪些問題值得注意呢?本文就帶大家一起去了解一下&#xff0c;希望對你有一定的幫助。 大數據信用查詢這…

JsonCPP源碼分析——分配器和配置器

1、allocator.h文件 該文件定義了一個分配器模版&#xff0c;該文件主要使用了內存對齊控制、rebind機制(C 標準庫的分配器接口要求提供 rebind 機制&#xff0c;以支持不同類型的分配)、::operator new、std::addressof等技術。 內存對齊控制&#xff1a;之所以先保存當前內存…

《C++ 入門:第一個小程序》

《C 入門&#xff1a;第一個小程序》 在學習 C 的旅程中&#xff0c;編寫第一個小程序是一個令人興奮的時刻。它就像打開一扇通往新編程世界的大門&#xff0c;讓我們初步領略 C 的魅力。 C 是一種強大而靈活的編程語言&#xff0c;廣泛應用于各種領域&#xff0c;從系統編程…

python 方向梯度直方圖(HOG)算法 【附兩種實現方法并可視化】

目錄 一、概述1.1 算法定義1.2 實現過程二、方法1(skimage庫)2.1 代碼實現2.2 結果示例三、方法2(cv2庫)3.1 代碼實現3.2 結果示例四、結果對比?? 結果預覽 一、概述 1.1 算法定義 方向梯度直方圖(Histogram of Oriented Gradient,HOG):是應用在計算機視覺和圖像處…

Telegram Bot、小程序開發(三)Mini Apps小程序

文章目錄 一、Telegram Mini Apps小程序二、小程序啟動方式三、小程序開發小程序調試模式初始化小程序Keyboard Button Mini Apps 鍵盤按鈕小程序【依賴具體用戶信息場景,推薦】**Inline Button Mini Apps內聯按鈕小程序**initData 的自動傳遞使用內聯菜單時候哪些參數會默認傳…

LLM微調

文章目錄 一. 常見微調分類1.1 全量微調&#xff08;FFT&#xff1a;Full Fine-tuning&#xff09;1.2 參數高效微調(PEFT&#xff1a;Parameter-Efficient Fine-Tuning)1.3 指令微調&#xff08;IFT&#xff1a;Instructional Fine-tuning&#xff09;1.3.1 Hard prompt1.3.2 …

Docker存儲目錄問題,如何修改Docker默認存儲位置?(Docker存儲路徑、Docker存儲空間)etc/docker/daemon.json

文章目錄 如何更改docker默認存儲路徑&#xff1f;版本1&#xff08;沒測試&#xff09;版本2&#xff08;可行&#xff09;1. 停止 Docker 服務&#xff1a;2. 創建新的存儲目錄&#xff1a;3. 修改 Docker 配置文件&#xff1a;4. 移動現有的 Docker 數據&#xff1a;5. 重新…

Java-svg格式的oss圖片鏈接轉換為png格式圖片字節流

一、引入依賴 <!--svg轉其他格式依賴--> <dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-transcoder</artifactId><version>1.14</version> </dependency> <dependency><groupId&g…

什么樣的服務器是合乎直銷網站標準

現在社會的發展,有著越來越多的人想要利用互聯網來做直銷。做好直銷行業系統解決方案離不開好的服務器支持,服務器的的穩定性和速度是直接影響網站后期運作,可以看做是網站的根基。 做網站直銷選擇租用服務器需要注意的幾點要素 一些大的直銷互聯網公司如安利、雅芳、康寶萊、玫…

【人工智能】自然語言處理(NLP)的突破,關注NLP在機器翻譯、情感分析、聊天機器人等方面的最新研究成果和應用案例。

自然語言處理&#xff08;NLP&#xff09;作為人工智能的一個重要分支&#xff0c;近年來取得了顯著的突破&#xff0c;特別在機器翻譯、情感分析、聊天機器人等領域取得了顯著的研究成果和廣泛的應用。以下是對這些領域最新研究成果和應用案例的概述&#xff0c;并附帶相應的代…

域名解析記錄與服務器源IP的探索

在互聯網中&#xff0c;域名和IP地址是進行網絡通信的基礎。用戶通常通過域名來訪問網站或服務&#xff0c;而實際的數據交換則發生在IP地址之間。域名解析&#xff08;DNS解析&#xff09;是將易于記憶的域名轉換為計算機可識別的IP地址的過程。本文將探討如何通過域名解析記錄…