Containerd+Kubernetes搭建k8s集群

虛擬機環境設置,如果不是虛擬機可以忽略不看

1、安裝配置containerd

1.1 添加 Kubernetes 官方倉庫

安裝cri-tools的時候需要用到

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubemetes/yum/doc/rpm-package-key.gpg
EOF

1.2 安裝cri-tools、containerd

yum -y install containerd.io-1.6.33 cri-tools 

如果報:

在這里插入圖片描述
就更換yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

如果報:

在這里插入圖片描述
就更換docker源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 設置containerd鏡像加速

#生成containerd的配置文件
containerd config default > /etc/containerd/config.toml
#編輯配置文件config.toml
vi /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".registry.mirrors] 行下添加內容

[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint=["https://dockerproxy.com", "https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn","https://registry-1.docker.io", "https://hbv0b596.mirror.aliyuncs.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]endpoint=["https://dockerproxy.com", "https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn","https://hbv0b596.mirror.aliyuncs.com", "https://k8s.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]

1.4 啟動并設置開機自啟

systemctl start containerd
systemctl enable containerd

2、安裝容器工具

2.1 下載cni-plugins

下載完之后丟到Linux中

2.2 解壓并安裝

mkdir -p /opt/cni/bin/  
tar -zxvf cni-plugins-linux-amd64-v1.2.0.tgz -C /opt/cni/bin/

3、搭建kubernetes集群

3.1 安裝配置kubelet、kubeadm、kubectl

yum install -y kubelet-1.27.6 kubeadm-1.27.6 kubectl-1.27.6

3.2 kubelet啟動并設置開機自啟

systemctl start kubelet
systemctl enable kubelet

3.3 初始集群master節點

kubeadm init \
--apiserver-advertise-address=10.0.2.5 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.27.6 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16

3.3.1 可能遇見錯誤 1:/proc/sys/net/bridge/bridge-nf-call-iptables 不存在

  • 原因:
    Kubernetes 要求啟用 bridge-nf-call-iptables 以實現容器網絡橋接流量通過 iptables 規則(CNI 插件如 Flannel/Calico 依賴此功能)。

  • 解決方法:
    1、加載內核模塊并設置參數:

    # 加載 br_netfilter 內核模塊 
    sudo modprobe br_netfilter  
    # 臨時生效 
    echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-iptables  
    

    2、持久化配置(防止重啟失效):

    sudo tee /etc/modules-load.d/br_netfilter.conf  <<EOF 
    br_netfilter 
    EOF 
    sudo tee /etc/sysctl.d/k8s.conf  <<EOF 
    net.bridge.bridge-nf-call-iptables  = 1 
    EOF 
    # 重新加載配置
    sudo sysctl --system  
    

3.3.2 可能遇見錯誤 2:/proc/sys/net/ipv4/ip_forward 未設置為 1

  • 原因:
    Kubernetes 要求啟用 IP 轉發(ip_forward=1)以支持 Pod 跨節點通信。

  • 解決方法:
    1、臨時啟用(立即生效):

    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 
    

    2、持久化配置:

    sudo tee -a /etc/sysctl.d/k8s.conf  <<EOF 
    net.ipv4.ip_forward  = 1 
    EOF 
    sudo sysctl --system 
    

3.4 根據返回的結果執行對應的命令

在這里插入圖片描述

3.4.1 本地執行代碼

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.4.2 安裝Calico網絡

3.4.2.1、安裝 Tigera 操作符和自定義資源定義
#由于 CRD 包很大,kubectl apply可能會超出請求限制。請改用kubectl create或kubectl replace。
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/tigera-operator.yaml
3.4.2.2、通過創建必要的自定義資源來安裝 Calico

1、下載custom-resources.yaml

2、修改pod網段改為我們初始化集群時候設置的10.244.0.0/16
在這里插入圖片描述
3、安裝 Calico

kubectl create -f custom-resources.yaml

4、確定所有的pod都有運行
在這里插入圖片描述

3.4.3 其他的node節點加入集群

kubeadm join 10.0.2.5:6443 --token p9rnu4.7zjncoc2q7abf3st --discovery-token-ca-cert-hash sha256:2c2aba213ad44e2e8f951add165d72629d4807f2d59b7de2bb9c102c660f0f17

由于創建需要時間比較長可以運行watch kubectl get pod -n kube-system -o wide監控創建結果

3.4.4 查看是否加入成功

kubectl get nodes

在這里插入圖片描述

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

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

相關文章

應用待機分組管控是啥

1. 應用待機群組是啥&#xff1f; Android 9 引入了一個新功能&#xff0c;叫應用待機群組。簡單來說&#xff0c;就是根據你最近使用應用的頻率和時間&#xff0c;系統會把應用分成不同的“群組”。每個群組的應用能用的系統資源不一樣&#xff0c;比如后臺任務、鬧鐘、網絡請…

C/C++后端開發面經

字節跳動 客戶端開發 實習 一面(50min) 自我介紹是否愿意轉語言,是否只愿意搞后端選一個項目來詳細談談HTTP和HTTPS有什么區別?談一下HTTPS加密的具體過程&#xff1a; 非對稱加密 對稱加密 證書認證的方式 非對稱加密是為了保證對稱密鑰的安全性。 對稱…

【第十三屆“泰迪杯”數據挖掘挑戰賽】【2025泰迪杯】A題解題全流程(持續更新)

【第十三屆“泰迪杯”數據挖掘挑戰賽】【2025泰迪杯】A題解題全流程-思路&#xff08;持續更新&#xff09; 寫在前面&#xff1a; 1、A題、C題將會持續更新&#xff0c;陸續更新發布文章 2、賽題交流咨詢Q群&#xff1a;1037590285 3、全家桶依舊包含&#xff1a; 代碼、…

如何讓 history 記錄命令執行時間?Linux/macOS 終端時間戳設置指南

引言:你真的會用 history 嗎? 有沒有遇到過這樣的情況:你想回顧某個重要命令的執行記錄,卻發現 history 只列出了命令序號和內容,根本沒有時間戳?這在運維排查、故障分析、甚至審計時都會帶來極大的不便。 想象一下,你在服務器上誤刪了某個文件,但不知道具體是幾點執…

Redis緩存異常場景深度解析:穿透、擊穿、雪崩及終極解決方案

一、引言 在高并發系統中&#xff0c;緩存承擔著流量洪峰的削峰填谷作用。然而當緩存層出現異常時&#xff0c;可能引發數據庫級聯崩潰&#xff0c;造成系統癱瘓。本文將深入剖析緩存穿透、緩存擊穿、緩存雪崩三大典型問題&#xff0c;并提供企業級解決方案。文章包含7種防御策…

Scala 之 正則

regex 函數提取 import scala.util.matching.Regex// 輸入表達式 val expression "[a#0, round(a#0, 0) AS round(a, 0)#1, abs(a#0) AS abs(a)#2, len(cast(a#0 as string)) AS len(a)#3]"// 定義一個正則表達式來提取函數名稱 val functionPattern: Regex &quo…

CI/CD-Jenkins安裝與應用

CI/CD-Jenkins安裝與應用 Docker安裝Jenkins docker-compose.yaml version: "3.8" # # 自定義網絡配置 # networks:cicd:driver: bridgeservices:jenkins:# 盡量使用新版本的Jenkins, 低版本的Jenkins的有些插件使用不了# jenkins/jenkins:lts-jdk17是長期支持版…

驗證Linux多進程時間片切換的程序

?? 一、軟件需求 在同時運行多個CPU密集型進程時&#xff0c;需采集以下統計信息&#xff1a; 當前運行在邏輯CPU上的進程ID每個進程的運行進度百分比 實驗程序設計要求&#xff1a; 1. 命令行參數 參數說明示例值n并發進程數量3total總運行時長&#xff08;毫秒&…

IvorySQL:兼容Oracle數據庫的開源PostgreSQL

今天給大家介紹一款基于 PostgreSQL 開發、兼容 Oracle 數據庫的國產開源關系型數據庫管理系統&#xff1a;IvorySQL。 IvorySQL 由商瀚高軟件提供支持&#xff0c;主要的功能特性包括&#xff1a; 完全兼容 PostgreSQL&#xff1a;IvorySQL 基于 PostgreSQL 內核開發&#xf…

樹莓派超全系列文檔--(13)如何使用raspi-config工具其二

如何使用raspi-config工具其二 raspi-configPerformance optionsOverclockGPU memoryOverlay file systemFan Localisation optionsLocaleTime zoneKeyboardWLAN country Advanced optionsExpand filesystemNetwork interface namesNetwork proxy settingsBoot orderBootloader…

QT音樂播放器(1):數據庫保存歌曲

實現功能&#xff1a;用數據庫保存本地導入和在線搜索的歌曲記錄 目錄 一. 保存本地添加的歌曲 1. 使用QSettings &#xff08;1&#xff09;在構造函數中&#xff0c;創建對象。 &#xff08;2&#xff09;在導入音樂槽函數中&#xff0c;保存新添加的文件路徑&#xff0c…

自動化發布工具CI/CD實踐Jenkins常用工具和插件的使用

1、安裝常用工具 名稱版本備注jdkjava8代碼打包所需git1.8.3.1maven3.6.3注意配置私服內容nvm0.39.3多Node.js環境管理工具Node.jsv14.18.0 / v16.17.1包管理工具yarn1.22.15包管理工具 1.1 安裝jdk Jenkins 需要使用java11 及以上&#xff0c;但是代碼打包依賴jdk8&#xff…

shared_ptr和 weak_ptr的詳細介紹

關于 shared_ptr 和 weak_ptr 的詳細介紹及使用示例&#xff1a; 1. shared_ptr&#xff08;共享所有權智能指針&#xff09; 核心特性 引用計數&#xff1a;記錄當前有多少個 shared_ptr 共享同一個對象。自動釋放&#xff1a;當引用計數歸零時&#xff0c;自動釋放對象內存…

Spring AI MCP 架構詳解

Spring AI MCP 架構詳解 1.什么是MCP? MCP 是一種開放協議&#xff0c;它對應用程序向大語言模型&#xff08;LLMs&#xff09;提供上下文信息的方式進行了標準化。可以把 MCP 想象成人工智能應用程序的 USB-C 接口。就像 USB-C 為將設備連接到各種外圍設備和配件提供了一種…

騰訊系AI應用,可以生視頻,3D模型...

以下注冊手機后就可以使用了。 騰訊智影 智能抹除-在線去水印去字幕-抹除水印字幕-騰訊智影 混元&#xff08;文字&#xff0c;圖片生成3D&#xff09; 騰訊混元3D 混元視頻&#xff08;文字生成視頻&#xff0c;可惜右下角有文字&#xff09; https://video.hunyuan.tencen…

數據結構(并查集,圖)

并查集 練習版 class UnionFindSet { public:void swap(int* a, int* b){int tmp *a;*a *b;*b tmp;}UnionFindSet(size_t size):_ufs(size,-1){}int UnionFind(int x){}void Union(int x1, int x2){}//長分支改為相同節點int FindRoot(int x){}bool InSet(int x1, int x2)…

數據結構:探秘AVL樹

本節重點 理解AVL樹的概念掌握AVL樹正確的插入方法利用_parent指針正確更新平衡因子掌握并理解四種旋轉方式&#xff1a;左單旋&#xff0c;右單旋&#xff0c;左右雙旋&#xff0c;右左雙旋 一、AVL樹的概念 AVL樹得名于它的發明者G. M. Adelson-Velsky和E. M. Landis&…

電源系統的熱設計與熱管理--以反激式充電器為例

前言 反激電源常用于各種電子設備中&#xff0c;比如充電器、適配器等&#xff0c;它們通過變壓器進行能量轉換。高溫環境可能對電子元件造成影響&#xff0c;特別是像MOSFET、二極管、變壓器這樣的關鍵部件&#xff0c;導致效率變低&#xff0c;甚至可能導致功能失效。還有安…

linux課程學習二——緩存

一.文件io與標準io的一個區別 遇到死循環可以ctrl c結束進程 使用printf輸出&#xff0c;輸出沒有問題 用wirte輸出&#xff0c;參數1&#xff0c;可以理解為上面介紹的linux標準文件描述符的1&#xff08;STDOUT&#xff09;標準輸出&#xff0c;我們加上一個死循環while&…

Kafka中的消息如何分配給不同的消費者?

大家好&#xff0c;我是鋒哥。今天分享關于【Kafka中的消息如何分配給不同的消費者&#xff1f;】面試題。希望對大家有幫助&#xff1b; Kafka中的消息如何分配給不同的消費者&#xff1f; 在 Kafka 中&#xff0c;消息是通過 主題&#xff08;Topic&#xff09; 進行組織的&…