微服務》》Kubernetes (K8S) 集群 安裝

關閉交換空間

# 切換 超級管理員身份
# 查看交換空間
free -h
# 關閉交換空間
swapoff -a

在這里插入圖片描述

避免開啟啟動交換空間

# 注釋swap開頭的行
vim /etc/fstab

在這里插入圖片描述

關閉防火墻

# 關閉防火墻  
# 因為K8S 是集群形式存在的  至少三臺  一主二從 (一個master  兩個node) master 要給其他node節點發送指令  走的 gRPC協議
# 這個通信協議不能跨防火墻  故需要關閉   
ufw disable

在這里插入圖片描述

配置 DNS

# 取消注釋  配置 DNS   
vim /etc/systemd/resolved.conf

在這里插入圖片描述

安裝 Docker 、配置docker 鏡像加速器

參考資料

安裝kubernetes

在這里插入圖片描述

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat >/etc/apt/sources.list.d/kubernetes.list <<EOF
# 寫入軟件源 注意目前使用的Ubuntu的版本是 noble,但阿里云暫且不支持,所以沿用16.04 d xenial
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-$(lsb_release -cs) main
EOF
apt-get update

在這里插入圖片描述
》》》安裝k8s

apt-get update && apt-get install -y kubelet kubeadm kubectl

查看版本
在這里插入圖片描述

鎖定版本

防止k8s軟件自動升級,通過以下命令進行鎖定版本。

sudo apt-mark hold kubelet kubeadm kubectl
如果要取消
sudo apt-mark unhold kubelet kubeadm kubectl

在這里插入圖片描述

同步時間

同步時間之前 一定要先同步時區

dpkg-reconfigure tzdata
在這里插入圖片描述
》》時間同步
在這里插入圖片描述

# 安裝ntpdate   
apt-get install ntpdate
# 設置系統時間與網絡時間同步(cn.pool.ntp.org ) 是尋找離本機最近的時間服務器 同步時間
ntpdate cn.pool.ntp.org
# 將系統時間寫入硬件時間
# 如果hwclock命令沒,則需要安裝  apt install util-linux-extra
hwclock --systohc# 確認時間  看時間跟本地是否一致
date 

在這里插入圖片描述

修改主機名

》》修改cloud.cfg ,防止重啟主機名還原 ,但測試下來 默認不還原

vim /etc/cloud/cloud.cfg
# 該配置默認是False,修改為True 即可
# preserve——>保護,維護 持之以恒 保持
preserve_hostname:true

在這里插入圖片描述
》》重新一下,讓配置生效, 然后關機

到此 可以把這個 Ubuntu系統 作為最基礎的,方便以后快速 新增 一個k8s 節點

基于上面的 克隆 一個 K8S 作為master、兩個 節點 Node1、Node2

》》》修改IP、主機名

配置上面基本 一定 一定 一定 要重啟

在這里插入圖片描述

Kubernetes 安裝集群

上面安裝Kubernetes》》包含kubeadm、kubectl、kubetel》》
kubeadm 是kubernetes的集群安裝工具,能快速安裝kubernetes集群,安裝kubernetes主要是安裝它的各個鏡像,而kubeadm已經為我們集成好了運行kubenetes所需要的基本鏡像。

安裝程序Linux系統 一般安裝在 /usr/local中

# cd /usr/local
# 創建 kubernetes 文件夾
# 進入到 kubernetes 文件夾
# 創建 cluster 文件夾
# 進入cluster文件夾
# 導出配置文件  
# kubeadm config print init-defaults --kubeconfig ClusterConfiguration > kubeadm.yml

在這里插入圖片描述
》》修改 kubeadm.yml 文件
在這里插入圖片描述

把谷歌的鏡像倉庫地址修改成阿里云的鏡像倉庫地址
imageRepository: registry.aliyuncs.com/google_containers
在這里插入圖片描述

