基于Kubernetes v1.24.0的集群搭建(二)

上一篇文章主要是介紹了,每臺虛擬機的環境配置。接下來我們開始有關K8S的相關部署。

另外補充一下上一篇文章中的K8S的changelog鏈接:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md

1 配置yum源

所有節點都需要執行此操作

curl?-o?/etc/yum.repos.d/CentOS-Base.repo?https://mirrors.aliyun.com/repo/Centos-7.repo
6e77796d33d0e18ca404854bdbfe599e.png
wget?-O?/etc/yum.repos.d/epel.repo?http://mirrors.aliyun.com/repo/epel-7.repo
ea043c6fda7e7422153d62258ea1130c.png
yum?clean?all
e077152dfce2547e793b4e9638196955.png
yum?makecache
3b38a08b488d91c6adc9a6cda2129c5f.png

2 br_netfilter和ip_conntrack模塊配置

  • 所有節點都需要執行此操作

  • 加載 br_netfilter 模塊以啟用內核 ipv4 轉發,1.20+強依賴該模塊

  • ip_conntrack 模塊來記錄iptables 網絡包的狀態,并把每條記錄保存到table 里

modprobe?br_netfilter
modprobe?ip_conntrack

這里為了防止bridge-nf-call-ip6tables和bridge-nf-call-iptables無法啟動,需要配置br_netfilter開機自動啟動。

  1. 新建 /etc/rc.sysinit 文件

