K8s集群的環境部署

1.測試環境所需要的主機名和IP和扮演的角色

harbor 172.25.254.200 harbor倉庫

k8s-master 172.25.254.100 k8s集群控制節點

k8s-node1 172.25.254.10?k8s集群工作節點

k8s-node2 172.25.254.20 k8集群工作節點

注意:所有節點禁用selinux和防火墻

所有節點同步時間和地址解析

所有節點安裝docker

所有節點禁用swap 注意注釋掉/etc/fstab文件中的定義

為什么禁用swap?

內存速度遠快于 Swap,使用 Swap 會導致性能下降,影響節點和應用響應速度。

Kubernetes 依賴 kubelet 管理節點資源,而 kubelet 默認無法有效處理 Swap,可能導致資源分配錯誤。

Swap 可能延遲內存壓力的響應,導致節點或 Pod 進入不穩定狀態。

關閉所有節點的火墻和禁用iptables

1.master 和node harbor禁用swap

swapon -s#查看磁盤名

Filename?? ??? ??? ??? ?Type?? ??? ?Size?? ??? ?Used?? ??? ?Priority
/dev/dm-1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? partition?? ?2097148?? ??? ?0?? ??? ?-2

]# systemctl mask swap.target

]# swapoff -a

]# vim /etc/fstab

#/dev/mapper/rhel-swap swap swap defaults 0 0

/dev/cdrom /media iso9660 defaults 0 0

2.master和node harbor都做本地解析

[root@k8s-master ~]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.25.254.100 k8s-master.timinglee.org

172.25.254.10 k8s-node1.timinglee.org

172.25.254.20 k8s-node2.timinglee.org

172.25.254.254 reg.timinglee.org

3.master和node harbor都安裝docker

[root@k8s-master ~]# vim /etc/yum.repos.d/docker.repo

[docker] name=docker

baseurl=https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable/

gpgcheck=0

[root@k8s-master ~]# dnf install docker-ce -y

4.所有節點設定 docker資源管理模式為systemd

[root@k8s-master ~]# vim /etc/docker/daemon.json

{

"registry-mirrors": ["https://reg.timinglee.org"],

"exec-opts": ["native.cgroupdriver=systemd"],

"log-driver": "json-file",

"log-opts": {

? ? ? ? ? ? ? ? "max-size": "100m"

},

? "storage-driver": "overlay2"

}

4.復制harbor倉庫中的證書并啟動docker

?k8s-master:#mkdir /etc/docker/certs.d/reg.timinglee.org/ -p

harbor:#scp /data/certs/timinglee.org.crt root@172.25.254.100:/etc/docker/certs.d/reg.timinglee.org/ca.crt

同時把密鑰拷給所有node節點

確保master和所有節點都能訪問harbor倉庫

5.安裝k8s部署工具

添加軟件倉庫中k8s源

[root@k8s-master ~]# vim /etc/yum.repos.d/k8s.repo

[k8s] name=k8s

baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm

gpgcheck=0

#安裝軟件 [root@k8s-master ~]# dnf install kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0 -y

4.設置kubectl命令補全功能

[root@k8s-master ~]# dnf install bash-completion -y?

[root@k8s-master ~]# echo "source > ~/.bashrc

[root@k8s-master ~]# source ~/.bashrc

5.在master節點拉取k8s所需要的鏡像

kubeadm config print init-defaults

手動指定鏡像下載位置和容器管理接口

kubeadm config images pull \

--image-repository registry.aliyuncs.com/google_containers \? #拉取鏡像的位置現在我們所用的為aliyun的

--kubernetes-version v1.30.0 \? #需要的版本

--cri-socket=unix:///var/run/cri-dockerd.sock? ?#拉取需要連接容器控制器使用

先在master登錄harbor倉庫

拉取結束上傳至我們的harbor倉庫

[root@k8s-master ~]# docker images | awk '/google/{ print $1":"$2}' \ | awk -F "/" '{system("docker? tag "$0" reg.timinglee.org/k8s/"$3)}'

[root@k8s-master ~]# docker images | awk '/k8s/{system("docker push "$1":"$2)}'

6..在節點安裝cri-docker

k8s從1.24版本開始就移除了dockershim 所以節點安裝cri-docker插件才能使同docker

在節點安裝插件和插件依賴性用docker管理k8s 和docker依賴

vim/lib/systemd/system/cri-docker.service#編寫該文件夾 加上網絡插件和根容器

指定網絡插件名稱及基礎容器鏡像 ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --networkplugin=cni --pod-infra-container-image=reg.timinglee.org/k8

systemctl daemon-reload

以上操作master和node節點都要做

例:scp -r /lib/systemd/system/cri-docker.service? @root172.25.254.10:/lib/systemd/system/cri-docker.service

7.集群初始化