》》配置文件還要到加個Pod

  # 配置POD 所在網段為我們虛擬機不重疊的網段 容器跟容器間通信  可以不需要加雙引號podSubnet: 10.244.0.0/16

在這里插入圖片描述

》》查看所需要的鏡像

kubeadm config images list --config kubeadm.yml
在這里插入圖片描述
》》拉取鏡像
kubeadm config images pull --config kubeadm.yml

報錯

ailed to pull image "registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2": output: time="2025-03-18T10:36:20+08:00" level=fatal msg="validate service connection: CRI v1 image API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService"
, error: exit status 1
To see the stack trace of this error execute with --v=5 or higher

在這里插入圖片描述

》》解決方案

vim /etc/containerd/config.toml 在這里插入圖片描述
重啟contained服務即可
systemctl restart containerd
在拉取就可以了
在這里插入圖片描述
在這里插入圖片描述
如果拉取不成功,查看網絡配置(要重啟)、kubeadm.ym 的 配置

#  這步驟不需要的,只是測試這個路徑是否可以從拉取
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.28.2
docker pull registry.aliyuncs.com/google_containers/pause:3.9
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.9-0
docker pull registry.aliyuncs.com/google_containers/coredns:v1.10.1

安裝主節點 》》注意 注意 注意只主節點才需要 初始化的

# --experimental-upload-certs 可以在后續執行加入節點時自動分發證書文件
# tee kubeadm-init.log 輸出日志的
# tee命令的功能是用于讀取標準輸入的數據,將其內容轉交到標準輸出設備中,同時保存成文件。
kubeadm init --config=kubeadm.yml --experimental-upload-certs  | tee kubeadm-init.log

在這里插入圖片描述
k8s 1.8版本之后就不支持這個 選項了

kubeadm init --config=kubeadm.yml --upload-certs  | tee kubeadm-init.log

》》如果報錯

[init] Using Kubernetes version: v1.28.2
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

kubeadm init --config=kubeadm.yml --upload-certs --ignore-preflight-errors=all | tee kubeadm-init.log

》》安裝中會出現

