Kubernetes K8s 結合國內外文章解決 The kubelet is not running

来源:https://www.cnblogs.com/helong-123/archive/2022/07/07/16453847.html
-Advertisement-
Play Games

鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 初學K8s,好好教程不跟著來,非要全部安裝最新的docker 和 k8s,經過4小時奮戰終於解決! 先說明下docker是最新版的安裝,又安裝K8s cat > /etc/yum.repos.d/kubernetes.repo <<EOF [ku ...


鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站

初學K8s,好好教程不跟著來,非要全部安裝最新的docker 和 k8s,經過4小時奮戰終於解決!

先說明下docker是最新版的安裝,又安裝K8s

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/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y --nogpgcheck kubelet kubeadm kubectl
systemctl enable kubelet

這樣直接安裝成功,得到 1.23.5-0,版本號就是v1.23.5

然後噩夢開始,視頻教程人家指定了v1.19.0直接成功安裝,我這倒好,報錯開始

Initial timeout of 40s passed.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
....
 
This error is likely caused by:
		- The kubelet is not running
		- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)

報錯如上,首先先把你之前查到的資料見鬼去,反正在我這是不好使的(我這裡都是新版,2022-03-18新裝的)

1、systemctl start kubelet 這個在只有【主】的時候根本起不來,所以不用折騰看狀態了,有就行了

2、/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 文件,我相信你一定查到了,為啥我沒有,因為你的在這/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf(這個你最好沒改過,改過的話改回去,保持預設就好),上面那個文件就該沒有的,連那個目錄都不該有的(再次強調新版!舊版不知道,v1.23.5我這是),有文章讓你新建並添加什麼的,刪了吧沒用的,啟動了也是假象

[root@k8s-master ~]# cd /etc/systemd/system/kubelet.service.d/
-bash: cd: /etc/systemd/system/kubelet.service.d/: 沒有那個文件或目錄

3、echo '{"exec-opts": ["native.cgroupdriver=systemd"]}' >> /etc/docker/daemon.json,我相信你已經見過這句了,是的!就是這句,這句真是重點!一開始我就對了,但是先往下看吧,真坑

4、還有讓你們改docker images tag的,歇了吧,用不到的

開始噩夢安裝之旅,註意這裡我已經替換為國內的阿裡源,所以根本不用改 docker Tag!只要能正常拉回來就沒有問題!

kubeadm init \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version=v1.23.5 \
  --pod-network-cidr=10.244.0.0/16  \
  --service-cidr=10.96.0.0/12  \
  --apiserver-advertise-address=192.168.0.2

重點來了

排錯,這個也是重點,你知道是錯在哪!【重點1】

journalctl -xeu kubelet | grep Failed

定位為毛線在失敗(實際是一行,我換行下,這樣好看)

3月 18 20:21:04 k8s-master kubelet[36490]: E0318 20:21:04.954990   36490 server.go:302] 
"Failed to run kubelet" 
err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is 
different from docker cgroup driver: \"cgroupfs\""

實際你只要在你的/etc/docker/daemon.json 中加入 "exec-opts": ["native.cgroupdriver=systemd"]

是加入!不是追加,追加的不管用!!!我就是被坑在這了!怕你搞錯,看例子!【重點2】

  1 {
  2   "registry-mirrors": ["https://你的加速地址.mirror.aliyuncs.com"],
  3   "log-driver": "json-file",
  4   "log-opts": {
  5     "max-size": "10m",
  6     "max-file": "1"
  7    },   【看這!這加個逗號,下麵加這句,結尾沒有逗號】
  8   "exec-opts": ["native.cgroupdriver=systemd"]
  9 }

然後,你就可以

systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet
kubeadm reset #重置了沒事的,反正之前也起不來~
y
 
systemctl status kubelet #初始就是啟動不了的
#驗證cgroupdriver 修改生效 (這兩行都是驗證的)看到systemd 就對了
docker info -f {{.CgroupDriver}}
docker info | grep -i cgroup

最後再執行

kubeadm init \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version=v1.23.5 \
  --pod-network-cidr=10.244.0.0/16  \
  --service-cidr=10.96.0.0/12  \
  --apiserver-advertise-address=192.168.0.2

世界核平!

file

好了,萬馬奔騰~

原文鏈接:https://blog.csdn.net/zhangbest5/article/details/123583927


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Seata Seata 是一款開源的分散式事務解決方案,致力於在微服務架構下提供高性能和簡單易用的分散式事務服務。在 Seata 開源之前,Seata 對應的內部版本在阿裡經濟體內部一直扮演著分散式一致性中間件的角色,幫助經濟體平穩的度過歷年的雙11,對各BU業務進行了有力的支撐。經過多年沉澱與積累 ...
  • java方法的定義與調用 java方法是語句的集合,他們在一起執行一個功能。 方法是解決一類問題的步驟的有序組合 方法包含於類或對象中 方法在程式中被創建,在其他地方被引用 代碼示例: public class Demo01 { //main方法 public static void main(St ...
  • .NET中間件以及VUE攔截器聯合使用 工作中遇見的問題,邊學邊弄,記錄一下 Vue的UI庫使用的是antvue 3.2.9版本的。 業務邏輯 特性 //特性 public class ModelEsignNameAttribute : Attribute { public ModelEsignNa ...
  • Linux許可權 Linux系統上對文件的許可權有著嚴格的控制,如果想對某個文件執行某種操作,必須具有對應的許可權才可執行成功。 Linux下文件的許可權類型一般包括讀,寫,執行。對應字母為 r、w、x。Linux下許可權的粒度有 擁有者 、所屬組 、其它人 三種。每個文件都可以針對三個粒度,設置不同的rwx ...
  • 常見系統命令 export 查看或修改環境變數 # 例:臨時修改命令提示符為字元串$ export PS1=$ # 例:臨時修改命令提示符顯示系統時間 時間使用\t 表示 export PS1="[\u@\h \t \W]\$" man 查看linux系統的手冊 # 例:查看ls命令如何使用 man ...
  • 目錄 一、前景回顧 二、點陣圖bitmap及函數實現 三、記憶體池劃分 四、運行 一、前景回顧 前面我們已經花了一個回合來完善了一下我們的系統,包括增加了makefile,ASSERT以及一些常見的字元串操作函數。關於makefile,還是我以前學習Linux系統編程的時候學了一點點,很久沒用導致就幾乎 ...
  • TCP/IP 標準 TCP/IP:Transmission Control Protocol/Internet Protocol 傳輸控制協議/網際網路互聯協議 TCP/IP是一個協議棧,由眾多的協議組成。TCP和ip是最重要的兩個協議,所以用來作為協議棧的名字。 最早的時候這個協議是在互聯網上面使用 ...
  • 你最喜歡的編程語言是什麼?哪些是你不可或缺的工具? 全球知名Developer Nation開發者大調查問卷開啟,首次傾聽中國開發者的聲音,完成問卷有機會贏取新智能手機、筆記本電腦、新裝備等豐厚獎品! 立即參與:https://slashdata.jmp.gd/name/dn23?member_id ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...