#kubeadm init --pod-network-cidr=192.188.0.0/16 \? #初始化并設定容器集群的網絡

--image-repository reg.timinglee.org/k8s \? #

--kubernetes-version v1.30.0 \ #指k8s版本

--cri-socket=unix:///var/run/cri-dockerd.sock #指定插件使docker和k8s結合到一起使用

#kubeadm reset?--cri-socket=unix:///var/run/cri-dockerd.sock重置集群

8.指定主配置文件

#指定集群配置文件變量 [

root@k8s-master ~]# echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

source ~/.bash_profile

初始化完成

9.安裝網絡插件

導入flannel插件 和?kube-flannel.yml

將網絡插件導入到本地docker倉庫 并且上傳到harbor倉庫中

kubectl apply -f kube-flannel.yml 安裝flannel.yml

10.節點擴容

1.禁用swap

2.安裝kubelet-1.30.0 kubeadm-1.30.0 kubectl-1.30.0

docker-ce

cri-dockerd#連接docker和k8s 的 還有一個依賴

修改cri-dockerd啟動文件添加?vim /lib/systemd/system/cri-docker.service

ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --networkplugin=cni --pod-infra-container-image=reg.timinglee.org/k8s/pause:3.9

5 啟動服務 kubelet.service cri-docker.service

root@k8s-node1 & 2 ~]# kubeadm join 172.25.254.100:6443 --token 5hwptm.zwn7epa6pvatbpwf --discovery-token-ca-cert-hash sha256:52f1a83b70ffc8744db5570288ab51987ef2b563bf906ba4244a300f61e9db23 --crisocket=unix:///var/run/cri-dockerd.soc

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

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

相關文章

pytest自動化測試[面試篇]

pytest是python的測試框架,它提供了許多功能, 測試運行 組織pytest的測試用例代碼:模塊名稱以test_開頭,類名以Test開頭,函數名以test_開頭, 然后用pytest命令即可運行測試用例。 可以在命令行中,用pyte…

樹莓派急速安裝ubuntu;映射磁盤與儲存磁盤文件;ubuntu映射整個工程;保存系統工作狀態

一、用途 在使用樹莓派上下載ubuntu時,需要一張sd卡,當你需要給這張卡做備份的時候,可以是使用磁盤映射軟件,從而達到備份的目的 同時有一些大佬發布了ubuntu的映射文件,可以直接使用該文件,然后還原他的整…

Python學習第十九天

Django-分頁 后端分頁 Django提供了Paginator類來實現后端分頁。Paginator類可以將一個查詢集(QuerySet)分成多個頁面,每個頁面包含指定數量的對象。 from django.shortcuts import render, redirect, get_object_or_404 from .models impo…

Windows下安裝Git客戶端

① 官網地址:https://git-scm.com/。 ② Git的優勢 大部分操作在本地完成,不需要聯網;完整性保證;盡可能添加數據而不是刪除或修改數據;分支操作非常快捷流暢;與Linux 命令全面兼容。 ③ Git的安裝 從官網…

刷題練習筆記

目錄 1、消失的數字 2、旋轉數組 3、原地移除元素 4、刪除排序數組中的重復項 1、消失的數字 oj:面試題 17.04. 消失的數字 - 力扣(LeetCode) 思路(參考評論區): 利用異或的特性,ret ret …

C或C++中實現數據結構課程中的鏈表、數組、樹和圖案例

1. 雙向鏈表&#xff08;Doubly Linked List&#xff09;-----支持雙向遍歷。 C實現 #include <iostream>struct Node {int data;Node* prev;Node* next; };class DoublyLinkedList { private:Node* head; public:DoublyLinkedList() : head(nullptr) {}// 在鏈表末尾插…

94.HarmonyOS NEXT動畫系統實現教程:深入理解FuncUtils

溫馨提示&#xff1a;本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦&#xff01; HarmonyOS NEXT動畫系統實現教程&#xff1a;深入理解FuncUtils 文章目錄 HarmonyOS NEXT動畫系統實現教程&#xff1a;深入理解FuncUtils1. 動畫系…

AI日報 - 2025年3月17日

&#x1f31f; 今日概覽&#xff08;60秒速覽&#xff09; ▎&#x1f916; AGI突破 | GPT-o1在卡內基梅隆大學數學考試中獲滿分&#xff0c;展示AI數學能力新高度 成本僅5美分/題&#xff0c;推理速度不到1分鐘 ▎&#x1f4bc; 商業動向 | Figure推出BotQ機器人制造設施&…

Tauri + Vite + SvelteKit + TailwindCSS + DaisyUI 跨平臺開發詳細配置指南(Windows)