[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.

在這里插入圖片描述
》》解決問題:《《

# 1.修改Containerd配置
cd /etc/containerd
# 生成默認配置文件,Containerd的配置文件使用TOML格式,然后打開修改。(如果之前存在可以刪除)
containerd config default > /etc/containerd/config.toml
# 打開修改:
vim /etc/containerd/config.toml
將 sandbox_image = "registry.k8s.io/pause:3.8" 
改為 sanbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
SystemdCgroup = false 改為 SystemdCgroup = true

在這里插入圖片描述
在這里插入圖片描述
保存退出,重啟Containerd

sudo systemctl restart containerd

# containerd  重啟之后
kubeadm reset    重置一下  
# 進入  
cd /usr/local/kubernetes/cluster
# 在初始化一下
kubeadm init --config=kubeadm.yml --upload-certs --ignore-preflight-errors=all | tee kubeadm-init.log

成功 成功

在這里插入圖片描述

在這里插入圖片描述

#  mkdir -p $HOME/.kube
#  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
#  這個兩個命令 要分別執行

kubectl get node

在這里插入圖片描述

節點加入Master

在這里插入圖片描述
在這里插入圖片描述
如果報錯

error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist

解決方法

 echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptablesmodprobe br_netfilter

在這里插入圖片描述
在這里插入圖片描述

集群網絡配置

參考資料

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

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

相關文章

HTTP和RPC的區別

RPC和 HTTP是兩種常見的通信方式&#xff0c;它們在設計目標、使用場景和技術實現上有顯著區別。以下是它們的詳細對比&#xff1a; 1. 定義與核心思想 特性RPCHTTPRemote Procedure Call遠程過程調用HyperText Transfer Protocol超文本傳輸協議定義一種協議或框架&#xff0…

MySQL 簡記

MySQL 簡記 mysql中的數據存儲的結構是B樹 其與B樹的相同點是&#xff0c;B樹一個節點也可以存放多條數據&#xff0c;并且從左到右依次增大&#xff1b;不同點是&#xff0c;B樹的葉子結點之間也能相互連接。那么實際上是采取利用空間換區時間的策略。 那么B樹的樹結構like…

十七、實戰開發 uni-app x 項目(仿京東)- 后端指南

前面我們已經用uniappx進行了前端實戰學習 一、實戰 開發uni-app x項目(仿京東)-規劃-CSDN博客 二、實戰 開發uni-app x項目(仿京東)-項目搭建-CSDN博客 三、實戰開發 uni-app x 項目(仿京東)- 技術選型-CSDN博客 四、實戰開發 uni-app x 項目(仿京東)- 頁面設計-C…

Infura 簡介

文章目錄 Infura 簡介Infura 的主要功能Infura 的替代方案&#xff08;類似服務&#xff09;AlchemyQuickNodeAnkrMoralisPocket Network 什么時候選擇 Infura&#xff1f; Infura 簡介 Infura 是一個 區塊鏈基礎設施即服務&#xff08;BaaS, Blockchain as a Service&#xf…

TouchSocket TcpService:構建高性能Tcp服務的終極利器

這里寫目錄標題 TouchSocket TCPService&#xff1a;構建高性能TCP服務的終極利器引言TCPService核心特性快速入門&#xff1a;5分鐘搭建TCP服務1. 創建基礎TCP服務2. 自定義插件處理數據 高級用法實戰1. 客戶端連接管理 性能與穩定性保障示例與源碼結語 TouchSocket TCPServic…

Android Fresco 框架緩存模塊源碼深度剖析(二)

一、引言 在 Android 應用開發中&#xff0c;圖片加載和處理是常見且重要的功能。頻繁的圖片加載不僅會消耗大量的網絡流量&#xff0c;還會影響應用的性能和響應速度。因此&#xff0c;有效的緩存機制對于提升圖片加載效率和用戶體驗至關重要。Fresco 是 Facebook 開源的一款…

springboot使用163發送自定義html格式的郵件

springboot使用163發送html格式的郵件 效果: 下面直接開始教學 注冊郵箱&#xff0c;生成授權碼 獲取163郵箱的授權碼&#xff0c;可以按照以下步驟操作&#xff1a; 登錄163郵箱 打開瀏覽器&#xff0c;訪問 163郵箱登錄頁面。 使用你的郵箱賬號和密碼登錄。進入郵箱設置 登…

【Kafka】深入了解Kafka

集群的成員關系 Kafka使用Zookeeper維護集群的成員信息。 每一個broker都有一個唯一的標識&#xff0c;這個標識可以在配置文件中指定&#xff0c;也可以自動生成。當broker在啟動時通過創建Zookeeper的臨時節點把自己的ID注冊到Zookeeper中。broker、控制器和其他一些動態系…

C#使用SnsPictureBox.dll繪制點,線段、圓、折線、多邊形、測量尺等多種圖形。

CSDN下載地址&#xff1a;https://download.csdn.net/download/sns1991sns/87726867 gitee下載地址:https://gitee.com/linsns/SnsPictrueBox 支持2種繪制方式&#xff1a;響應式和等待式。 一、使用響應式繪制圖形 1、在窗口構造函數里添加繪制圖形的完成響應函數 public…

Hugging Face預訓練GPT微調ChatGPT(微調入門!新手友好!)

Hugging Face預訓練GPT微調ChatGPT&#xff08;微調入門&#xff01;新手友好&#xff01;&#xff09; 在實戰中&#xff0c;?多數情況下都不需要從0開始訓練模型&#xff0c;?是使?“??”或者其他研究者開源的已經訓練好的?模型。 在各種?模型開源庫中&#xff0c;最…

Redis BitMap 用戶簽到

Redis Bitmap Bitmap&#xff08;位圖&#xff09;是 Redis 提供的一種用于處理二進制位&#xff08;bit&#xff09;的特殊數據結構&#xff0c;它基于 String 類型&#xff0c;每個 bit 代表一個布爾值&#xff08;0 或 1&#xff09;&#xff0c;可以用于存儲大規模的二值狀…

Spring Boot 3 新特性實戰:從理論到實踐

引言 Spring Boot 自發布以來&#xff0c;憑借其簡潔的配置和強大的功能&#xff0c;迅速成為 Java 開發者的首選框架。隨著 Spring Boot 3 的發布&#xff0c;開發者們迎來了更多令人興奮的新特性。本文將深入探討 Spring Boot 3 的新特性&#xff0c;并通過實戰示例展示如何…

Nodejs使用redis

框架&#xff1a;koa&#xff0c;通過koa-generator創建 redis: 本地搭建&#xff0c;使用默認帳號&#xff0c;安裝說明地址以及默認啟動設置&#xff1a;https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ 中間件&#x…

調研報告:Hadoop 3.x Ozone 全景解析

Ozone 是 Hadoop 的分布式對象存儲系統,具有易擴展和冗余存儲的特點。 Ozone 不僅能存儲數十億個不同大小的對象,還支持在容器化環境(比如 Kubernetes)中運行。 Apache Spark、Hive 和 YARN 等應用無需任何修改即可使用 Ozone。Ozone 提供了 Java API、S3 接口和命令行接口…

AI學習——卷積神經網絡(CNN)入門

作為人類&#xff0c;我們天生擅長“看”東西&#xff1a;一眼就能認出貓狗、分辨紅綠燈、讀懂朋友的表情……但計算機的“眼睛”最初是一片空白。直到卷積神經網絡&#xff08;CNN&#xff09;?的出現&#xff0c;計算機才真正開始理解圖像。今天&#xff0c;我們就用最通俗的…

除自身以外數組的乘積——面試經典150題(力扣)

題目 給你一個整數數組 nums&#xff0c;返回 數組 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums之中任意元素的全部前綴元素和后綴的乘積都在 32 位 整數范圍內。 請 不要使用除法&#xff0c;且在 O(n) 時…

?算法OJ?二叉樹的前序遍歷【樹的遍歷】(C++實現)Binary Tree Preorder Traversal

?算法OJ?二叉樹的中序遍歷【樹的遍歷】&#xff08;C實現&#xff09;Binary Tree Inorder Traversal Given the root of a binary tree, return the preorder traversal of its nodes’ values. Example 1: Input: root [1,null,2,3] Output: [1,2,3]Explanation: Exam…

計算機二級MS之Excel

聲明&#xff1a;跟著大貓和小黑學習隨便記下一些筆記供大家參考&#xff0c;二級考試之前將持續更新&#xff0c;希望大家二級都能輕輕松松過啦&#xff0c;過了二級的大神也可以在評論區留言給點建議&#xff0c;感謝大家&#xff01;&#xff01; 文章目錄 考題難點&#x…

【Linux】VMware Workstation Pro 17 安裝教程

目錄 安裝 VMware Workstation Pro 17 一、CDS Repository 獲取安裝包 二、網盤獲取安裝包 三、Broadcom官方獲取安裝包 后續安裝過程沒啥特殊要求 安裝 VMware Workstation Pro 17 目前VMware Workstation pro 17已經對個人用戶免費開放使用。 Broadcom官網地址&#x…

如何在云端平臺上建立 30,000 名用戶的網頁 MMO游戲環境-2 (服務器)

接續上一篇「如何在云端平臺上建立 30,000 名用戶的網頁 MMO游戲環境」&#xff0c;接下來討論模擬連結上的問題。 最初計劃使用35臺伺服器來完成這個實驗&#xff0c;希望能夠有大量的用戶連接&#xff0c;以驗證真實的連接狀況。然而&#xff0c;我們高估了這方面&#xff0c…