cat?>>/etc/rc.sysinit<<EOF
#!/bin/bash
for?file?in?/etc/sysconfig/modules/*.modules?;?do
[?-x?$file?]?&&?$file
done
EOF
97c85b54dd7e8425caecb99585750298.png
  1. 新建br_netfilter.modules和ip_conntrack.modules,再執行chmod?755來增加權限

echo?"modprobe?br_netfilter"?>/etc/sysconfig/modules/br_netfilter.modules
echo?"modprobe?ip_conntrack"?>/etc/sysconfig/modules/ip_conntrack.modules
c75f6aaf5dae332c106cec8d5c83750a.png

3 配置內核轉發及網橋過濾

添加網橋過濾及內核轉發配置文件

cat?<<EOF?>/etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables?=?1
net.bridge.bridge-nf-call-iptables?=?1
net.ipv4.ip_forward?=?1
vm.swappiness=0
EOF
02bf51d42b5457e1404876552efc1655.png

net.bridge.bridge-nf-call-ip6tables:是否在 ip6tables 鏈中過濾 IPv6 包
net.bridge.bridge-nf-call-iptables:是否在 iptables 鏈中過濾 IPv4 包

執行如下命令,使配置生效

$?sysctl?-p?/etc/sysctl.d/k8s.conf

4 安裝ipset及ipvs

所有主機都需要操作

4.1 安裝ipset

ipset是iptables的擴展,它允許你創建匹配整個地址集合的規則。而不像普通的iptables鏈只能單IP匹配, ip集合存儲在帶索引的數據結構中,這種結構即時集合比較大也可以進行高效的查找,除了一些常用的情況,比如阻止一些危險主機訪問本機,從而減少系統資源占用或網絡擁塞,IPsets也具備一些新防火墻設計方法,并簡化了配置。

yum?install?ipset?-y
cebe42e878185b82c7c6ffa0a114d605.png

4.2 安裝ipvs

IPVS (IP Virtual Server)是基于Netfilter的、作為linux內核的一部分實現傳輸層負載均衡的技術。

IPVS集成在LVS(Linux Virtual Server)中,它在主機中運行,并在真實服務器集群前充當負載均衡器。IPVS可以將對TCP/UDP服務的請求轉發給后端的真實服務器,因此IPVS天然支持Kubernetes Service。

隨著kubernetes使用量的增長,其資源的可擴展性變得越來越重要。特別是對于使用kubernetes運行大型工作負載的開發人員或者公司來說,service的可擴展性至關重要。

kube-proxy是為service構建路由規則的模塊,之前依賴iptables來實現主要service類型的支持,比如(ClusterIP和NodePort)。但是iptables很難支持上萬級的service,因為iptables純粹是為防火墻而設計的,并且底層數據結構是內核規則的列表。

kubernetes早在1.6版本就已經有能力支持5000多節點,這樣基于iptables的kube-proxy就成為集群擴容到5000節點的瓶頸。舉例來說,如果在一個5000節點的集群,我們創建2000個service,并且每個service有10個pod,那么我們就會在每個節點上有至少20000條iptables規則,這會導致內核非常繁忙。

基于IPVS的集群內負載均衡就可以完美地解決這個問題。IPVS是專門為負載均衡設計的,并且底層使用哈希表這種非常高效的數據結構,幾乎可以允許無限擴容。

cat?>?/etc/sysconfig/modules/ipvs.modules?<<EOF
#!/bin/bash
modprobe?--?ip_vs
modprobe?--?ip_vs_rr
modprobe?--?ip_vs_wrr
modprobe?--?ip_vs_sh
modprobe?--?nf_conntrack
EOF
chmod?755?/etc/sysconfig/modules/ipvs.modules?&&?bash?/etc/sysconfig/modules/ipvs.modules?&&?lsmod?|?grep?-e?ip_vs?-e?nf_conntrack
6fbe7e88056692cc2fb4f713caa6db53.png

4.3 安裝ipvsadm

為了便于查看ipvs的代理規則,最好安裝一下管理工具ipvsadm。

yum?install?-y?ipset?ipvsadm
40ef02614c53a7aa3e134b79f1232dd2.png

5 containerd

5.1 安裝containerd

containerd-{version}-linux-amd64.tar.gz 只包含containerd
cri-containerd-cni-{version}-linux-amd64.tar.gz 里面包含了systemd配置文件,containerd以及cni、runc等相關工具包,接下來我們將使用本包進行安裝

打開github containerd releases,查看最新包,這里的最新版本是1.6.6

04b31c5ff176c8fc15b198e5bbb915a7.png

但是打開containerd.io,卻發現最新版本是1.6.4

bd06cecec752a7959589ee4cb0bd8593.png

后面我在下載1.6.6版本的時候,老是報Connection refused

d05f8ee6f45d1aab9c2dcd46a0650f83.png

但是下載1.6.4的時候,卻十分的順利,不知道是為什么,但是并不影響我們的部署,所以接下來我們直接使用1.6.4.

wget?https://github.com/containerd/containerd/releases/download/v1.6.4/cri-containerd-cni-1.6.4-linux-amd64.tar.gz
5930500e32b81fc3d435f264cdd4885e.png

然后我們把壓縮包解壓到系統的根目錄中

tar?zxvf?cri-containerd-cni-1.6.4-linux-amd64.tar.gz?-C?/
d090d14b5cbfa3c2d15813e4515450ad.png

5.2 配置containerd

mkdir?-p?/etc/containerd
containerd?config?default?>?/etc/containerd/config.toml
830bf4b7f73d035dcf798005e202c462.png

設置容器的cgroup驅動為systemd

61fc95e48274389fcebeae46872a3c24.png

替換默認pause鏡像地址

31c5a3048e8cf6193266f047d2a5aa0b.png

設置開機啟動

systemctl?enable?containerd?--now
885b4b3d8e01b02f6e5977acb40c8944.png

測試安裝結果

crictl?version
c2a1da12ffd1a07064334d37d49bdbfc.png

參考鏈接

http://www.manongjc.com/detail/25-lioggelnywerjyf.html
https://www.kubernetes.org.cn/1904.html
https://www.toutiao.com/article/7105957860210819623/
https://i4t.com/5451.html
https://blog.frognew.com/2022/05/kubeadm-install-kubernetes-1.24.html
https://learn.lianglianglee.com/%E4%B8%93%E6%A0%8F/Kubernetes%20%E5%AE%9E%E8%B7%B5%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/07%20%E5%AE%B9%E5%99%A8%E5%BC%95%E6%93%8E%20containerd%20%E8%90%BD%E5%9C%B0%E5%AE%9E%E8%B7%B5.md

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

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

相關文章

[轉]Python 獲取Windows管理員權限

最近在寫一個可以自動更換 hosts 的 python 腳本&#xff0c;但是操作 hosts 需要管理員權限 &#xff0c;所以就想著要怎么獲取。 總結了一下&#xff0c;有三種方法可以獲取&#xff0c;下面分別介紹一下。 1. 以管理員運行 cmd 這個方法很簡單&#xff0c;也無需多說&#x…

JavaScript中的一些特殊用法(一)

為什么80%的碼農都做不了架構師&#xff1f;>>> 1. 不使用script自閉合標簽 script中使用自閉合標簽&#xff0c;雖然他在XHTML中合法&#xff0c;但是不符合HTML規范&#xff0c;而且得不到某些瀏覽器的正確解析。我曾經就在引入EXT時使用此方式&#xff0c;導致無…

SPICE簡史

如今每一天都有不知其數的半導體芯片設計公司與設計驗證工程師&#xff0c;在用著電路仿真軟件SPICE。SPICE廣泛應用在仿真模擬電路&#xff08;例如運放Op Amp&#xff0c;能隙基準穩壓電源Bandgap Reference&#xff0c;數模/模數轉換 AD/DA等&#xff09;&#xff0c;混合信…

【GlobalMapper精品教程】003:影像裁剪、批量影像分幅案例詳解

本文以案例的形式&#xff0c;講解Globalmapper中進行影像矩形框裁剪&#xff0c;矢量范圍裁剪&#xff0c;標準圖幅批量分幅的方法&#xff0c;配套實驗數據為數據包中的data003.rar。訂閱專欄后私信作者&#xff0c;獲取中文安裝包及配套實驗數據包&#xff0c;便于同步學習。…

基于Kubernetes v1.24.0的集群搭建(三)

1 使用kubeadm部署Kubernetes 如無特殊說明&#xff0c;以下操作可以在所有節點上進行。1.1 首先我們需要配置一下阿里源cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] nameKubernetes baseurlhttp://mirrors.aliyun.com/kubernetes/yum/repos/kubernet…

C++獲取本機的ip地址程序

C獲取本機的ip地址程序 #include <WinSock2.h> #pragma comment(lib,"ws2_32") //鏈接到ws2_32動態鏈接庫class CInitSock { public:CInitSock(BYTE minorVer 2,BYTE majorVer 2){WSADATA wsaData;WORD VersionRequset;VersionRequset MAKEWORD(mino…

BAT批處理代碼快速打開注冊表并定位到指定目錄

主要代碼&#xff1a; echo off echo %1 copy %~nx0 c:\windows\system32 if "%1" NEQ "" (set regPath%1) else (set /p regPath輸入打開的注冊表路徑:) :trimRight if "%regPath:~-1%""\" set "regPath%regPath:~0,-1%" …

Elasticsearch的Groovy Script自定義評分檢索

需求&#xff1a;以索引中的boostapp列作為評分的基礎分值&#xff0c;同時根據carpublishtime&#xff08;數據的刷新時間字段&#xff09;按時間進行衰減。 基于Groovy腳本實現。 1、query腳本方式&#xff1a; {"fields": ["boost","ucarid",…

stm32串口通訊問題

stm32串口通訊問題 在串口試驗中&#xff0c;串口通訊不正常&#xff0c;則可能會出現以下問題&#xff1a; 1. 配置完成后&#xff0c;串口沒有任何消息打印。 原因&#xff1a;1&#xff0c;端口配置有問題&#xff0c;需要重新檢查I/O口的配置 2&#xff0c;接線有問題&…

中國元宇宙白皮書

PS&#xff1a;PDF目錄&#xff08;書簽&#xff09;是為便于閱讀&#xff0c;重新整理過的。 2022《中國元宇宙白皮書》-互聯網文檔類資源-CSDN下載1月26日&#xff0c;2022《中國元宇宙白皮書》在北京中關村正式全網發布。該白皮書由國科創新研究院首席科學家更多下載資源、學…

【GlobalMapper精品教程】002:GlobalMapper中文版安裝后的基本設置

本文講述安裝globalmapper后的一些簡單基本設置&#xff08;持續更新&#xff09;&#xff0c;為后續深入學習軟件打下基礎。訂閱專欄后私信作者&#xff0c;獲取中文安裝包及配套實驗數據包。 文章目錄1. 工具條的顯示與關閉2. 面積單位設置3. 選擇所選面要素的邊框4. 二三維聯…

SaltStack入門篇之遠程執行和配置管理

一、SaltStack概述 Salt&#xff0c;,一種全新的基礎設施管理方式&#xff0c;部署輕松&#xff0c;在幾分鐘內可運行起來&#xff0c;擴展性好&#xff0c;很容易管理上萬臺服務器&#xff0c;速度夠快&#xff0c;服務器之間秒級通訊。 salt底層采用動態的連接總線, 使其可以…

ArgoCD 用戶管理、RBAC 控制、腳本登錄、App 同步

命令行登錄參考&#xff1a;argocd 登錄登出[1]登錄&#xff1a;echo y | argocd login argocd-server.argocd.svc.cluster.local --password argoadmin.smallsoup --username admin登出&#xff1a;argocd logout argocd-server.argocd.svc.cluster.local創建用戶、授權創建用…

敏捷需要重構嗎?不需要嗎?

在傳統的Scrum中&#xff0c;Sprint的長度為一個月&#xff0c;現在一般時間更短。這意味著團隊就得在項目剛開始的兩周或者一個月內交付完成的軟件。軟件來自于產品負責人的backlog。它必須由特征組成。要正確的做到Scrum&#xff0c;我們不能做基礎架構之類的東西&#xff0c…

【GlobalMapper精品教程】005:影像拼接與裁切(分幅)作業案例教程

本文講述Globalmapper影像拼接與裁剪案例教程。 文章目錄 一、影像的拼接(1)針對少量影像的拼接(2)針對大量影像的拼接二、影像的裁剪一、影像的拼接 (1)針對少量影像的拼接 如果影像數量比較小,可以通過加載→導出的方式進行拼接。 如下圖所示,案例數據(配套實驗數…

元宇宙行業深度研究報告:為什么元宇宙是下一代互聯網?

目錄 1、什么是元宇宙&#xff1f;為什么元宇宙是下一代互聯網 1.1、 元宇宙&#xff1a;下一代沉浸式互聯網 1.1.1、超越虛擬與現實的科幻暢想&#xff1a;元宇宙概念來源 1.1.2、新技術由點突破連接成面&#xff0c;移動互聯網繼承者的孕育 1.1.3、元宇宙的五大要素&…

細節總結(一)

self.XXX與_XXX的區別 通過self.XXX得到的數據相當于調用get函數取值,等價于[self XXX];而通過_XXX獲取的是自己的實例變量,直接對變量進行操作,并未調用get函數。所以,通過懶加載方式初始化的變量只能通過self.XXX調用,否則可能會存在未初始化的問題。self.xxx是對屬性的訪問;…

redis 安裝錯誤 jemalloc.h: No such file or directory

為什么80%的碼農都做不了架構師&#xff1f;>>> 錯誤描述 [rootmysql-rtb-slave redis-4.0.1]# make && make install cd src && make all make[1]: Entering directory /usr/local/src/redis-4.0.1/srcCC Makefile.dep make[1]: Leaving director…

OAuth,JWT ,OIDC你們搞得我好亂啊

hi&#xff0c;這里是桑小榆&#xff0c;這次分享的不是生活文&#xff0c;而是技術文。基于OAuth2.0協議的授權認證&#xff0c;初次接觸授權認證知識的時候&#xff0c;出現了不少熱門名詞&#xff0c;“OAuth”&#xff0c;“JWT”&#xff0c;“OIDC”&#xff0c;這簡直讓…

MyEclipse快捷鍵大全

存盤 Ctrls(肯定知道) 注釋代碼 Ctrl/ 取消注釋 Ctrl\(Eclipse3已經都合并到Ctrl/了) 代碼輔助 Alt/ 快速修復 Ctrl1 代碼格式化 CtrlShiftf 整理導入 CtrlShifto 切換窗口 Ctrlf6 <可改為ctrltab方便> ctrlshiftM 導入未引用的包 ctrlw 關閉單個窗口 F3 跳轉到類、變量的…