Tauri Vite SvelteKit TailwindCSS DaisyUI 跨平臺開發詳細配置指南&#xff08;Windows&#xff09; 本文為博主原創文章&#xff0c;遵循 CC 4.0 BY-SA 版權協議。轉載請注明出處及本聲明 原文鏈接&#xff1a;[你的文章鏈接] &#x1f6e0;? 環境準備 1. 安裝核心工具…

在 macOS 上優化 Vim 用于開發

簡介 這篇指南將帶你通過一系列步驟&#xff0c;如何在 macOS 上優化 Vim&#xff0c;使其具備 代碼補全、語法高亮、代碼格式化、代碼片段管理、目錄樹等功能。此外&#xff0c;我們還會解決在安裝過程中可能遇到的常見錯誤。 1. 安裝必備工具 在開始 Vim 配置之前&#xff…

golang開發支持onlyoffice的token功能

一直都沒去弄token這塊&#xff0c;想著反正docker run的時候將jwt置為false即可。 看了好多文章&#xff0c;感覺可以試試&#xff0c;但是所有文件幾乎都沒說思路。 根據我的理解和成功的調試&#xff0c;思路是&#xff1a; 我們先定義2個概念&#xff0c;一個是文檔下載…

Android wifi的開關Settings值異常分析

Android wifi的開關Settings值異常分析 文章目錄 Android wifi的開關Settings值異常分析一、前言二、異常分析1、adb或者串口獲取Settings的wifi開關值2、代碼獲取wifi開關值3、根據日志分析代碼(1)logcat 對應的wifi開啟日志的代碼①WifiServiceImpl.java② WifiSettingsStore…

C#的委托Action

在 C# 中&#xff0c;Action 是一個預定義的委托類型&#xff0c;它位于 System 命名空間下。下面詳細介紹它的作用和使用方法。 作用 Action 委托的主要作用是封裝一個方法&#xff0c;這個方法沒有返回值&#xff08;即返回類型為 void&#xff09;。它提供了一種簡潔的方式…

Qt MainWindow簡單例子(文本編輯)

使用Qt控件練習文本編輯窗口的創建。 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QLabel> #include <QProgressBar>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public Q…

DeepSeek-prompt指令-當DeepSeek答非所問,應該如何準確的表達我們的訴求?

當DeepSeek答非所問&#xff0c;應該如何準確的表達我們的訴求&#xff1f;不同使用場景如何向DeepSeek發問&#xff1f;是否有指令公式&#xff1f; 目錄 1、 扮演專家型指令2、 知識蒸餾型指令3、 顆粒度調節型指令4、 時間軸推演型指令5、 極端測試型6、 逆向思維型指令7、…

Mac中nvm切換node版本失敗,關閉終端再次打開還是之前的node

Mac中使用 nvm 管理 node 版本&#xff0c;在使用指令&#xff1a;nvm use XXX 切換版本之后。 關閉終端&#xff0c;再次打開&#xff0c;輸入 node -v 還是得到之前的 node 版本。 原因&#xff1a; 在這里這個 default 中有個 node 的版本號&#xff0c;使用 nvm use 時&a…

織夢dedecmsV5.7提示信息提示框美化(帶安裝教程和效果展示)

一、效果展示 1、安裝前效果 2、安裝后效果 二、安裝說明 1、安裝測試版本&#xff1a;DedeCMS-V5.7.117-UTF8&#xff1b; 2、必須在修改代碼之前請做好文件備份&#xff0c;以免誤操無法恢復&#xff1b; 3、為了兼容其他版本&#xff0c;請在安裝時&#xff0c;最好將替…

Science Advances 視觸覺傳感機制的交互裝置,可以實時測量來自手不同部位的分布力

近日&#xff0c;由香港科技大學&#xff08;HKUST&#xff09;電子與計算機工程學系申亞京教授領導的研究團隊&#xff0c;提出了一種基于數字通道的觸覺交互系統&#xff0c;可以實時測量來自手不同部位的分布力&#xff0c;有望在醫學評估、體育訓練、機器人和虛擬現實&…

MySQL單表查詢大全【SELECT】

山再高&#xff0c;往上攀&#xff0c;總能登頂&#xff1b;路再長&#xff0c;走下去&#xff0c;定能到達。 Mysql中Select 的用法 ------前言------【SELECT】0.【準備工作】0.1 創建一個庫0.2 庫中創建表0.3 表中加入一些數據 1.【查詢全部】2.【查詢指定列】2.1查詢指定列…

Vue調用子組件init方法時報錯Cannot read properties of undefined (reading ‘init‘)解決方法

調用init方法語句寫在this.$nextTick(() > {});方法里&#xff0c;因為nextTick方法在頁面元素加載完之后調用 this.$nextTick(() > {this.$refs.chartComponent.init();});如果還報錯&#xff1a;Error in nextTick: "TypeError: Cannot read properties of undef…